From d3b55e99e98a966d5357613656c99b5d1b0a0913 Mon Sep 17 00:00:00 2001 From: Hugh McMaster Date: Mon, 31 Aug 2015 19:51:44 +1000 Subject: [PATCH] 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 449124faf56..8d1ab1749c1 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;