summaryrefslogtreecommitdiff
path: root/update-index.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-01-11 21:36:45 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-01-11 21:36:45 (GMT)
commita94d9948da539fdafc26c74afb335b2fe9f8f21d (patch)
treec86bcbc27198983eba1ff839adb8934eb363defb /update-index.c
parentd5a6aafc90a14382120727e4e81ee1a380e8b194 (diff)
downloadgit-a94d9948da539fdafc26c74afb335b2fe9f8f21d.zip
git-a94d9948da539fdafc26c74afb335b2fe9f8f21d.tar.gz
git-a94d9948da539fdafc26c74afb335b2fe9f8f21d.tar.bz2
update-index: work with c-quoted name
update-index --stdin did not work with c-style quoted names even though update-index --index-info did. This fixes the inconsistency. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'update-index.c')
-rw-r--r--update-index.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/update-index.c b/update-index.c
index be87b99..a84a04f 100644
--- a/update-index.c
+++ b/update-index.c
@@ -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) {