1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-05 00:40:26 +00:00

Remove unnecessary optional parameter in fix_error().

Also:
- "Unhandled error" message now only shows included line number when it's > 0.
- qb64.bas adds include line number to every evnt() call.
This commit is contained in:
FellippeHeitor 2016-03-23 08:29:32 -03:00
parent 398781b4af
commit fca4a96ef3
3 changed files with 33 additions and 13 deletions

View file

@ -7189,7 +7189,7 @@ const char fixerr_strcont[]="\nContinue?";
const char fixerr_strunhan[]="Unhandled Error #";
const char fixerr_strcrit[]="Critical Error #";
void fix_error(uint32 inclinenumber = 0){
void fix_error(){
static char errtitle[256];//builds message
static char errmess[256];//builds message
static char *cp;
@ -7285,7 +7285,11 @@ void fix_error(uint32 inclinenumber = 0){
i=0;
memcpy(&errmess[i],&fixerr_strline[0],strlen(fixerr_strline)); i=i+strlen(fixerr_strline);
i2=sprintf(&errmess[i],"%u (included line: %u)\n",ercl,inclercl); i=i+i2;
if (inclercl) {
i2=sprintf(&errmess[i],"%u (included line: %u)\n",ercl,inclercl); i=i+i2;
}else{
i2=sprintf(&errmess[i],"%u\n",ercl); i=i+i2;
}
memcpy(&errmess[i],cp,strlen(cp)); i=i+strlen(cp);
if (!prevent_handling) {memcpy(&errmess[i],&fixerr_strcont[0],strlen(fixerr_strcont)); i=i+strlen(fixerr_strcont);}
errmess[i]=0;

View file

@ -286,7 +286,7 @@ extern uint32 *rm32();
extern void cpu_call();
extern int64 build_int64(uint32 val2,uint32 val1);
extern uint64 build_uint64(uint32 val2,uint32 val1);
extern void fix_error(uint32 inclinenumber = 0);
extern void fix_error();
extern double get_error_erl();
extern uint32 get_error_err();
extern void end();
@ -1959,7 +1959,7 @@ Sleep(10);
if(new_error){
ercl=linenumber;
inclercl=inclinenumber;
fix_error(inclinenumber);
fix_error();
if (error_retry){error_retry=0; r=1;}
}else{
if (sub_gl_called==0) events();

View file

@ -3197,8 +3197,12 @@ DO
IF INSTR(label$, "p") THEN MID$(label$, INSTR(label$, "p"), 1) = "."
IF RIGHT$(label$, 1) = "d" OR RIGHT$(label$, 1) = "s" THEN label$ = LEFT$(label$, LEN(label$) - 1)
PRINT #12, "last_line=" + label$ + ";"
inclinenump$ = ""
IF inclinenumber(inclevel) THEN
inclinenump$ = "," + str2$(inclinenumber(inclevel))
END IF
IF NoChecks = 0 THEN
PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + ");r=0;}"
PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + inclinenump$ + ");r=0;}"
END IF
IF n = 1 THEN GOTO finishednonexec
entireline$ = getelements(entireline$, 2, n): u$ = UCASE$(entireline$): n = n - 1
@ -3248,8 +3252,12 @@ DO
IF LEN(layout$) THEN layout$ = layout$ + sp + tlayout$ + ":" ELSE layout$ = tlayout$ + ":"
PRINT #12, "LABEL_" + a$ + ":;"
inclinenump$ = ""
IF inclinenumber(inclevel) THEN
inclinenump$ = "," + str2$(inclinenumber(inclevel))
END IF
IF NoChecks = 0 THEN
PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + ");r=0;}"
PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + inclinenump$ + ");r=0;}"
END IF
entireline$ = RIGHT$(entireline$, LEN(entireline$) - x3): u$ = UCASE$(entireline$)
n = numelements(entireline$): IF n = 0 THEN GOTO finishednonexec
@ -8032,7 +8040,11 @@ DO
e$ = fixoperationorder$(e$): IF Error_Happened THEN GOTO errmes
l2$ = tlayout$
e$ = evaluatetotyp(e$, ISINTEGER64): IF Error_Happened THEN GOTO errmes
PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + ");}" 'non-resumable error check (cannot exit without handling errors)
inclinenump$ = ""
IF inclinenumber(inclevel) THEN
inclinenump$ = "," + str2$(inclinenumber(inclevel))
END IF
PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + inclinenump$ + ");}" 'non-resumable error check (cannot exit without handling errors)
PRINT #12, "exit_code=" + e$ + ";"
l$ = l$ + sp + l2$
END IF
@ -8048,7 +8060,11 @@ DO
e$ = fixoperationorder$(e$): IF Error_Happened THEN GOTO errmes
l2$ = tlayout$
e$ = evaluatetotyp(e$, ISINTEGER64): IF Error_Happened THEN GOTO errmes
PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + ");}" 'non-resumable error check (cannot exit without handling errors)
inclinenump$ = ""
IF inclinenumber(inclevel) THEN
inclinenump$ = "," + str2$(inclinenumber(inclevel))
END IF
PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + inclinenump$ + ");}" 'non-resumable error check (cannot exit without handling errors)
PRINT #12, "exit_code=" + e$ + ";"
l$ = l$ + sp + l2$
END IF
@ -10257,15 +10273,15 @@ DO
IF arrayprocessinghappened = 1 THEN arrayprocessinghappened = 0
inclinenump$ = ""
IF inclinenumber(inclevel) THEN
inclinenump$ = "," + str2$(inclinenumber(inclevel))
END IF
IF NoChecks = 0 THEN
IF dynscope THEN
dynscope = 0
PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + ");if(r)goto S_" + str2$(statementn) + ";}"
PRINT #12, "if(qbevent){evnt(" + str2$(linenumber) + inclinenump$ + ");if(r)goto S_" + str2$(statementn) + ";}"
ELSE
inclinenump$ = ""
IF inclinenumber(inclevel) THEN
inclinenump$ = ", " + str2$(inclinenumber(inclevel))
END IF
PRINT #12, "if(!qbevent)break;evnt(" + str2$(linenumber) + inclinenump$ + ");}while(r);"
END IF
END IF