aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-07-15 21:29:59 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-07-15 21:29:59 -0700
commitd8f3b43e24bf15b6696a705e0822a0dd53de74fe (patch)
treeb6bf58c1b1489541e0e02774a17a1c34384bcba8
parentf1d11329a4d309682f0deb5c4cb2671fea8c9c00 (diff)
remove whitespace at beginning of sscanf, fixes #512
-rw-r--r--src/library.js8
-rwxr-xr-xtests/runner.py6
2 files changed, 13 insertions, 1 deletions
diff --git a/src/library.js b/src/library.js
index 6403c1fd..0c6c7a63 100644
--- a/src/library.js
+++ b/src/library.js
@@ -2282,6 +2282,14 @@ LibraryManager.library = {
var fields = 0;
var argIndex = 0;
var next;
+ // remove initial whitespace
+ while (1) {
+ next = get();
+ if (next == 0) return 0;
+ if (!(next in __scanString.whiteSpace)) break;
+ }
+ unget();
+ next = 1;
for (var formatIndex = 0; formatIndex < format.length; formatIndex++) {
if (next <= 0) return fields;
var next = get();
diff --git a/tests/runner.py b/tests/runner.py
index a434ce3b..f3438e64 100755
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -3970,6 +3970,10 @@ at function.:blag
printf("%f, %f\n", atof("1.234567"), atof("cheez"));
+ float n = -1;
+ sscanf(" 2.8208", "%f", &n);
+ printf("%.4f\n", n);
+
float a = -1;
sscanf("-3.03", "%f", &a);
printf("%.4f\n", a);
@@ -3999,7 +4003,7 @@ at function.:blag
return 0;
}
'''
- self.do_run(src, 'en-us : 2\nen-r : 99\nen : 3\n1.234567, 0.000000\n-3.0300\n|some|\n|something|\n|somethingmoar|\n' +
+ self.do_run(src, 'en-us : 2\nen-r : 99\nen : 3\n1.234567, 0.000000\n2.8208\n-3.0300\n|some|\n|something|\n|somethingmoar|\n' +
'1\n1499\n' +
'5\n87,0.481565,0.059481,0,1\n' +
'3\n-123,4294966531,-34\n')