1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-07 16:50:24 +00:00

Allows -s switch to change settings and process other parameters.

This commit is contained in:
FellippeHeitor 2020-01-22 02:01:29 -03:00
parent 68fdc47f45
commit f944e86b38
2 changed files with 22 additions and 10 deletions

View file

@ -13,7 +13,7 @@ DIM SHARED PasteCursorAtEnd AS _BYTE
DIM SHARED SaveExeWithSource AS _BYTE, EnableQuickNav AS _BYTE DIM SHARED SaveExeWithSource AS _BYTE, EnableQuickNav AS _BYTE
DIM SHARED IDEShowErrorsImmediately AS _BYTE DIM SHARED IDEShowErrorsImmediately AS _BYTE
DIM SHARED ShowLineNumbersSeparator AS _BYTE, ShowLineNumbersUseBG AS _BYTE DIM SHARED ShowLineNumbersSeparator AS _BYTE, ShowLineNumbersUseBG AS _BYTE
DIM SHARED IgnoreWarnings AS _BYTE DIM SHARED IgnoreWarnings AS _BYTE, qb64versionprinted AS _BYTE
IF LoadedIDESettings = 0 THEN IF LoadedIDESettings = 0 THEN
'We only want to load the file once when QB64 first starts 'We only want to load the file once when QB64 first starts
@ -449,7 +449,7 @@ IF LoadedIDESettings = 0 THEN
idebackupsize = VAL(value$) idebackupsize = VAL(value$)
IF idebackupsize < 10 OR idebackupsize > 2000 THEN idebackupsize = 100: WriteConfigSetting "'[GENERAL SETTINGS]", "BackupSize", "100 'in MB" IF idebackupsize < 10 OR idebackupsize > 2000 THEN idebackupsize = 100: WriteConfigSetting "'[GENERAL SETTINGS]", "BackupSize", "100 'in MB"
result = ReadConfigSetting("DeBugInfo", value$) result = ReadConfigSetting("DebugInfo", value$)
idedebuginfo = VAL(value$) idedebuginfo = VAL(value$)
IF UCASE$(LEFT$(value$, 4)) = "TRUE" THEN idedebuginfo = 1 IF UCASE$(LEFT$(value$, 4)) = "TRUE" THEN idedebuginfo = 1
IF result = 0 OR idedebuginfo <> 1 THEN IF result = 0 OR idedebuginfo <> 1 THEN

View file

