diff options
author | Junio C Hamano <junkio@cox.net> | 2005-10-14 21:56:46 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-10-17 17:41:55 -0700 |
commit | 22ddf7197958337a8c254122eae4efcd8a54098a (patch) | |
tree | 425970bac6109c4b5d541ffb62adb7a570822ae9 | |
parent | 22943f1a52142b0ef669c959f8b4367e579da968 (diff) | |
download | git-22ddf7197958337a8c254122eae4efcd8a54098a.tar.gz |
Update ls-files and ls-tree to use C-style quoting for funny pathnames.
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | ls-files.c | 22 | ||||
-rw-r--r-- | ls-tree.c | 6 |
2 files changed, 19 insertions, 9 deletions
diff --git a/ls-files.c b/ls-files.c index f47114a168..3085b2fc8c 100644 --- a/ls-files.c +++ b/ls-files.c @@ -9,6 +9,7 @@ #include <fnmatch.h> #include "cache.h" +#include "quote.h" static int show_deleted = 0; static int show_cached = 0; @@ -342,7 +343,9 @@ static void show_dir_entry(const char *tag, struct nond_on_fs *ent) if (pathspec && !match(pathspec, ent->name, len)) return; - printf("%s%s%c", tag, ent->name + offset, line_terminator); + fputs(tag, stdout); + write_name_quoted("", ent->name + offset, line_terminator, stdout); + putchar(line_terminator); } static void show_killed_files(void) @@ -405,15 +408,20 @@ static void show_ce_entry(const char *tag, struct cache_entry *ce) if (pathspec && !match(pathspec, ce->name, len)) return; - if (!show_stage) - printf("%s%s%c", tag, ce->name + offset, line_terminator); - else - printf("%s%06o %s %d\t%s%c", + if (!show_stage) { + fputs(tag, stdout); + write_name_quoted("", ce->name + offset, line_terminator, stdout); + putchar(line_terminator); + } + else { + printf("%s%06o %s %d\t", tag, ntohl(ce->ce_mode), sha1_to_hex(ce->sha1), - ce_stage(ce), - ce->name + offset, line_terminator); + ce_stage(ce)); + write_name_quoted("", ce->name + offset, line_terminator, stdout); + putchar(line_terminator); + } } static void show_files(void) @@ -6,6 +6,7 @@ #include "cache.h" #include "blob.h" #include "tree.h" +#include "quote.h" static int line_termination = '\n'; #define LS_RECURSIVE 1 @@ -156,8 +157,9 @@ static int show_entry(struct tree_entry_list *e, int level, char *pathbuf) int err = 0; if (e != &root_entry) { - printf("%06o %s %s %s%s", e->mode, entry_type(e), - entry_hex(e), pathbuf, e->name); + printf("%06o %s %s ", + e->mode, entry_type(e), entry_hex(e)); + write_name_quoted(pathbuf, e->name, line_termination, stdout); putchar(line_termination); } |