diff options
author | Russell Belfer <rb@github.com> | 2013-01-11 11:24:26 -0800 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2013-01-11 11:24:26 -0800 |
commit | 0d65acade84a5ff2421cd52de82a8963f004d481 (patch) | |
tree | 5c1f0ba04710e32642e32a4cadf7a8e14dc0aba6 /src/buf_text.c | |
parent | d0b14cea0e1ff09af83a801c1a9cf1a431d46d0c (diff) | |
download | libgit2-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.c | 5 |
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; |