add_excludes_from_file: clarify the bom skipping logic

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>
This commit is contained in:
Junio C Hamano 2015-04-16 11:26:29 -07:00
parent 245e1c196d
commit cb0abea870

9
dir.c
View File

@ -576,10 +576,11 @@ int add_excludes_from_file_to_list(const char *fname,
el->filebuf = buf; el->filebuf = buf;
if (size >= 3 && !memcmp(buf, utf8_bom, 3)) if (size >= 3 && !memcmp(buf, utf8_bom, 3)) {
entry = buf + 3; buf += 3;
else size -= 3;
entry = buf; }
entry = buf;
for (i = 0; i < size; i++) { for (i = 0; i < size; i++) {
if (buf[i] == '\n') { if (buf[i] == '\n') {