Commit 3fd99be9 by Russell Belfer Committed by Russell Belfer

Convert from strnlen to git_text_is_binary

Since strnlen is not supported on all platforms and since we
now have the shiny new git_text_is_binary in the filtering
code, let's convert diff binary detection to use the new stuff.
parent 8b2bcfbe
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "diff.h" #include "diff.h"
#include "map.h" #include "map.h"
#include "fileops.h" #include "fileops.h"
#include "filter.h"
typedef struct { typedef struct {
git_diff_list *diff; git_diff_list *diff;
...@@ -173,19 +174,30 @@ static int file_is_binary_by_content( ...@@ -173,19 +174,30 @@ static int file_is_binary_by_content(
git_map *old_data, git_map *old_data,
git_map *new_data) git_map *new_data)
{ {
git_buf search;
git_text_stats stats;
GIT_UNUSED(diff); GIT_UNUSED(diff);
if ((delta->old_file.flags & BINARY_DIFF_FLAGS) == 0) { if ((delta->old_file.flags & BINARY_DIFF_FLAGS) == 0) {
size_t search_len = min(old_data->len, 4000); search.ptr = old_data->data;
if (strnlen(old_data->data, search_len) != search_len) search.size = min(old_data->len, 4000);
git_text_gather_stats(&stats, &search);
if (git_text_is_binary(&stats))
delta->old_file.flags |= GIT_DIFF_FILE_BINARY; delta->old_file.flags |= GIT_DIFF_FILE_BINARY;
else else
delta->old_file.flags |= GIT_DIFF_FILE_NOT_BINARY; delta->old_file.flags |= GIT_DIFF_FILE_NOT_BINARY;
} }
if ((delta->new_file.flags & BINARY_DIFF_FLAGS) == 0) { if ((delta->new_file.flags & BINARY_DIFF_FLAGS) == 0) {
size_t search_len = min(new_data->len, 4000); search.ptr = new_data->data;
if (strnlen(new_data->data, search_len) != search_len) search.size = min(new_data->len, 4000);
git_text_gather_stats(&stats, &search);
if (git_text_is_binary(&stats))
delta->new_file.flags |= GIT_DIFF_FILE_BINARY; delta->new_file.flags |= GIT_DIFF_FILE_BINARY;
else else
delta->new_file.flags |= GIT_DIFF_FILE_NOT_BINARY; delta->new_file.flags |= GIT_DIFF_FILE_NOT_BINARY;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment