aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-08-13 14:03:21 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-08-13 14:03:21 -0700
commit173b8830def7800dc3caec992b7c7b7e2139bb73 (patch)
treee5daa39a93ef2261acfe4a49d6a8e70041d619fd
parent380bb35bfe21c99feabd9bf29e8a3156b8c22ba9 (diff)
compare unsigned values in str[n]cmp
-rw-r--r--src/library.js4
-rwxr-xr-xtests/runner.py14
2 files changed, 16 insertions, 2 deletions
diff --git a/src/library.js b/src/library.js
index c6470560..a20cb03d 100644
--- a/src/library.js
+++ b/src/library.js
@@ -4224,8 +4224,8 @@ LibraryManager.library = {
strncmp: function(px, py, n) {
var i = 0;
while (i < n) {
- var x = {{{ makeGetValue('px', 'i', 'i8') }}};
- var y = {{{ makeGetValue('py', 'i', 'i8') }}};
+ var x = {{{ makeGetValue('px', 'i', 'i8', 0, 1) }}};
+ var y = {{{ makeGetValue('py', 'i', 'i8', 0, 1) }}};
if (x == y && x == 0) return 0;
if (x == 0) return -1;
if (y == 0) return 1;
diff --git a/tests/runner.py b/tests/runner.py
index 70f7ba9d..c7a53e25 100755
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -1487,6 +1487,20 @@ c5,de,15,8a
'''
self.do_run(src, '4:10,177,543,def\n4\nwowie\ntoo\n76\n5\n(null)\n/* a comment */\n// another\ntest\n', ['wowie', 'too', '74'])
+ def test_strcmp_uni(self):
+ src = '''
+ #include <stdio.h>
+ #include <string.h>
+ int main()
+ {
+ char *word = "WORD";
+ char *wordEntry = "Â";
+ int cmp = strncmp(word, wordEntry, 2);
+ printf("Compare value is %d\\n", cmp);
+ }
+ '''
+ self.do_run(src, 'Compare value is -1\n')
+
def test_strndup(self):
src = '''
//---------------