mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-07-06 18:40:23 +00:00
Merge pull request #392 from a740g/versioninfo-enhancement
$VERSIONINFO enhancement (#20)
This commit is contained in:
commit
00ae109489
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -17,3 +17,4 @@ mingw32.exe
|
||||||
mingw64.exe
|
mingw64.exe
|
||||||
.vscode
|
.vscode
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
source/qb64pe_start.command
|
||||||
|
|
|
@ -12,14 +12,14 @@ $SCREENHIDE
|
||||||
|
|
||||||
$EXEICON:'./qb64pe.ico'
|
$EXEICON:'./qb64pe.ico'
|
||||||
|
|
||||||
$VERSIONINFO:CompanyName=QB64 Phoenix Edition
|
$VERSIONINFO:CompanyName='QB64 Phoenix Edition'
|
||||||
$VERSIONINFO:FileDescription=QB64 IDE and Compiler
|
$VERSIONINFO:FileDescription='QB64 IDE and Compiler'
|
||||||
$VERSIONINFO:InternalName=qb64pe.bas
|
$VERSIONINFO:InternalName='qb64pe.bas'
|
||||||
$VERSIONINFO:LegalCopyright=MIT
|
$VERSIONINFO:LegalCopyright='MIT'
|
||||||
$VERSIONINFO:LegalTrademarks=
|
$VERSIONINFO:LegalTrademarks=''
|
||||||
$VERSIONINFO:OriginalFilename=qb64pe.exe
|
$VERSIONINFO:OriginalFilename='qb64pe.exe'
|
||||||
$VERSIONINFO:ProductName=QB64-PE
|
$VERSIONINFO:ProductName='QB64-PE'
|
||||||
$VERSIONINFO:Comments=QB64 is a modern extended BASIC programming language that retains QB4.5/QBasic compatibility and compiles native binaries for Windows, Linux and macOS.
|
$VERSIONINFO:Comments='QB64 is a modern extended BASIC programming language that retains QB4.5/QBasic compatibility and compiles native binaries for Windows, Linux and macOS.'
|
||||||
|
|
||||||
'$INCLUDE:'global\version.bas'
|
'$INCLUDE:'global\version.bas'
|
||||||
'$INCLUDE:'global\settings.bas'
|
'$INCLUDE:'global\settings.bas'
|
||||||
|
@ -119,6 +119,8 @@ OS_BITS = 64: IF INSTR(_OS$, "[32BIT]") THEN OS_BITS = 32
|
||||||
IF OS_BITS = 32 THEN WindowTitle = "QB64 Phoenix Edition (x32)" ELSE WindowTitle = "QB64 Phoenix Edition (x64)"
|
IF OS_BITS = 32 THEN WindowTitle = "QB64 Phoenix Edition (x32)" ELSE WindowTitle = "QB64 Phoenix Edition (x64)"
|
||||||
_TITLE WindowTitle
|
_TITLE WindowTitle
|
||||||
|
|
||||||
|
CONST METACOMMAND_STRING_ENCLOSING_PAIR = "''"
|
||||||
|
|
||||||
DIM SHARED ConsoleMode, No_C_Compile_Mode, NoIDEMode
|
DIM SHARED ConsoleMode, No_C_Compile_Mode, NoIDEMode
|
||||||
DIM SHARED ShowWarnings AS _BYTE, QuietMode AS _BYTE, CMDLineFile AS STRING
|
DIM SHARED ShowWarnings AS _BYTE, QuietMode AS _BYTE, CMDLineFile AS STRING
|
||||||
DIM SHARED MonochromeLoggingMode AS _BYTE
|
DIM SHARED MonochromeLoggingMode AS _BYTE
|
||||||
|
@ -1866,7 +1868,7 @@ DO
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF LEFT$(temp$, 7) = "$ERROR " THEN
|
IF LEFT$(temp$, 7) = "$ERROR " THEN
|
||||||
temp$ = LTRIM$(MID$(temp$, 7))
|
temp$ = RemoveStringEnclosingPair(LTRIM$(MID$(temp$, 7)), METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
a$ = "Compilation check failed: " + temp$
|
a$ = "Compilation check failed: " + temp$
|
||||||
GOTO errmes
|
GOTO errmes
|
||||||
END IF
|
END IF
|
||||||
|
@ -3325,6 +3327,7 @@ DO
|
||||||
|
|
||||||
VersionInfoKey$ = LTRIM$(RTRIM$(MID$(a3u$, FirstDelimiter + 1, SecondDelimiter - FirstDelimiter - 1)))
|
VersionInfoKey$ = LTRIM$(RTRIM$(MID$(a3u$, FirstDelimiter + 1, SecondDelimiter - FirstDelimiter - 1)))
|
||||||
VersionInfoValue$ = StrReplace$(LTRIM$(RTRIM$(MID$(a3$, SecondDelimiter + 1))), CHR$(34), "'")
|
VersionInfoValue$ = StrReplace$(LTRIM$(RTRIM$(MID$(a3$, SecondDelimiter + 1))), CHR$(34), "'")
|
||||||
|
issueWarning = 0 ' only issue warnings if this is true
|
||||||
|
|
||||||
SELECT CASE VersionInfoKey$
|
SELECT CASE VersionInfoKey$
|
||||||
CASE "FILEVERSION#"
|
CASE "FILEVERSION#"
|
||||||
|
@ -3338,43 +3341,61 @@ DO
|
||||||
IF viProductVersion$ = "" THEN viProductVersion$ = viProductVersionNum$
|
IF viProductVersion$ = "" THEN viProductVersion$ = viProductVersionNum$
|
||||||
layout$ = SCase$("$VersionInfo:PRODUCTVERSION#=") + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:PRODUCTVERSION#=") + VersionInfoValue$
|
||||||
CASE "COMPANYNAME"
|
CASE "COMPANYNAME"
|
||||||
viCompanyName$ = VersionInfoValue$
|
viCompanyName$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "CompanyName=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "CompanyName=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE "FILEDESCRIPTION"
|
CASE "FILEDESCRIPTION"
|
||||||
viFileDescription$ = VersionInfoValue$
|
viFileDescription$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "FileDescription=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "FileDescription=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE "FILEVERSION"
|
CASE "FILEVERSION"
|
||||||
viFileVersion$ = VersionInfoValue$
|
viFileVersion$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "FileVersion=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "FileVersion=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE "INTERNALNAME"
|
CASE "INTERNALNAME"
|
||||||
viInternalName$ = VersionInfoValue$
|
viInternalName$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "InternalName=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "InternalName=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE "LEGALCOPYRIGHT"
|
CASE "LEGALCOPYRIGHT"
|
||||||
viLegalCopyright$ = VersionInfoValue$
|
viLegalCopyright$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "LegalCopyright=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "LegalCopyright=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE "LEGALTRADEMARKS"
|
CASE "LEGALTRADEMARKS"
|
||||||
viLegalTrademarks$ = VersionInfoValue$
|
viLegalTrademarks$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "LegalTrademarks=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "LegalTrademarks=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE "ORIGINALFILENAME"
|
CASE "ORIGINALFILENAME"
|
||||||
viOriginalFilename$ = VersionInfoValue$
|
viOriginalFilename$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "OriginalFilename=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "OriginalFilename=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE "PRODUCTNAME"
|
CASE "PRODUCTNAME"
|
||||||
viProductName$ = VersionInfoValue$
|
viProductName$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "ProductName=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "ProductName=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE "PRODUCTVERSION"
|
CASE "PRODUCTVERSION"
|
||||||
viProductVersion$ = VersionInfoValue$
|
viProductVersion$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "ProductVersion=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "ProductVersion=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE "COMMENTS"
|
CASE "COMMENTS"
|
||||||
viComments$ = VersionInfoValue$
|
viComments$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "Comments=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "Comments=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE "WEB"
|
CASE "WEB"
|
||||||
viWeb$ = VersionInfoValue$
|
viWeb$ = RemoveStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR)
|
||||||
layout$ = SCase$("$VersionInfo:") + "Web=" + VersionInfoValue$
|
layout$ = SCase$("$VersionInfo:") + "Web=" + VersionInfoValue$
|
||||||
|
issueWarning = -1
|
||||||
CASE ELSE
|
CASE ELSE
|
||||||
a$ = "Invalid key. (Use FILEVERSION#, PRODUCTVERSION#, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, ProductName, ProductVersion, Comments or Web)"
|
a$ = "Invalid key. (Use FILEVERSION#, PRODUCTVERSION#, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, ProductName, ProductVersion, Comments or Web)"
|
||||||
GOTO errmes
|
GOTO errmes
|
||||||
END SELECT
|
END SELECT
|
||||||
|
|
||||||
|
' Generate warnings if needed
|
||||||
|
IF issueWarning AND NOT IgnoreWarnings THEN
|
||||||
|
IF NOT HasStringEnclosingPair(VersionInfoValue$, METACOMMAND_STRING_ENCLOSING_PAIR) THEN
|
||||||
|
addWarning linenumber, inclevel, inclinenumber(inclevel), incname$(inclevel), "missing string bracket delimiters (" + METACOMMAND_STRING_ENCLOSING_PAIR + ")", VersionInfoValue$
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
VersionInfoSet = -1
|
VersionInfoSet = -1
|
||||||
|
|
||||||
GOTO finishednonexec
|
GOTO finishednonexec
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
'
|
'
|
||||||
' String manipulation functions
|
' String manipulation functions
|
||||||
'
|
'
|
||||||
|
|
||||||
FUNCTION StrRemove$ (myString$, whatToRemove$) 'noncase sensitive
|
FUNCTION StrRemove$ (myString$, whatToRemove$) 'noncase sensitive
|
||||||
DIM a$, b$
|
DIM a$, b$
|
||||||
DIM AS LONG i
|
DIM AS LONG i
|
||||||
|
@ -32,6 +31,23 @@ FUNCTION StrReplace$ (myString$, find$, replaceWith$) 'noncase sensitive
|
||||||
StrReplace$ = a$
|
StrReplace$ = a$
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|
||||||
|
' Returns true if text has a certain enclosing pair like 'hello'
|
||||||
|
FUNCTION HasStringEnclosingPair%% (text AS STRING, pair AS STRING)
|
||||||
|
IF LEN(text) > 1 AND LEN(pair) > 1 THEN
|
||||||
|
HasStringEnclosingPair = ASC(pair, 1) = ASC(text, 1) AND ASC(pair, 2) = ASC(text, LEN(text))
|
||||||
|
END IF
|
||||||
|
END FUNCTION
|
||||||
|
|
||||||
|
' Removes a string's enclosing pair if it is found. So, 'hello world' can be returned as just hello world
|
||||||
|
' pair - is the enclosing pair. E.g. "''", "()", "[]" etc.
|
||||||
|
FUNCTION RemoveStringEnclosingPair$ (text AS STRING, pair AS STRING)
|
||||||
|
IF HasStringEnclosingPair(text, pair) THEN
|
||||||
|
RemoveStringEnclosingPair = MID$(text, 2, LEN(text) - 2)
|
||||||
|
ELSE
|
||||||
|
RemoveStringEnclosingPair = text
|
||||||
|
END IF
|
||||||
|
END FUNCTION
|
||||||
|
|
||||||
FUNCTION AddQuotes$ (s$)
|
FUNCTION AddQuotes$ (s$)
|
||||||
AddQuotes$ = CHR$(34) + s$ + CHR$(34)
|
AddQuotes$ = CHR$(34) + s$ + CHR$(34)
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|
Loading…
Reference in a new issue