aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-09-26 10:29:16 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-09-26 10:29:16 -0700
commita697c39d79fab4bdebfc37562da454cb3fe55fd4 (patch)
treeeb3701f05ea5716ee86d98085590abb526271ebe
parentebfb4a9f2d9735f74e0c65dc1771849bbe178b63 (diff)
parent5f726b5af429df683398c454f6cbd0f97228a9d5 (diff)
Merge pull request #1669 from ngld/fix-sscanf-whitespace
Fix #1668: whiteSpace in _scanString should use only char codes as keys
-rw-r--r--src/library.js8
-rw-r--r--tests/test_core.py2
2 files changed, 2 insertions, 8 deletions
diff --git a/src/library.js b/src/library.js
index a0115373..326369c5 100644
--- a/src/library.js
+++ b/src/library.js
@@ -1660,12 +1660,6 @@ LibraryManager.library = {
__scanString.whiteSpace[{{{ charCode('\v') }}}] = 1;
__scanString.whiteSpace[{{{ charCode('\f') }}}] = 1;
__scanString.whiteSpace[{{{ charCode('\r') }}}] = 1;
- __scanString.whiteSpace[' '] = 1;
- __scanString.whiteSpace['\t'] = 1;
- __scanString.whiteSpace['\n'] = 1;
- __scanString.whiteSpace['\v'] = 1;
- __scanString.whiteSpace['\f'] = 1;
- __scanString.whiteSpace['\r'] = 1;
}
// Supports %x, %4x, %d.%d, %lld, %s, %f, %lf.
// TODO: Support all format specifiers.
@@ -1903,7 +1897,7 @@ LibraryManager.library = {
break;
}
fields++;
- } else if (format[formatIndex] in __scanString.whiteSpace) {
+ } else if (format[formatIndex].charCodeAt(0) in __scanString.whiteSpace) {
next = get();
while (next in __scanString.whiteSpace) {
if (next <= 0) break mainLoop; // End of input.
diff --git a/tests/test_core.py b/tests/test_core.py
index d1d3bab0..d59fae40 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -1788,7 +1788,7 @@ f6: nan
int xx, yy, zz;
char s[32];
- int cc = sscanf("abc_10.b1_xyz_543_defg", "abc_%d.%2x_xyz_%3d_%3s", &xx, &yy, &zz, s);
+ int cc = sscanf("abc_10.b1_xyz9_543_defg", "abc_%d.%2x_xyz9_%3d_%3s", &xx, &yy, &zz, s);
printf("%d:%d,%d,%d,%s\\n", cc, xx, yy, zz, s);
printf("%d\\n", argc);