X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=show-files.c;h=0ecb2bd62106a0fdd617ee4c5ba5b50bcda8acd6;hb=43f91266a493c4888b4ff2a7997ccc4a381e7238;hp=9c396ec8e5e9c9b9ab79fe15baea5141c2de530a;hpb=8695c8bfe181677ca112502c1eef67930d84a75d;p=git.git diff --git a/show-files.c b/show-files.c index 9c396ec8..0ecb2bd6 100644 --- a/show-files.c +++ b/show-files.c @@ -14,6 +14,8 @@ static int show_deleted = 0; static int show_cached = 0; static int show_others = 0; static int show_ignored = 0; +static int show_stage = 0; +static int line_terminator = '\n'; static const char **dir; static int nr_dir; @@ -41,7 +43,7 @@ static void add_name(const char *pathname, int len) * handle them at all yet. Maybe that will change some day. * * Also, we currently ignore all names starting with a dot. - * That likely will not change. + * That likely will not change. */ static void read_directory(const char *path, const char *base, int baselen) { @@ -105,12 +107,21 @@ static void show_files(void) } if (show_others) { for (i = 0; i < nr_dir; i++) - printf("%s\n", dir[i]); + printf("%s%c", dir[i], line_terminator); } - if (show_cached) { + if (show_cached | show_stage) { for (i = 0; i < active_nr; i++) { struct cache_entry *ce = active_cache[i]; - printf("%s\n", ce->name); + if (!show_stage) + printf("%s%c", ce->name, line_terminator); + else + printf(/* "%06o %s %d %10d %s%c", */ + "%06o %s %d %s%c", + ntohl(ce->ce_mode), + sha1_to_hex(ce->sha1), + ce_stage(ce), + /* ntohl(ce->ce_size), */ + ce->name, line_terminator); } } if (show_deleted) { @@ -119,7 +130,7 @@ static void show_files(void) struct stat st; if (!stat(ce->name, &st)) continue; - printf("%s\n", ce->name); + printf("%s%c", ce->name, line_terminator); } } if (show_ignored) { @@ -134,6 +145,11 @@ int main(int argc, char **argv) for (i = 1; i < argc; i++) { char *arg = argv[i]; + if (!strcmp(arg, "-z")) { + line_terminator = 0; + continue; + } + if (!strcmp(arg, "--cached")) { show_cached = 1; continue; @@ -150,12 +166,16 @@ int main(int argc, char **argv) show_ignored = 1; continue; } + if (!strcmp(arg, "--stage")) { + show_stage = 1; + continue; + } - usage("show-files (--[cached|deleted|others|ignoded])*"); + usage("show-files [-z] (--[cached|deleted|others|ignored|stage])*"); } /* With no flags, we default to showing the cached files */ - if (!(show_cached | show_deleted | show_others | show_ignored)) + if (!(show_stage | show_deleted | show_others | show_ignored)) show_cached = 1; read_cache();