summaryrefslogtreecommitdiff
path: root/src/buf_text.c
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2013-01-11 11:24:26 -0800
committerRussell Belfer <rb@github.com>2013-01-11 11:24:26 -0800
commit0d65acade84a5ff2421cd52de82a8963f004d481 (patch)
tree5c1f0ba04710e32642e32a4cadf7a8e14dc0aba6 /src/buf_text.c
parentd0b14cea0e1ff09af83a801c1a9cf1a431d46d0c (diff)
downloadlibgit2-0d65acade84a5ff2421cd52de82a8963f004d481.tar.gz
Match binary file check of core git in diff
Core git just looks for NUL bytes in files when deciding about is-binary inside diff (although it uses a better algorithm in checkout, when deciding if CRLF conversion should be done). Libgit2 was using the better algorithm in both places, but that is causing some confusion. For now, this makes diff just look for NUL bytes to decide if a file is binary by content in diff.
Diffstat (limited to 'src/buf_text.c')
-rw-r--r--src/buf_text.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/buf_text.c b/src/buf_text.c
index a7122dc0c..0104a9057 100644
--- a/src/buf_text.c
+++ b/src/buf_text.c
@@ -109,6 +109,11 @@ bool git_buf_text_is_binary(const git_buf *buf)
return ((printable >> 7) < nonprintable);
}
+bool git_buf_text_contains_nul(const git_buf *buf)
+{
+ return (strnlen(buf->ptr, buf->size) != buf->size);
+}
+
int git_buf_text_detect_bom(git_bom_t *bom, const git_buf *buf, size_t offset)
{
const char *ptr;