Browse Source

Fix: Console-mode compiler (ISCC) change: Renamed /DO and /EO command line parameters to /O- and /O+ to avoid possible conflicts with /D. Closes #111.

Martijn Laan 11 years ago
parent
commit
997f738253
4 changed files with 16 additions and 10 deletions
  1. 4 4
      Projects/ISCC.dpr
  2. 10 5
      Projects/ISPP/ISPPCC.dpr
  3. 1 1
      ishelp/isetup.xml
  4. 1 0
      whatsnew.htm

+ 4 - 4
Projects/ISCC.dpr

@@ -261,8 +261,8 @@ procedure ProcessCommandLine;
   begin
     WriteStdErr('Usage:  iscc [options] scriptfile.iss');
     WriteStdErr('or to read from standard input:  iscc [options] -');
-    WriteStdErr('Options:  /DO            Disable output (overrides Output)');
-    WriteStdErr('          /EO            Enable output (overrides Output)');
+    WriteStdErr('Options:  /O-            Disable output (overrides Output)');
+    WriteStdErr('          /O+            Enable output (overrides Output)');
     WriteStdErr('          /Oc:\path      Output files to specified path (overrides OutputDir)');
     WriteStdErr('          /Ffilename     Overrides OutputBaseFilename with the specified filename');
     WriteStdErr('          /Sname=command Sets a SignTool with the specified name and command');
@@ -283,9 +283,9 @@ begin
         Quiet := True;
         ShowProgress := CompareText(Copy(S, 3, MaxInt), 'P') = 0;
       end
-      else if CompareText(Copy(S, 1, 3), '/DO') = 0 then
+      else if CompareText(Copy(S, 1, 3), '/O-') = 0 then
         Output := 'no'
-      else if CompareText(Copy(S, 1, 3), '/EO') = 0 then
+      else if CompareText(Copy(S, 1, 3), '/O+') = 0 then
         Output := 'yes'
       else if CompareText(Copy(S, 1, 2), '/O') = 0 then
         OutputPath := Copy(S, 3, MaxInt)

+ 10 - 5
Projects/ISPP/ISPPCC.dpr

@@ -342,9 +342,9 @@ procedure Go;
     WriteStdErr('            /}<string>           #pragma inlineend <string>');
     WriteStdErr('            /v<number>           #pragma verboselevel <number>');
     WriteStdErr('          Disable output (overrides Output):');
-    WriteStdErr('            /do');
+    WriteStdErr('            /o-');
     WriteStdErr('          Enable output (overrides Output):');
-    WriteStdErr('            /eo');
+    WriteStdErr('            /o+');
     WriteStdErr('          Output files to specified path (overrides OutputDir):');
     WriteStdErr('            /o<path>');
     WriteStdErr('          Override OutputBaseFilename with the specified filename:');
@@ -447,9 +447,14 @@ begin
   if S <> '' then Options.InlineEnd := AnsiString(S);
   I := 1; S := FindParam(I, 'V');
   if S <> '' then Options.VerboseLevel := StrToIntDef(S, 0);
-  I := 1; FindParam(I, 'DO'); if I <> MaxInt then Output := 'no';
-  I := 1; FindParam(I, 'EO'); if I <> MaxInt then Output := 'yes';
-  I := 1; OutputPath := FindParam(I, 'O');
+  I := 1; S := FindParam(I, 'O');
+  while S <> '' do
+  begin
+    if S = '-' then Output := 'no'
+    else if S = '+' then Output := 'yes'
+    else OutputPath := S;
+    S := FindParam(I, 'O');
+  end;
   I := 1; OutputFileName := FindParam(I, 'F');
   I := 1; SignTool := FindParam(I, 'S');
 

+ 1 - 1
ishelp/isetup.xml

@@ -2979,7 +2979,7 @@ Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; St
 
 <p>As shown in the example above, filenames that include spaces must be enclosed in quotes.</p>
 
-<p>Valid options are: "/DO" to disable output (overriding any <tt>Output</tt> setting in the script), "/EO" to enable output (overriding any <tt>Output</tt> setting in the script), "/O" to specify an output path (overriding any <tt>OutputDir</tt> setting in the script), "/F" to specify an output filename (overriding any <tt>OutputBaseFilename</tt> setting in the script), "/S" to specify a Sign Tool (any Sign Tools configured using the IDE will be specified automatically), "/Q[p]" for quiet compile (print only error messages, "p" will show progress info), and "/?" to show a help screen.</p>
+<p>Valid options are: "/O-" to disable output (overriding any <tt>Output</tt> setting in the script), "/O+" to enable output (overriding any <tt>Output</tt> setting in the script), "/O" to specify an output path (overriding any <tt>OutputDir</tt> setting in the script), "/F" to specify an output filename (overriding any <tt>OutputBaseFilename</tt> setting in the script), "/S" to specify a Sign Tool (any Sign Tools configured using the IDE will be specified automatically), "/Q[p]" for quiet compile (print only error messages, "p" will show progress info), and "/?" to show a help screen.</p>
 
 <indent>
 <example>iscc /Qp /O"My Output" /F"MyProgram-1.0" /Sbyparam=$p "c:\isetup\samples\my script.iss"</example>

+ 1 - 0
whatsnew.htm

@@ -28,6 +28,7 @@ For conditions of distribution and use, see <a href="http://www.jrsoftware.org/f
 
 <p><a name="5.5.6"></a><span class="ver">5.5.6-dev </span><span class="date">(?)</span></p>
 <ul>
+<li><i>Fix:</i> Console-mode compiler (ISCC) change: Renamed /DO and /EO command line parameters to /O- and /O+ to avoid possible conflicts with /D.</li>
 <li>Various documentation improvements. Contributed by <a href="https://github.com/jogo-" target="_blank">jogo-</a> via <a href="https://github.com/jrsoftware" target="_blank">GitHub</a>.</li>
 </ul>