summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoshaber <joshaber@gmail.com>2014-07-15 17:27:58 -0700
committerjoshaber <joshaber@gmail.com>2014-07-15 17:38:39 -0700
commitdf4cba0f2860f35ddea03e09d40ec27b9717db70 (patch)
tree4cd6316a6f4a400e59359cdd549658962f6ac333
parentad082501a76da1e007dd9c47e91e0f975526e531 (diff)
downloadlibgit2-df4cba0f2860f35ddea03e09d40ec27b9717db70.tar.gz
Export git_buf_text_is_binary and git_buf_text_contains_nul.expose-buffer-binary-detection
So that users don’t need to implement binary detection themselves.
-rw-r--r--include/git2.h1
-rw-r--r--include/git2/buf_text.h42
-rw-r--r--src/buf_text.c4
-rw-r--r--src/buf_text.h17
4 files changed, 46 insertions, 18 deletions
diff --git a/include/git2.h b/include/git2.h
index f74976061..2a2ad93ff 100644
--- a/include/git2.h
+++ b/include/git2.h
@@ -13,6 +13,7 @@
#include "git2/blame.h"
#include "git2/branch.h"
#include "git2/buffer.h"
+#include "git2/buf_text.h"
#include "git2/checkout.h"
#include "git2/cherrypick.h"
#include "git2/clone.h"
diff --git a/include/git2/buf_text.h b/include/git2/buf_text.h
new file mode 100644
index 000000000..29bfca80d
--- /dev/null
+++ b/include/git2/buf_text.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+#ifndef INCLUDE_git_buf_text_h__
+#define INCLUDE_git_buf_text_h__
+
+#include "common.h"
+#include "buffer.h"
+
+/**
+ * @file git2/buf_text.h
+ * @brief Buffer text export structure
+ *
+ * @ingroup Git
+ * @{
+ */
+GIT_BEGIN_DECL
+
+/**
+ * Check quickly if buffer looks like it contains binary data
+ *
+ * @param buf Buffer to check
+ * @return 1 if buffer looks like non-text data
+ */
+GIT_EXTERN(int) git_buf_text_is_binary(const git_buf *buf);
+
+/**
+ * Check quickly if buffer contains a NUL byte
+ *
+ * @param buf Buffer to check
+ * @return 1 if buffer contains a NUL byte
+ */
+GIT_EXTERN(int) git_buf_text_contains_nul(const git_buf *buf);
+
+GIT_END_DECL
+
+/** @} */
+
+#endif
diff --git a/src/buf_text.c b/src/buf_text.c
index 8d2b141b2..0e93696cd 100644
--- a/src/buf_text.c
+++ b/src/buf_text.c
@@ -176,7 +176,7 @@ int git_buf_text_common_prefix(git_buf *buf, const git_strarray *strings)
return 0;
}
-bool git_buf_text_is_binary(const git_buf *buf)
+int git_buf_text_is_binary(const git_buf *buf)
{
const char *scan = buf->ptr, *end = buf->ptr + buf->size;
git_bom_t bom;
@@ -201,7 +201,7 @@ bool git_buf_text_is_binary(const git_buf *buf)
return ((printable >> 7) < nonprintable);
}
-bool git_buf_text_contains_nul(const git_buf *buf)
+int git_buf_text_contains_nul(const git_buf *buf)
{
return (memchr(buf->ptr, '\0', buf->size) != NULL);
}
diff --git a/src/buf_text.h b/src/buf_text.h
index e753a0244..3415ac00f 100644
--- a/src/buf_text.h
+++ b/src/buf_text.h
@@ -7,6 +7,7 @@
#ifndef INCLUDE_buf_text_h__
#define INCLUDE_buf_text_h__
+#include "git2/buf_text.h"
#include "buffer.h"
typedef enum {
@@ -78,22 +79,6 @@ extern int git_buf_text_lf_to_crlf(git_buf *tgt, const git_buf *src);
extern int git_buf_text_common_prefix(git_buf *buf, const git_strarray *strs);
/**
- * Check quickly if buffer looks like it contains binary data
- *
- * @param buf Buffer to check
- * @return true if buffer looks like non-text data
- */
-extern bool git_buf_text_is_binary(const git_buf *buf);
-
-/**
- * Check quickly if buffer contains a NUL byte
- *
- * @param buf Buffer to check
- * @return true if buffer contains a NUL byte
- */
-extern bool git_buf_text_contains_nul(const git_buf *buf);
-
-/**
* Check if a buffer begins with a UTF BOM
*
* @param bom Set to the type of BOM detected or GIT_BOM_NONE