diff --git a/source/qb64.bas b/source/qb64.bas index 6062f144f..350a4702c 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -5293,7 +5293,7 @@ DO staticarraylist = "": staticarraylistn = 0 'remove previously listed arrays dimstatic = 0 PRINT #12, "exit_subfunc:;" - IF vWatchOn = 1 THEN + IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN IF NoChecks = 0 THEN vWatchAddLabel linenumber, 0 PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;" @@ -5612,7 +5612,7 @@ DO IF Error_Happened THEN GOTO errmes IF stringprocessinghappened THEN e$ = cleanupstringprocessingcall$ + e$ + ")" IF (typ AND ISSTRING) THEN a$ = "WHILE ERROR! Cannot accept a STRING type.": GOTO errmes - IF NoChecks = 0 AND vWatchOn = 1 THEN + IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN vWatchAddLabel linenumber, 0 PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;" END IF @@ -5672,7 +5672,7 @@ DO IF stringprocessinghappened THEN e$ = cleanupstringprocessingcall$ + e$ + ")" IF (typ AND ISSTRING) THEN a$ = "DO ERROR! Cannot accept a STRING type.": GOTO errmes IF whileuntil = 1 THEN PRINT #12, "while((" + e$ + ")||new_error){" ELSE PRINT #12, "while((!(" + e$ + "))||new_error){" - IF NoChecks = 0 AND vWatchOn = 1 THEN + IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN vWatchAddLabel linenumber, 0 PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;" END IF @@ -5714,7 +5714,7 @@ DO IF stringprocessinghappened THEN e$ = cleanupstringprocessingcall$ + e$ + ")" IF (typ AND ISSTRING) THEN a$ = "LOOP ERROR! Cannot accept a STRING type.": GOTO errmes PRINT #12, "dl_continue_" + str2$(controlid(controllevel)) + ":;" - IF NoChecks = 0 AND vWatchOn = 1 THEN + IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN vWatchAddLabel linenumber, 0 PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;" END IF @@ -5722,7 +5722,7 @@ DO ELSE PRINT #12, "dl_continue_" + str2$(controlid(controllevel)) + ":;" - IF NoChecks = 0 AND vWatchOn = 1 THEN + IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN vWatchAddLabel linenumber, 0 PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;" END IF @@ -5876,7 +5876,7 @@ DO e$ = evaluatetotyp(e$, ctyp) IF Error_Happened THEN GOTO errmes - IF NoChecks = 0 AND vWatchOn = 1 THEN + IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN vWatchAddLabel linenumber, 0 PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;" END IF @@ -6089,7 +6089,7 @@ DO IF LEN(layout$) = 0 THEN layout$ = l$ ELSE layout$ = layout$ + sp + l$ END IF - IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN + IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN vWatchAddLabel linenumber, 0 PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;" END IF @@ -6236,7 +6236,7 @@ DO PRINT #12, "sc_" + str2$(controlid(controllevel)) + "_end:;" IF controltype(controllevel) < 10 OR controltype(controllevel) > 17 THEN a$ = "END SELECT without SELECT CASE": GOTO errmes - IF vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN + IF NoChecks = 0 AND vWatchOn = 1 AND inclinenumber(inclevel) = 0 THEN vWatchAddLabel linenumber, 0 PRINT #12, "*__LONG_VWATCH_LINENUMBER= " + str2$(linenumber) + "; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;" END IF @@ -8926,7 +8926,7 @@ DO 'note: this value is currently ignored but evaluated for checking reasons END IF layoutdone = 1: IF LEN(layout$) THEN layout$ = layout$ + sp + l$ ELSE layout$ = l$ - IF vWatchOn = 1 AND NoChecks = 0 THEN + IF vWatchOn = 1 AND NoChecks = 0 AND inclinenumber(inclevel) = 0 THEN PRINT #12, "*__LONG_VWATCH_LINENUMBER=-3; SUB_VWATCH((ptrszint*)vwatch_local_vars); if (*__LONG_VWATCH_GOTO>0) goto VWATCH_SETNEXTLINE; if (*__LONG_VWATCH_GOTO<0) goto VWATCH_SKIPLINE;" vWatchAddLabel linenumber, 0 ELSE @@ -22767,7 +22767,7 @@ END FUNCTION SUB xend IF vWatchOn = 1 THEN - vWatchAddLabel 0, -1 + IF (inclinenumber(inclevel) = 0 OR closedmain = 0) THEN vWatchAddLabel 0, -1 PRINT #12, "*__LONG_VWATCH_LINENUMBER= 0; SUB_VWATCH((ptrszint*)vwatch_local_vars);" END IF PRINT #12, "sub_end();"