@ -1094,7 +1094,7 @@ GOTO sendcommand
noide: noide:
PRINT "QB64 COMPILER V" + Version$ IF qb64versionprinted = 0 THEN qb64versionprinted = -1: PRINT "QB64 COMPILER V" + Version$
IF CMDLineFile = "" THEN IF CMDLineFile = "" THEN
LINE INPUT ; "COMPILE (.bas)>", f$ LINE INPUT ; "COMPILE (.bas)>", f$
@ -12436,7 +12436,7 @@ FUNCTION ParseCMDLineArgs$ ()
SELECT CASE LCASE$(LEFT$(token$, 2)) SELECT CASE LCASE$(LEFT$(token$, 2))
CASE "-?" 'Command-line help CASE "-?" 'Command-line help
_DEST _CONSOLE _DEST _CONSOLE
PRINT "QB64 COMPILER V" + Version$ IF qb64versionprinted = 0 THEN qb64versionprinted = -1: PRINT "QB64 COMPILER V" + Version$
PRINT PRINT
PRINT "USAGE: qb64 [switches] <file>" PRINT "USAGE: qb64 [switches] <file>"
PRINT PRINT
@ -12458,6 +12458,7 @@ FUNCTION ParseCMDLineArgs$ ()
SYSTEM SYSTEM
CASE "-v" 'Verbose mode CASE "-v" 'Verbose mode
VerboseMode = -1 VerboseMode = -1
cmdlineswitch = -1
CASE "-p" 'Purge CASE "-p" 'Purge
IF os$ = "WIN" THEN IF os$ = "WIN" THEN
CHDIR "internal\c" CHDIR "internal\c"
@ -12474,9 +12475,11 @@ FUNCTION ParseCMDLineArgs$ ()
END IF END IF
CHDIR "../.." CHDIR "../.."
END IF END IF
cmdlineswitch = -1
CASE "-s" 'Settings CASE "-s" 'Settings
settingsMode = -1
_DEST _CONSOLE _DEST _CONSOLE
PRINT "QB64 COMPILER V" + Version$ IF qb64versionprinted = 0 THEN qb64versionprinted = -1: PRINT "QB64 COMPILER V" + Version$
SELECT CASE LCASE$(MID$(token$, 3)) SELECT CASE LCASE$(MID$(token$, 3))
CASE "" CASE ""
PRINT "debuginfo = "; PRINT "debuginfo = ";
@ -12491,11 +12494,11 @@ FUNCTION ParseCMDLineArgs$ ()
CASE ":exewithsource=true" CASE ":exewithsource=true"
WriteConfigSetting "'[GENERAL SETTINGS]", "SaveExeWithSource", "TRUE" WriteConfigSetting "'[GENERAL SETTINGS]", "SaveExeWithSource", "TRUE"
PRINT "exewithsource = TRUE" PRINT "exewithsource = TRUE"
SYSTEM SaveExeWithSource = -1
CASE ":exewithsource=false" CASE ":exewithsource=false"
WriteConfigSetting "'[GENERAL SETTINGS]", "SaveExeWithSource", "FALSE" WriteConfigSetting "'[GENERAL SETTINGS]", "SaveExeWithSource", "FALSE"
PRINT "exewithsource = FALSE" PRINT "exewithsource = FALSE"
SYSTEM SaveExeWithSource = 0
CASE ":debuginfo" CASE ":debuginfo"
PRINT "debuginfo = "; PRINT "debuginfo = ";
IF idedebuginfo THEN PRINT "TRUE" ELSE PRINT "FALSE" IF idedebuginfo THEN PRINT "TRUE" ELSE PRINT "FALSE"
@ -12520,7 +12523,6 @@ FUNCTION ParseCMDLineArgs$ ()
END IF END IF
CHDIR "../.." CHDIR "../.."
END IF END IF
SYSTEM
CASE ":debuginfo=false" CASE ":debuginfo=false"
PRINT "debuginfo = FALSE" PRINT "debuginfo = FALSE"
WriteConfigSetting "'[GENERAL SETTINGS]", "DebugInfo", "FALSE 'INTERNAL VARIABLE USE ONLY!! DO NOT MANUALLY CHANGE!" WriteConfigSetting "'[GENERAL SETTINGS]", "DebugInfo", "FALSE 'INTERNAL VARIABLE USE ONLY!! DO NOT MANUALLY CHANGE!"
@ -12541,7 +12543,6 @@ FUNCTION ParseCMDLineArgs$ ()
END IF END IF
CHDIR "../.." CHDIR "../.."
END IF END IF
SYSTEM
CASE ELSE CASE ELSE
PRINT "INVALID SETTINGS SWITCH: "; token$ PRINT "INVALID SETTINGS SWITCH: "; token$
PRINT PRINT
@ -12550,27 +12551,38 @@ FUNCTION ParseCMDLineArgs$ ()
PRINT " -s:exewithsource=true/false (Save .EXE in the source folder)" PRINT " -s:exewithsource=true/false (Save .EXE in the source folder)"
SYSTEM SYSTEM
END SELECT END SELECT
_DEST 0
CASE "-e" 'Option Explicit CASE "-e" 'Option Explicit
optionexplicit_cmd = -1 optionexplicit_cmd = -1
cmdlineswitch = -1
CASE "-z" 'Not compiling C code CASE "-z" 'Not compiling C code
No_C_Compile_Mode = 1 No_C_Compile_Mode = 1
ConsoleMode = 1 'Implies -x ConsoleMode = 1 'Implies -x
NoIDEMode = 1 'Implies -c NoIDEMode = 1 'Implies -c
cmdlineswitch = -1
CASE "-x" 'Use the console CASE "-x" 'Use the console
ConsoleMode = 1 ConsoleMode = 1
NoIDEMode = 1 'Implies -c NoIDEMode = 1 'Implies -c
cmdlineswitch = -1
CASE "-c" 'Compile instead of edit CASE "-c" 'Compile instead of edit
NoIDEMode = 1 NoIDEMode = 1
cmdlineswitch = -1
CASE "-o" 'Specify an output file CASE "-o" 'Specify an output file
IF LEN(COMMAND$(i + 1)) > 0 THEN outputfile_cmd$ = COMMAND$(i + 1): i = i + 1 IF LEN(COMMAND$(i + 1)) > 0 THEN outputfile_cmd$ = COMMAND$(i + 1): i = i + 1
cmdlineswitch = -1
CASE "-l" 'goto line (ide mode only); -l:<line number> CASE "-l" 'goto line (ide mode only); -l:<line number>
IF MID$(token$, 3, 1) = ":" THEN ideStartAtLine = VAL(MID$(token$, 4)) IF MID$(token$, 3, 1) = ":" THEN ideStartAtLine = VAL(MID$(token$, 4))
cmdlineswitch = -1
CASE ELSE 'Something we don't recognise, assume it's a filename CASE ELSE 'Something we don't recognise, assume it's a filename
IF PassedFileName$ = "" THEN PassedFileName$ = token$ IF PassedFileName$ = "" THEN PassedFileName$ = token$
END SELECT END SELECT
NEXT i NEXT i
IF LEN(PassedFileName$) THEN ParseCMDLineArgs$ = PassedFileName$ IF LEN(PassedFileName$) THEN
ParseCMDLineArgs$ = PassedFileName$
ELSE
IF cmdlineswitch = 0 AND settingsMode = -1 THEN SYSTEM
END IF
END FUNCTION END FUNCTION
FUNCTION Type2MemTypeValue (t1) FUNCTION Type2MemTypeValue (t1)