update-index: work with c-quoted name
authorJunio C Hamano <junkio@cox.net>
Wed, 11 Jan 2006 21:36:45 +0000 (13:36 -0800)
committerJunio C Hamano <junkio@cox.net>
Wed, 11 Jan 2006 21:36:45 +0000 (13:36 -0800)
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>
update-index.c

index be87b99808355b8ada23df4a04edf5078d87d06f..a84a04f91855f1953f33cfa7573b7656e7c116b9 100644 (file)
@@ -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) {