From 451e9485e622567f3fca87f389be9d94601d9d51 Mon Sep 17 00:00:00 2001 From: boxgaming <75969133+boxgaming@users.noreply.github.com> Date: Tue, 13 Aug 2024 11:31:38 -0500 Subject: [PATCH] Updates to correctly identify "Unsigned" parameter types --- qb2js.js | 11 +++++++++-- tools/qb2js.bas | 12 ++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/qb2js.js b/qb2js.js index b8e265c..bd43a10 100644 --- a/qb2js.js +++ b/qb2js.js @@ -2445,8 +2445,15 @@ if (QB.halted()) { return; }; isArray = "true"; argname = (QB.func_Left( argname, (QB.func_Len( argname)) - 2)); } - if ( apcount == 3) { - args = args + argname + ":" + (QB.func_UCase( QB.arrayValue(aparts, [ 3]).value)) + ":" + isArray; + if ( apcount > 2) { + var typeName = ''; /* STRING */ + typeName = (QB.func_UCase( QB.arrayValue(aparts, [ 3]).value)); + if ( apcount > 3) { + if ( typeName == "UNSIGNED" | typeName == "_UNSIGNED" ) { + typeName = (await func_NormalizeType( "_UNSIGNED " + (QB.func_UCase( QB.arrayValue(aparts, [ 4]).value)))); + } + } + args = args + argname + ":" + typeName + ":" + isArray; } else { args = args + argname + ":" + (await func_DataTypeFromName( QB.arrayValue(aparts, [ 1]).value)) + ":" + isArray; } diff --git a/tools/qb2js.bas b/tools/qb2js.bas index d74a2d4..7994bbb 100644 --- a/tools/qb2js.bas +++ b/tools/qb2js.bas @@ -2611,8 +2611,16 @@ Sub FindMethods isArray = "true" argname = Left$(argname, Len(argname) - 2) End If - If apcount = 3 Then - args = args + argname + ":" + UCase$(aparts(3)) + ":" + isArray + If apcount > 2 Then + Dim typeName As String + typeName = UCase$(aparts(3)) + If apcount > 3 Then + If typeName = "UNSIGNED" Or typeName = "_UNSIGNED" Then + typeName = NormalizeType("_UNSIGNED " + UCase$(aparts(4))) + End If + End If + 'args = args + argname + ":" + UCase$(aparts(3)) + ":" + isArray + args = args + argname + ":" + typeName + ":" + isArray Else args = args + argname + ":" + DataTypeFromName(aparts(1)) + ":" + isArray End If