--- 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