@@ -339,56 +339,57 @@ AddBin(File, Force := 0)
339339ParseCmdLine :
340340if ! A_Args.MaxIndex ()
341341 return
342- CLIMode := true ; Set defaults - may be overridden.
342+ BadP := [], CLIMode := 1 ; Set defaults
343343SilentMode := 0 ; 0=off, 1=on, 2=verbose
344344p := A_Args.Clone () ; Don't deplete A_Args here as needed in 'Restart:'
345345while p.MaxIndex ()
346346{ p1 := p.RemoveAt(1 )
347347 if SubStr (p1,1 ,1 ) ! = " /" || ! (p1fn := Func (" CmdArg_" SubStr (p1,2 )))
348- BadParams( " Error: Unrecognised parameter:`n" p1)
348+ BadP.Push([ " Error: Unrecognised parameter:`n" p1] )
349349 if p1fn.MaxParams ; Currently assumes 0 or 1 params.
350350 { p2 := p.RemoveAt(1 )
351351 if (p2 = "" || SubStr (p2,1 ,1 ) = " /" )
352- BadParams( " Error: Blank or missing parameter for " p1 " ." )
352+ BadP.Push([ " Error: Blank or missing parameter for " p1 " ." ] )
353353 }
354354 %p1fn%(p2)
355355}
356+ if BadP.MaxIndex ()
357+ BadParams(BadP.1.1 , BadP.1.2 ? BadP.1.2 : 0x3 , BadP.1.3 , SilentMode)
356358if (SilentMode && (! CLIMode || GuiParam))
357- BadParams(" Error: /Silent parameter requires CLI mode." )
358- CLIMode := ! GuiParam
359+ BadParams(" Error: /Silent parameter requires CLI mode." ,,, SilentMode)
359360if (AhkFile = "" && CLIMode)
360- BadParams(" Error: No input file specified." )
361+ BadParams(" Error: No input file specified." ,,, SilentMode)
362+ CLIMode := ! GuiParam
361363if BinFile =
362364 BinFile := LastBinFile
363365return
364366
365- BadParams(Message, ErrorCode := 0x3 , Specifically := "" )
366- { global SilentMode := 0 ; Errors should go to screen
367- Util_Error(Message, ErrorCode,Specifically, " Command Line Parameters:`n`n" A_ScriptName " `n`t [/in infile.ahk]`n`t [/out outfile.exe]`n`t [/icon iconfile.ico]`n`t [/base AutoHotkeySC.bin]`n`t [/resourceid #1]`n`t [/compress 0 (none), 1 (MPRESS), or 2 (UPX)]`n`t [/cp codepage]`n`t [/silent [verbose]]`n`t [/gui]" )
367+ BadParams(Message, ErrorCode := 0x3 , Specifically := "" , SilentMode := "" )
368+ { Util_Error(Message, ErrorCode, Specifically, SilentMode ? "" : " Command Line Parameters:`n`n" A_ScriptName " `n`t [/in infile.ahk]`n`t [/out outfile.exe]`n`t [/icon iconfile.ico]`n`t [/base AutoHotkeySC.bin]`n`t [/resourceid #1]`n`t [/compress 0 (none), 1 (MPRESS), or 2 (UPX)]`n`t [/cp codepage]`n`t [/silent [verbose]]`n`t [/gui]" )
368369}
369370
370371CmdArg_Gui () {
371372 global GuiParam := true
372373}
373374CmdArg_In (p2 ) {
374- global AhkFile := p2
375+ global AhkFile := p2, BadP
375376 if ! FileExist (p2)
376- BadParams( " Error: Source file does not exist." ,0x32 ," "" " p2 " "" " )
377- SetCDBin(AhkFile)
377+ BadP.Push([ " Error: Source file does not exist." ,0x32 ," "" " p2 " "" " ] )
378+ else SetCDBin(AhkFile)
378379}
379380CmdArg_Out (p2 ) {
380381 global StopCDExe := 1 , ExeFile := p2
381382}
382383CmdArg_Icon (p2 ) {
383- global StopCDIco := 1 , IcoFile := p2
384+ global StopCDIco := 1 , IcoFile := p2, BadP
384385 if ! FileExist (p2)
385- BadParams( " Error: Icon file does not exist." ,0x35 ," "" " p2 " "" " )
386+ BadP.Push([ " Error: Icon file does not exist." ,0x35 ," "" " p2 " "" " ] )
386387}
387388CmdArg_Base (p2 ) {
388- global StopCDBin := 1 , BinFile := p2, LastBinFile := Util_GetFullPath(p2), p1
389+ global StopCDBin:= 1 , BinFile:= p2, LastBinFile:= Util_GetFullPath(p2), p1, BadP
389390 if ! FileExist (p2)
390- BadParams( " Error: Base file does not exist." ,0x34 ," "" " p2 " "" " )
391- AddBin(p2, 1 )
391+ BadP.Push([ " Error: Base file does not exist." ,0x34 ," "" " p2 " "" " ] )
392+ else AddBin(p2, 1 )
392393}
393394CmdArg_Bin (p2 ) {
394395 CmdArg_Base(p2)
@@ -403,8 +404,8 @@ CmdArg_MPRESS(p2) {
403404CmdArg_Compress (p2 ) {
404405 global
405406 if ! CompressCode[p2] ; Invalid codes?
406- BadParams( " Error: " p1 " parameter invalid:`n" p2)
407- if CompressCode[p2] > 0 ; Convert any old codes
407+ BadP.Push([ " Error: " p1 " parameter invalid:`n" p2] )
408+ else if CompressCode[p2] > 0 ; Convert any old codes
408409 p2 := CompressCode[p2]
409410 UseMPRESS := p2
410411}
@@ -427,13 +428,7 @@ CmdArg_Silent(){
427428 if (p[1 ] = " verbose" )
428429 { SilentMode := 2
429430 p.RemoveAt(1 )
430- } else SilentMode := 1
431- }
432- CmdArg_Pass () {
433- BadParams(" Error: Password protection is not supported." , 0x24 )
434- }
435- CmdArg_NoDecompile () {
436- BadParams(" Error: /NoDecompile is not supported." , 0x23 )
431+ } else SilentMode := 1
437432}
438433
439434BrowseAhk :
0 commit comments