Hugh McMaster : regsvr32: Process flags before files.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Aug 31 06:41:59 CDT 2015


Module: wine
Branch: master
Commit: d3b55e99e98a966d5357613656c99b5d1b0a0913
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d3b55e99e98a966d5357613656c99b5d1b0a0913

Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date:   Mon Aug 31 19:51:44 2015 +1000

regsvr32: Process flags before files.

---

 programs/regsvr32/regsvr32.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/programs/regsvr32/regsvr32.c b/programs/regsvr32/regsvr32.c
index 449124f..8d1ab17 100644
--- a/programs/regsvr32/regsvr32.c
+++ b/programs/regsvr32/regsvr32.c
@@ -231,10 +231,8 @@ int wmain(int argc, WCHAR* argv[])
 
     OleInitialize(NULL);
 
-    /* Strictly, the Microsoft version processes all the flags before
+    /* We mirror the Microsoft version by processing all of the flags before
      * the files (e.g. regsvr32 file1 /s file2 is silent even for file1).
-     * For ease, we will not replicate that and will process the arguments
-     * in order.
      *
      * Note the complication that this version may be passed Unix format filenames
      * which could be mistaken for flags. The Windows version conveniently
@@ -270,8 +268,13 @@ int wmain(int argc, WCHAR* argv[])
                 output_write(STRING_USAGE);
                 return 1;
             }
+            argv[i] = NULL;
         }
-        else
+    }
+
+    for (i = 1; i < argc; i++)
+    {
+        if (argv[i])
         {
             WCHAR *DllName = argv[i];
             int res = 0;




More information about the wine-cvs mailing list