mirror of
https://github.com/QB64Official/qb64.git
synced 2024-07-05 08:50:25 +00:00
Minor change to bit routines, added ability to ignore warnings in IDE
This commit is contained in:
parent
472bf29d99
commit
58b82dff13
|
@ -29589,23 +29589,8 @@ void reinit_glut_callbacks(){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//CFont commented out as it requires more modern versions of Windows to run and work.
|
|
||||||
//Adding it into QB64 would mean that we would no longer run on Windows XP and such,
|
|
||||||
//and at this time, it's been decided that we dont actually want to drop compatability with those older operating systems.
|
|
||||||
//I'll leave the code in here, in case it's decided later that we're no longer to stick
|
|
||||||
//to Windows XP compatability.
|
|
||||||
|
|
||||||
//For now, the easiest solution to this dilemma seems to be to just leave the code here,
|
|
||||||
//and place a stub which does nothing in place of it.
|
|
||||||
//If people with newer operating systems want to make use of it, all they'd need to do is
|
|
||||||
//comment out the stub and uncomment the actual working code, and then purge_libqb.bat to rebuild the library we link to.
|
|
||||||
|
|
||||||
void CFont(qbs* FontName, int FontSize){
|
|
||||||
return; //you can't get much stubbier than this! LOL!
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
void CFont(qbs* FontName, int FontSize){
|
void CFont(qbs* FontName, int FontSize){
|
||||||
|
/*
|
||||||
SECURITY_ATTRIBUTES SecAttribs = {sizeof(SECURITY_ATTRIBUTES), 0, 1};
|
SECURITY_ATTRIBUTES SecAttribs = {sizeof(SECURITY_ATTRIBUTES), 0, 1};
|
||||||
HANDLE cl_conout = CreateFileA("CONOUT$", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, & SecAttribs, OPEN_EXISTING, 0, 0);
|
HANDLE cl_conout = CreateFileA("CONOUT$", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, & SecAttribs, OPEN_EXISTING, 0, 0);
|
||||||
static int OneTimePause;
|
static int OneTimePause;
|
||||||
|
@ -29626,8 +29611,9 @@ void reinit_glut_callbacks(){
|
||||||
}
|
}
|
||||||
|
|
||||||
SetCurrentConsoleFontEx(cl_conout, NULL, &info);
|
SetCurrentConsoleFontEx(cl_conout, NULL, &info);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
void sub__console_cursor(int32 visible, int32 cursorsize, int32 passed){
|
void sub__console_cursor(int32 visible, int32 cursorsize, int32 passed){
|
||||||
HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
|
HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||||
|
|
|
@ -982,16 +982,16 @@ inline int64 func__shr(int64 a1,int b1)
|
||||||
{return a1>>b1;}
|
{return a1>>b1;}
|
||||||
|
|
||||||
inline int64 func__readbit(int64 a1, int b1)
|
inline int64 func__readbit(int64 a1, int b1)
|
||||||
{if (a1 & 1<<b1) return -1; else return 0;}
|
{if (a1 & 1ull<<b1) return -1; else return 0;}
|
||||||
|
|
||||||
inline int64 func__setbit(int64 a1, int b1)
|
inline int64 func__setbit(int64 a1, int b1)
|
||||||
{return a1 | 1<<b1;}
|
{return a1 | 1ull<<b1;}
|
||||||
|
|
||||||
inline int64 func__resetbit(int64 a1, int b1)
|
inline int64 func__resetbit(int64 a1, int b1)
|
||||||
{return a1 & ~(1<<b1);}
|
{return a1 & ~(1ull<<b1);}
|
||||||
|
|
||||||
inline int64 func__togglebit(int64 a1, int b1)
|
inline int64 func__togglebit(int64 a1, int b1)
|
||||||
{return a1 ^ 1<<b1;}
|
{return a1 ^ 1ull<<b1;}
|
||||||
|
|
||||||
//Working with 32bit colors:
|
//Working with 32bit colors:
|
||||||
inline uint32 func__rgb32(int32 r,int32 g,int32 b,int32 a){
|
inline uint32 func__rgb32(int32 r,int32 g,int32 b,int32 a){
|
||||||
|
|
|
@ -13,6 +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
|
||||||
|
|
||||||
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
|
||||||
|
@ -326,6 +327,17 @@ IF LoadedIDESettings = 0 THEN
|
||||||
IDE_LeftPosition = 0
|
IDE_LeftPosition = 0
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
result = ReadConfigSetting("IgnoreWarnings", value$)
|
||||||
|
IF result THEN
|
||||||
|
IF UCASE$(value$) = "TRUE" OR ABS(VAL(value$)) = 1 THEN
|
||||||
|
IgnoreWarnings = -1
|
||||||
|
ELSE
|
||||||
|
IgnoreWarnings = 0
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "IgnoreWarnings", "FALSE"
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
|
|
||||||
'I was going to do some basic error checking for screen position to make certain that we appeared on the monitor,
|
'I was going to do some basic error checking for screen position to make certain that we appeared on the monitor,
|
||||||
'but I decided not to. Some people (like me) may have multiple monitors set up and may wish for QB64 to pop-up at
|
'but I decided not to. Some people (like me) may have multiple monitors set up and may wish for QB64 to pop-up at
|
||||||
'a coordinate which seems insane at first glance (-1000,0 for instance), but which may move the IDE window to the
|
'a coordinate which seems insane at first glance (-1000,0 for instance), but which may move the IDE window to the
|
||||||
|
|
|
@ -332,6 +332,12 @@ FUNCTION ide2 (ignore)
|
||||||
menu$(OptionsMenuID, OptionsMenuShowErrorsImmediately) = CHR$(7) + menu$(OptionsMenuID, OptionsMenuShowErrorsImmediately)
|
menu$(OptionsMenuID, OptionsMenuShowErrorsImmediately) = CHR$(7) + menu$(OptionsMenuID, OptionsMenuShowErrorsImmediately)
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
OptionsMenuIgnoreWarnings = i
|
||||||
|
menu$(m, 11) = "Ignore Warnings": i = 12
|
||||||
|
IF IgnoreWarnings THEN menu$(OptionsMenuID, 11) = CHR$(7) + "Ignore Warnings"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
menusize(m) = i - 1
|
menusize(m) = i - 1
|
||||||
|
|
||||||
m = m + 1: i = 0
|
m = m + 1: i = 0
|
||||||
|
@ -4658,6 +4664,22 @@ FUNCTION ide2 (ignore)
|
||||||
GOTO ideloop
|
GOTO ideloop
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
IF RIGHT$(menu$(m, s), 15) = "Ignore Warnings" THEN
|
||||||
|
PCOPY 2, 0
|
||||||
|
IF Ignorewarnings = 0 THEN
|
||||||
|
Ignorewarnings = -1
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "IgnoreWarnings", "TRUE"
|
||||||
|
menu$(OptionsMenuID, 11) = CHR$(7) + "Ignore Warnings"
|
||||||
|
ELSE
|
||||||
|
Ignorewarnings = 0
|
||||||
|
WriteConfigSetting "'[GENERAL SETTINGS]", "IgnoreWarnings", "FALSE"
|
||||||
|
menu$(OptionsMenuID, 11) = "Ignore Warnings"
|
||||||
|
END IF
|
||||||
|
idechangemade = 1
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
|
|
||||||
IF RIGHT$(menu$(m, s), 28) = "Output EXE to Source #Folder" THEN
|
IF RIGHT$(menu$(m, s), 28) = "Output EXE to Source #Folder" THEN
|
||||||
PCOPY 2, 0
|
PCOPY 2, 0
|
||||||
SaveExeWithSource = NOT SaveExeWithSource
|
SaveExeWithSource = NOT SaveExeWithSource
|
||||||
|
|
|
@ -2317,16 +2317,18 @@ DO
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
IF issueWarning THEN
|
IF issueWarning THEN
|
||||||
addWarning 0, "Constant already defined (same value):"
|
IF NOT IgnoreWarnings THEN
|
||||||
addWarning linenumber, n$
|
addWarning 0, "Constant already defined (same value):"
|
||||||
IF idemode = 0 THEN
|
addWarning linenumber, n$
|
||||||
IF duplicateConstWarning = 0 THEN PRINT "WARNING: duplicate constant definition";
|
IF idemode = 0 THEN
|
||||||
IF VerboseMode THEN
|
IF duplicateConstWarning = 0 THEN PRINT "WARNING: duplicate constant definition";
|
||||||
PRINT ": '"; n$; "' (line"; STR$(linenumber); ")"
|
IF VerboseMode THEN
|
||||||
ELSE
|
PRINT ": '"; n$; "' (line"; STR$(linenumber); ")"
|
||||||
IF duplicateConstWarning = 0 THEN
|
ELSE
|
||||||
duplicateConstWarning = -1
|
IF duplicateConstWarning = 0 THEN
|
||||||
PRINT
|
duplicateConstWarning = -1
|
||||||
|
PRINT
|
||||||
|
END IF
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
@ -11835,14 +11837,44 @@ OPEN compilelog$ FOR OUTPUT AS #1: CLOSE #1 'Clear log
|
||||||
'OPEN "unusedVariableList.txt" FOR BINARY AS #1
|
'OPEN "unusedVariableList.txt" FOR BINARY AS #1
|
||||||
'PUT #1, 1, usedVariableList$ 'warning$(1)
|
'PUT #1, 1, usedVariableList$ 'warning$(1)
|
||||||
'CLOSE #1
|
'CLOSE #1
|
||||||
|
IF NOT IgnoreWarnings THEN
|
||||||
IF totalUnusedVariables > 0 THEN
|
IF totalUnusedVariables > 0 THEN
|
||||||
IF idemode = 0 THEN
|
IF idemode = 0 THEN
|
||||||
PRINT "WARNING:"; STR$(totalUnusedVariables); " unused variable";
|
PRINT "WARNING:"; STR$(totalUnusedVariables); " unused variable";
|
||||||
IF totalUnusedVariables > 1 THEN PRINT "s";
|
IF totalUnusedVariables > 1 THEN PRINT "s";
|
||||||
IF VerboseMode THEN
|
IF VerboseMode THEN
|
||||||
PRINT ":"
|
PRINT ":"
|
||||||
|
findItem = 0
|
||||||
|
DO
|
||||||
|
s$ = CHR$(2) + "VAR:" + CHR$(3)
|
||||||
|
findItem = INSTR(findItem + 1, usedVariableList$, s$)
|
||||||
|
IF findItem = 0 THEN EXIT DO
|
||||||
|
whichLine = CVL(MID$(usedVariableList$, findItem - 4, 4))
|
||||||
|
varNameLen = CVI(MID$(usedVariableList$, findItem + 6, 2))
|
||||||
|
internalVarName$ = MID$(usedVariableList$, findItem + 8, varNameLen)
|
||||||
|
findLF = INSTR(findItem + 9 + varNameLen, usedVariableList$, CHR$(10))
|
||||||
|
varname$ = MID$(usedVariableList$, findItem + 9 + varNameLen, findLF - (findItem + 9 + varNameLen))
|
||||||
|
PRINT SPACE$(4); varname$; " ("; internalVarName$; ", line"; STR$(whichLine); ")"
|
||||||
|
LOOP
|
||||||
|
ELSE
|
||||||
|
PRINT
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
findItem = 0
|
findItem = 0
|
||||||
|
maxVarNameLen = 0
|
||||||
|
DO
|
||||||
|
s$ = CHR$(2) + "VAR:" + CHR$(3)
|
||||||
|
findItem = INSTR(findItem + 1, usedVariableList$, s$)
|
||||||
|
IF findItem = 0 THEN EXIT DO
|
||||||
|
varNameLen = CVI(MID$(usedVariableList$, findItem + 6, 2))
|
||||||
|
internalVarName$ = MID$(usedVariableList$, findItem + 8, varNameLen)
|
||||||
|
findLF = INSTR(findItem + 9 + varNameLen, usedVariableList$, CHR$(10))
|
||||||
|
varname$ = MID$(usedVariableList$, findItem + 9 + varNameLen, findLF - (findItem + 9 + varNameLen))
|
||||||
|
IF LEN(varname$) > maxVarNameLen THEN maxVarNameLen = LEN(varname$)
|
||||||
|
LOOP
|
||||||
|
|
||||||
|
findItem = 0
|
||||||
|
addWarning 0, "Unused variables (" + LTRIM$(STR$(totalUnusedVariables)) + "):"
|
||||||
DO
|
DO
|
||||||
s$ = CHR$(2) + "VAR:" + CHR$(3)
|
s$ = CHR$(2) + "VAR:" + CHR$(3)
|
||||||
findItem = INSTR(findItem + 1, usedVariableList$, s$)
|
findItem = INSTR(findItem + 1, usedVariableList$, s$)
|
||||||
|
@ -11852,38 +11884,9 @@ IF totalUnusedVariables > 0 THEN
|
||||||
internalVarName$ = MID$(usedVariableList$, findItem + 8, varNameLen)
|
internalVarName$ = MID$(usedVariableList$, findItem + 8, varNameLen)
|
||||||
findLF = INSTR(findItem + 9 + varNameLen, usedVariableList$, CHR$(10))
|
findLF = INSTR(findItem + 9 + varNameLen, usedVariableList$, CHR$(10))
|
||||||
varname$ = MID$(usedVariableList$, findItem + 9 + varNameLen, findLF - (findItem + 9 + varNameLen))
|
varname$ = MID$(usedVariableList$, findItem + 9 + varNameLen, findLF - (findItem + 9 + varNameLen))
|
||||||
PRINT SPACE$(4); varname$; " ("; internalVarName$; ", line"; STR$(whichLine); ")"
|
addWarning whichLine, varname$ + SPACE$((maxVarNameLen + 1) - LEN(varname$)) + " (" + internalVarName$ + ")"
|
||||||
LOOP
|
LOOP
|
||||||
ELSE
|
|
||||||
PRINT
|
|
||||||
END IF
|
END IF
|
||||||
ELSE
|
|
||||||
findItem = 0
|
|
||||||
maxVarNameLen = 0
|
|
||||||
DO
|
|
||||||
s$ = CHR$(2) + "VAR:" + CHR$(3)
|
|
||||||
findItem = INSTR(findItem + 1, usedVariableList$, s$)
|
|
||||||
IF findItem = 0 THEN EXIT DO
|
|
||||||
varNameLen = CVI(MID$(usedVariableList$, findItem + 6, 2))
|
|
||||||
internalVarName$ = MID$(usedVariableList$, findItem + 8, varNameLen)
|
|
||||||
findLF = INSTR(findItem + 9 + varNameLen, usedVariableList$, CHR$(10))
|
|
||||||
varname$ = MID$(usedVariableList$, findItem + 9 + varNameLen, findLF - (findItem + 9 + varNameLen))
|
|
||||||
IF LEN(varname$) > maxVarNameLen THEN maxVarNameLen = LEN(varname$)
|
|
||||||
LOOP
|
|
||||||
|
|
||||||
findItem = 0
|
|
||||||
addWarning 0, "Unused variables (" + LTRIM$(STR$(totalUnusedVariables)) + "):"
|
|
||||||
DO
|
|
||||||
s$ = CHR$(2) + "VAR:" + CHR$(3)
|
|
||||||
findItem = INSTR(findItem + 1, usedVariableList$, s$)
|
|
||||||
IF findItem = 0 THEN EXIT DO
|
|
||||||
whichLine = CVL(MID$(usedVariableList$, findItem - 4, 4))
|
|
||||||
varNameLen = CVI(MID$(usedVariableList$, findItem + 6, 2))
|
|
||||||
internalVarName$ = MID$(usedVariableList$, findItem + 8, varNameLen)
|
|
||||||
findLF = INSTR(findItem + 9 + varNameLen, usedVariableList$, CHR$(10))
|
|
||||||
varname$ = MID$(usedVariableList$, findItem + 9 + varNameLen, findLF - (findItem + 9 + varNameLen))
|
|
||||||
addWarning whichLine, varname$ + SPACE$((maxVarNameLen + 1) - LEN(varname$)) + " (" + internalVarName$ + ")"
|
|
||||||
LOOP
|
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -25184,6 +25187,7 @@ SUB manageVariableList (name$, __cname$, action AS _BYTE)
|
||||||
END SUB
|
END SUB
|
||||||
|
|
||||||
SUB addWarning (lineNumber AS LONG, text$)
|
SUB addWarning (lineNumber AS LONG, text$)
|
||||||
|
IF NOT IgnoreWarnings THEN
|
||||||
IF lineNumber > 0 THEN
|
IF lineNumber > 0 THEN
|
||||||
totalWarnings = totalWarnings + 1
|
totalWarnings = totalWarnings + 1
|
||||||
ELSE
|
ELSE
|
||||||
|
@ -25197,6 +25201,7 @@ SUB addWarning (lineNumber AS LONG, text$)
|
||||||
warningListItems = warningListItems + 1
|
warningListItems = warningListItems + 1
|
||||||
IF warningListItems > UBOUND(warning$) THEN REDIM _PRESERVE warning$(warningListItems + 999)
|
IF warningListItems > UBOUND(warning$) THEN REDIM _PRESERVE warning$(warningListItems + 999)
|
||||||
warning$(warningListItems) = MKL$(lineNumber) + text$
|
warning$(warningListItems) = MKL$(lineNumber) + text$
|
||||||
|
end if
|
||||||
END SUB
|
END SUB
|
||||||
|
|
||||||
'$INCLUDE:'utilities\strings.bas'
|
'$INCLUDE:'utilities\strings.bas'
|
||||||
|
|
Loading…
Reference in a new issue