aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-12-15 21:58:59 -0800
committerAlon Zakai <alonzakai@gmail.com>2011-12-15 21:58:59 -0800
commit8b14e998c1f2a27dcd1d0b67af85f1637612aa5b (patch)
tree99ef75fca63c1eb798d0df556cf9508dc90f9c2c
parent6259358a5a125b64a90651ab1ee535e919339b68 (diff)
atof
-rw-r--r--src/library.js6
-rw-r--r--tests/runner.py3
2 files changed, 9 insertions, 0 deletions
diff --git a/src/library.js b/src/library.js
index 718b61e2..e225591e 100644
--- a/src/library.js
+++ b/src/library.js
@@ -3382,6 +3382,12 @@ LibraryManager.library = {
return __parseInt(str, endptr, base, 0, 18446744073709551615, 64, true); // ULONG_MAX; imprecise.
},
+ atof: function(ptr) {
+ var str = Pointer_stringify(ptr);
+ var ret = parseFloat(str);
+ return isNaN(ret) ? 0 : ret;
+ },
+
qsort__deps: ['memcpy'],
qsort: function(base, num, size, comparator) {
if (num == 0 || size == 0) return;
diff --git a/tests/runner.py b/tests/runner.py
index e908d294..a2ca7305 100644
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -2882,6 +2882,7 @@ at function.:blag
src = r'''
#include <stdio.h>
#include <string.h>
+ #include <stdlib.h>
int main () {
#define CHECK(str) \
@@ -2896,6 +2897,8 @@ at function.:blag
CHECK("en-r");
CHECK("en 3");
+ printf("%f, %f\n", atof("1.234567"), atof("cheez"));
+
return 0;
}
'''