Implement and document prefix options with arbitrary values including an
authorReid Spencer <rspencer@reidspencer.com>
Wed, 24 Nov 2004 06:13:42 +0000 (06:13 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Wed, 24 Nov 2004 06:13:42 +0000 (06:13 +0000)
= sign. This needed to support -DNAME=value options as pass-through in
llvmc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18203 91177308-0d34-0410-b5e6-96231b3b80d8

docs/CommandLine.html
lib/Support/CommandLine.cpp

index 55f54844b4aec47733bc6a2782fd40738fda10eb..4f749b7feb71eba234fd48925e6dd0828dd3cb44 100644 (file)
@@ -1276,13 +1276,15 @@ Arguments</a> section for more information.</li>
 specifies that this option is used to capture "interpreter style" arguments.  See <a href="#cl::ConsumeAfter">this section for more information</a>.</li>
 
 <li><a name="cl::Prefix">The <b><tt>cl::Prefix</tt></b></a> modifier specifies
-that this option prefixes its value.  With 'Prefix' options, there is no equal
-sign that separates the value from the option name specified.  This is useful
-for processing odd arguments like '<tt>-lmalloc -L/usr/lib'</tt> in a linker
-tool.  Here, the '<tt>l</tt>' and '<tt>L</tt>' options are normal string (list)
-options, that have the <a href="#cl::Prefix">cl::Prefix</a> modifier added to
-allow the CommandLine library to recognize them.  Note that <a
-href="#cl::Prefix">cl::Prefix</a> options must not have the <a
+that this option prefixes its value.  With 'Prefix' options, the equal sign does
+not separate the value from the option name specified. Instead, the value is
+everything after the prefix, including any equal sign if present. This is useful
+for processing odd arguments like <tt>-lmalloc</tt> and <tt>-L/usr/lib</tt> in a
+linker tool or <tt>-DNAME=value</tt> in a compiler tool.   Here, the 
+'<tt>l</tt>', '<tt>D</tt>' and '<tt>L</tt>' options are normal string (or list)
+options, that have the <a href="#cl::Prefix">cl::Prefix</a> modifier added to 
+allow the CommandLine library to recognize them.  Note that 
+<a href="#cl::Prefix">cl::Prefix</a> options must not have the <a
 href="#cl::ValueDisallowed">cl::ValueDisallowed</a> modifier specified.</li>
 
 <li><a name="cl::Grouping">The <b><tt>cl::Grouping</tt></b></a> modifier is used
index 9ae4cde1b219dc854350290eb687bfeba3f0aae4..52e4bbded0299678ef72616bf3dae8fe95dd53a0 100644 (file)
@@ -397,7 +397,7 @@ void cl::ParseCommandLineOptions(int &argc, char **argv,
       Handler = LookupOption(ArgName, Value);
 
       // Check to see if this "option" is really a prefixed or grouped argument.
-      if (Handler == 0 && *Value == 0) {
+      if (Handler == 0) {
         std::string RealName(ArgName);
         if (RealName.size() > 1) {
           unsigned Length = 0;