scriptreader.cxx

changeset 54
8cc91ef94754
parent 51
2cfa6edbf928
child 63
0557babc8675
--- a/scriptreader.cxx	Tue Aug 14 00:59:39 2012 +0300
+++ b/scriptreader.cxx	Tue Aug 14 01:54:17 2012 +0300
@@ -373,6 +373,12 @@
 	if (!fromthis)
 		MustNext ();
 	
+	str num = token;
+	if (!num.compare ("-")) {
+		MustNext ();
+		num += token;
+	}
+	
 	// "true" and "false" are valid numbers
 	if (!token.icompare ("true"))
 		token = "1";
@@ -380,11 +386,13 @@
 		token = "0";
 	else {
 		if (!token.isnumber())
-			ParserError ("expected a number, got `%s`", token.chars());
+			ParserError ("expected a number, got `%s`", num.chars());
 		
 		str check;
-		check.appendformat ("%d", atoi (token));
+		check.appendformat ("%d", atoi (num));
 		if (token.compare (check) != 0)
-			ParserWarning ("integer too large: %s -> %s", token.chars(), check.chars());
+			ParserWarning ("integer too large: %s -> %s", num.chars(), check.chars());
+		
+		token = num;
 	}
 }
\ No newline at end of file

mercurial