Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- builtin-ls-files.c | 31 +++++++++++++++++++++++++++++++ builtin.h | 1 + git.c | 1 + 3 files changed, 33 insertions(+), 0 deletions(-) diff --git a/builtin-ls-files.c b/builtin-ls-files.c index e16638e..f63b039 100644 --- a/builtin-ls-files.c +++ b/builtin-ls-files.c @@ -11,6 +11,7 @@ #include "builtin.h" #include "tree.h" #include "parse-options.h" +#include "run-command.h" static int abbrev; static int show_deleted; @@ -31,6 +32,7 @@ static char *ps_matched; static const char *with_tree; static int exc_given; static int max_depth = 0; +static int show_colums = 0; static const char *tag_cached = ""; static const char *tag_unmerged = ""; @@ -461,6 +463,7 @@ static int option_parse_exclude_standard(const struct option *opt, int cmd_ls_files(int argc, const char **argv, const char *prefix) { + struct child_process cp; int require_work_tree = 0, show_tag = 0; struct dir_struct dir; struct option builtin_ls_files_options[] = { @@ -513,6 +516,7 @@ int cmd_ls_files(int argc, const char **argv, const char *prefix) OPT_STRING(0, "with-tree", &with_tree, "tree-ish", "pretend that paths removed since <tree-ish> are still present"), OPT_INTEGER(0, "max-depth", &max_depth, "max recursive depth"), + OPT_BOOLEAN(0, "columns", &show_colums, "show in columns"), OPT__ABBREV(&abbrev), OPT_END() }; @@ -591,6 +595,20 @@ int cmd_ls_files(int argc, const char **argv, const char *prefix) die("ls-files --with-tree is incompatible with -s or -u"); overlay_tree_on_cache(with_tree, prefix); } + + if (show_colums) { + const char *argv[] = { "column", NULL }; + + memset(&cp, 0, sizeof(cp)); + cp.in = -1; + cp.out = dup(1); + cp.argv = argv; + start_command(&cp); + close(1); + dup2(cp.in, 1); + close(cp.in); + } + show_files(&dir, prefix); if (ps_matched) { @@ -602,5 +620,18 @@ int cmd_ls_files(int argc, const char **argv, const char *prefix) return bad ? 1 : 0; } + if (show_colums) { + fflush(stdout); + close(1); + finish_command(&cp); + } + return 0; } + +int cmd_ls(int argc, const char **argv, const char *prefix) +{ + max_depth = 1; + show_colums = 1; + return cmd_ls_files(argc, argv, prefix); +} diff --git a/builtin.h b/builtin.h index c3f83c0..d8980e5 100644 --- a/builtin.h +++ b/builtin.h @@ -61,6 +61,7 @@ extern int cmd_init_db(int argc, const char **argv, const char *prefix); extern int cmd_log(int argc, const char **argv, const char *prefix); extern int cmd_log_reflog(int argc, const char **argv, const char *prefix); extern int cmd_ls_files(int argc, const char **argv, const char *prefix); +extern int cmd_ls(int argc, const char **argv, const char *prefix); extern int cmd_ls_tree(int argc, const char **argv, const char *prefix); extern int cmd_ls_remote(int argc, const char **argv, const char *prefix); extern int cmd_mailinfo(int argc, const char **argv, const char *prefix); diff --git a/git.c b/git.c index 11544cd..4aff5ec 100644 --- a/git.c +++ b/git.c @@ -323,6 +323,7 @@ static void handle_internal_command(int argc, const char **argv) { "init-db", cmd_init_db }, { "log", cmd_log, RUN_SETUP | USE_PAGER }, { "ls-files", cmd_ls_files, RUN_SETUP }, + { "ls", cmd_ls, RUN_SETUP }, { "ls-tree", cmd_ls_tree, RUN_SETUP }, { "ls-remote", cmd_ls_remote }, { "mailinfo", cmd_mailinfo }, -- 1.6.6.315.g1a406 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html