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