From: Jordan Rupprecht Date: Wed, 16 Oct 2019 18:39:52 +0000 (+0000) Subject: [llvm-ar] Implement the V modifier as an alias for --version X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ca30c1a99c078c43ff2916c2011d1fec7eea4a4f;p=llvm [llvm-ar] Implement the V modifier as an alias for --version Summary: Also update the help modifier (h) so that it works as a modifier and not just as a standalone `h`. For example, `llvm-ar h` prints the help message, but `llvm-ar xh` currently prints `unknown option h`. Reviewers: MaskRay, gbreynoo Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69007 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375028 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/llvm-ar/help-message.test b/test/tools/llvm-ar/help-message.test index ed17667291d..8de26d525b0 100644 --- a/test/tools/llvm-ar/help-message.test +++ b/test/tools/llvm-ar/help-message.test @@ -1,5 +1,10 @@ +## Show that the help message for llvm-ar can be printed with either the long +## flag -help or with the h modifier. + # RUN: llvm-ar h | FileCheck %s +# RUN: llvm-ar xh | FileCheck %s # RUN: llvm-ar -h | FileCheck %s +# RUN: llvm-ar -xh | FileCheck %s # RUN: llvm-ar -help | FileCheck %s # RUN: llvm-ar --help | FileCheck %s diff --git a/test/tools/llvm-ar/version.test b/test/tools/llvm-ar/version.test new file mode 100644 index 00000000000..555e5fdf324 --- /dev/null +++ b/test/tools/llvm-ar/version.test @@ -0,0 +1,11 @@ +## Show that the version for llvm-ar can be printed with either the long flag +## -version or with the V modifier. + +RUN: llvm-ar V | FileCheck %s +RUN: llvm-ar xV | FileCheck %s +RUN: llvm-ar -V | FileCheck %s +RUN: llvm-ar -xV | FileCheck %s +RUN: llvm-ar -version | FileCheck %s +RUN: llvm-ar --version | FileCheck %s + +CHECK: version diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp index 67f70e97263..70e21dfe636 100644 --- a/tools/llvm-ar/llvm-ar.cpp +++ b/tools/llvm-ar/llvm-ar.cpp @@ -100,6 +100,7 @@ MODIFIERS: [b] - put [files] before [relpos] (same as [i]) [c] - do not warn if archive had to be created [D] - use zero for timestamps and uids/gids (default) + [h] - display this help and exit [i] - put [files] before [relpos] (same as [b]) [l] - ignored for compatibility [L] - add archive's contents @@ -112,6 +113,7 @@ MODIFIERS: [u] - update only [files] newer than archive contents [U] - use actual timestamps and uids/gids [v] - be verbose about actions taken + [V] - display the version and exit )"; void printHelpMessage() { @@ -381,6 +383,12 @@ static ArchiveOperation parseCommandLine() { case 'L': AddLibrary = true; break; + case 'V': + cl::PrintVersionMessage(); + exit(0); + case 'h': + printHelpMessage(); + exit(0); default: fail(std::string("unknown option ") + Options[i]); } @@ -1063,7 +1071,7 @@ static void runMRIScript() { } static bool handleGenericOption(StringRef arg) { - if (arg == "h" || arg.startswith("-h") || arg == "--help") { + if (arg == "-help" || arg == "--help") { printHelpMessage(); return true; }