Skip to content

Commit

Permalink
add_excludes_from_file: clarify the bom skipping logic
Browse files Browse the repository at this point in the history
Even though the previous step shifts where the "entry" begins, we
still iterate over the original buf[], which may begin with the
UTF-8 BOM we are supposed to be skipping.  At the end of the first
line, the code grabs the contents of it starting at "entry", so
there is nothing wrong per-se, but the logic looks really confused.

Instead, move the buf pointer and shrink its size, to truly
pretend that UTF-8 BOM did not exist in the input.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Apr 16, 2015
1 parent 245e1c1 commit cb0abea
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -576,10 +576,11 @@ int add_excludes_from_file_to_list(const char *fname,

el->filebuf = buf;

if (size >= 3 && !memcmp(buf, utf8_bom, 3))
entry = buf + 3;
else
entry = buf;
if (size >= 3 && !memcmp(buf, utf8_bom, 3)) {
buf += 3;
size -= 3;
}
entry = buf;

for (i = 0; i < size; i++) {
if (buf[i] == '\n') {
Expand Down

0 comments on commit cb0abea

Please sign in to comment.