X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=update-index.c;h=afec98dd48f59e095c0884c821c85b7228b45201;hb=abb7c7b31c0896bd838bbb6437b310db5a42227a;hp=be87b99808355b8ada23df4a04edf5078d87d06f;hpb=5e80092f7e6db09a40a62e837ca3f74f0bc5ad73;p=git.git diff --git a/update-index.c b/update-index.c index be87b998..afec98dd 100644 --- a/update-index.c +++ b/update-index.c @@ -367,7 +367,7 @@ static void read_index_info(int line_termination) if (!tab || tab - ptr < 41) goto bad_line; - if (tab[-2] == ' ' && '1' <= tab[-1] && tab[-1] <= '3') { + if (tab[-2] == ' ' && '0' <= tab[-1] && tab[-1] <= '3') { stage = tab[-1] - '0'; ptr = tab + 1; /* point at the head of path */ tab = tab - 2; /* point at tail of sha1 */ @@ -534,10 +534,17 @@ int main(int argc, const char **argv) struct strbuf buf; strbuf_init(&buf); while (1) { + char *path_name; read_line(&buf, stdin, line_termination); if (buf.eof) break; - update_one(buf.buf, prefix, prefix_length); + if (line_termination && buf.buf[0] == '"') + path_name = unquote_c_style(buf.buf, NULL); + else + path_name = buf.buf; + update_one(path_name, prefix, prefix_length); + if (path_name != buf.buf) + free(path_name); } } if (active_cache_changed) {