Skip to content

Commit 49af099

Browse files
committed
Parameter errors to stdout/err if in /Silent mode
1 parent d85c298 commit 49af099

File tree

1 file changed

+21
-26
lines changed

1 file changed

+21
-26
lines changed

Ahk2Exe.ahk

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -339,56 +339,57 @@ AddBin(File, Force := 0)
339339
ParseCmdLine:
340340
if !A_Args.MaxIndex()
341341
return
342-
CLIMode := true ; Set defaults - may be overridden.
342+
BadP := [], CLIMode := 1 ; Set defaults
343343
SilentMode := 0 ; 0=off, 1=on, 2=verbose
344344
p := A_Args.Clone() ; Don't deplete A_Args here as needed in 'Restart:'
345345
while 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)
356358
if (SilentMode && (!CLIMode || GuiParam))
357-
BadParams("Error: /Silent parameter requires CLI mode.")
358-
CLIMode := !GuiParam
359+
BadParams("Error: /Silent parameter requires CLI mode.",,, SilentMode)
359360
if (AhkFile = "" && CLIMode)
360-
BadParams("Error: No input file specified.")
361+
BadParams("Error: No input file specified.",,, SilentMode)
362+
CLIMode := !GuiParam
361363
if BinFile =
362364
BinFile := LastBinFile
363365
return
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

370371
CmdArg_Gui() {
371372
global GuiParam := true
372373
}
373374
CmdArg_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
}
379380
CmdArg_Out(p2) {
380381
global StopCDExe := 1, ExeFile := p2
381382
}
382383
CmdArg_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
}
387388
CmdArg_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
}
393394
CmdArg_Bin(p2) {
394395
CmdArg_Base(p2)
@@ -403,8 +404,8 @@ CmdArg_MPRESS(p2) {
403404
CmdArg_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

439434
BrowseAhk:

0 commit comments

Comments
 (0)