Fixed issue: tonumber("-") returns 0 #6

This commit is contained in:
UnlegitDqrk
2026-03-01 18:47:22 +01:00
parent 7338475ae4
commit 86e4d78761

View File

@@ -794,6 +794,11 @@ public class LuaString extends LuaValue {
private double scanlong( int base, int start, int end ) {
long x = 0;
boolean neg = (m_bytes[start] == '-');
// --- fix starts here ---
if(neg && m_bytes.length == 1) {
return Double.NaN; // this is only a '-' sign, no parsing any number is required
}
// --- fix ends here ---
for ( int i=(neg?start+1:start); i<end; i++ ) {
int digit = m_bytes[i] - (base<=10||(m_bytes[i]>='0'&&m_bytes[i]<='9')? '0':
m_bytes[i]>='A'&&m_bytes[i]<='Z'? ('A'-10): ('a'-10));