Optionally work without python
[git.git] / update-index.c
index be87b99..afec98d 100644 (file)
@@ -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) {