aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-02-20 18:08:57 -0800
committerAlon Zakai <alonzakai@gmail.com>2014-02-20 18:11:58 -0800
commiteca0f2375f67575720f9476bb057379c8de34eae (patch)
treed620b04f394beeaad753b6dacf64ace7e476dccb
parentaf22db83d85e820642495a898cf4e176168ff20b (diff)
tolerate negative values of precision in printf, fallback to default precision
-rw-r--r--src/library.js2
-rw-r--r--tests/printf/output.txt1
-rw-r--r--tests/printf/test.c1
3 files changed, 3 insertions, 1 deletions
diff --git a/src/library.js b/src/library.js
index c1eb2219..57023795 100644
--- a/src/library.js
+++ b/src/library.js
@@ -1970,7 +1970,7 @@ LibraryManager.library = {
}
next = {{{ makeGetValue(0, 'textIndex+1', 'i8') }}};
}
- if (precision === -1) {
+ if (precision < 0) {
precision = 6; // Standard default.
precisionSet = false;
}
diff --git a/tests/printf/output.txt b/tests/printf/output.txt
index a3baed28..14e053f6 100644
--- a/tests/printf/output.txt
+++ b/tests/printf/output.txt
@@ -8281,4 +8281,5 @@ ffffff8000000000
1
1.234568E+04
+1.234568E+04
no_new_line
diff --git a/tests/printf/test.c b/tests/printf/test.c
index adeb69db..c83d92b0 100644
--- a/tests/printf/test.c
+++ b/tests/printf/test.c
@@ -8286,6 +8286,7 @@ int main() {
printf("%x\n", -0xFFFFFFFF);
printf("\n");
printf("%*.*E\n", 10, -1, 12345.6789123);
+ printf("%*.*E\n", 10, -313, 12345.6789123);
printf("no_new_line");
return 0;
}