[PATCH] Teach git-ls-files about '--' to denote end of options.
From: Fredrik Kuivinen <hidden>
Date: 2016-06-15 22:42:07
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
Signed-off-by: Fredrik Kuivinen <redacted> --- Documentation/git-ls-files.txt | 9 ++++++++- ls-files.c | 5 ++++- 2 files changed, 12 insertions(+), 2 deletions(-) 1d1f81648fe42497daff2e95320698fa22ca6440
diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
--- a/Documentation/git-ls-files.txt
+++ b/Documentation/git-ls-files.txt@@ -13,7 +13,7 @@ SYNOPSIS (-[c|d|o|i|s|u|k|m])\* [-x <pattern>|--exclude=<pattern>] [-X <file>|--exclude-from=<file>] - [--exclude-per-directory=<file>] + [--exclude-per-directory=<file>] [--] [<file>]\* DESCRIPTION -----------
@@ -77,6 +77,13 @@ OPTIONS K to be killed ? other +--:: + Do not interpret any more arguments as options. + +<file>:: + Files to show. If no files are given all files which match the other + specified criteria are shown. + Output ------ show files just outputs the filename unless '--stage' is specified in
diff --git a/ls-files.c b/ls-files.c
--- a/ls-files.c
+++ b/ls-files.c@@ -530,7 +530,7 @@ static void verify_pathspec(void) static const char ls_files_usage[] = "git-ls-files [-z] [-t] (--[cached|deleted|others|stage|unmerged|killed|modified])* " "[ --ignored ] [--exclude=<pattern>] [--exclude-from=<file>] " - "[ --exclude-per-directory=<filename> ]"; + "[ --exclude-per-directory=<filename> ] [--] [<file>]*"; int main(int argc, const char **argv) {
@@ -544,6 +544,9 @@ int main(int argc, const char **argv) for (i = 1; i < argc; i++) { const char *arg = argv[i]; + if (!strcmp(arg, "--")) { + break; + } if (!strcmp(arg, "-z")) { line_terminator = 0; continue;