diff --git a/source/qb64.bas b/source/qb64.bas index 5cc0f9939..909bace67 100644 --- a/source/qb64.bas +++ b/source/qb64.bas @@ -659,7 +659,9 @@ TYPE idstruct callname AS STRING * 256 ccall AS INTEGER + overloaded AS _BYTE args AS INTEGER + minargs AS INTEGER arg AS STRING * 400 'similar to t argsize AS STRING * 400 'similar to tsize (used for fixed length strings) specialformat AS STRING * 256 @@ -15680,7 +15682,8 @@ IF LEN(f$) THEN 'special format given ELSE 'no special format given IF n$ = "ASC" AND args = 2 THEN GOTO skipargnumchk - IF n$ = "_RGB32" AND (args > 0 AND args <= 4) THEN GOTO skipargnumchk + IF id2.overloaded = -1 AND (args >= id2.minargs AND args <= id2.args) THEN GOTO skipargnumchk + IF id2.args <> args THEN Give_Error "Incorrect number of arguments passed to function": EXIT FUNCTION END IF diff --git a/source/subs_functions/subs_functions.bas b/source/subs_functions/subs_functions.bas index 458f0f1ba..fe3329054 100644 --- a/source/subs_functions/subs_functions.bas +++ b/source/subs_functions/subs_functions.bas @@ -1331,6 +1331,8 @@ clearid id.n = "_RGB32" id.subfunc = 1 id.callname = "func__rgb32" +id.overloaded = -1 +id.minargs = 1 id.args = 4 id.arg = MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) + MKL$(LONGTYPE - ISPOINTER) id.ret = ULONGTYPE - ISPOINTER