mirror of
https://github.com/fluencelabs/musl
synced 2025-04-25 15:22:15 +00:00
Merge pull request #8 from aheejin/strlib_bugfix
Fix bugs in strcmp/strncmp/strchr
This commit is contained in:
commit
357305e18f
@ -492,20 +492,22 @@ var string = (function() {
|
|||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
strcmp: function(str1, str2) {
|
strcmp: function(str1, str2) {
|
||||||
for (var i = 0;; ++i)
|
for (var i1 = 0, i2 = 0; heap_uint8[str1 + i1] == heap_uint8[str2 + i2];
|
||||||
if (heap_uint8[str1 + i] != heap_uint8[str2 + i])
|
++i1, ++i2) {
|
||||||
return heap_uint8[str1 + i] < heap_uint8[str2 + i];
|
if (heap_uint8[str1 + i1] == 0)
|
||||||
else if (heap_uint8[str1 + i] == 0)
|
|
||||||
break;
|
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
return heap_uint8[str1 + i1] < heap_uint8[str2 + i2] ? -1 : 1;
|
||||||
},
|
},
|
||||||
strcoll: NYI('strcoll'),
|
strcoll: NYI('strcoll'),
|
||||||
strncmp: function(str1, str2, num) {
|
strncmp: function(str1, str2, num) {
|
||||||
for (var i = 0; i != num; ++i)
|
for (var i1 = 0, i2 = 0; num > 0; ++i1, ++i2, --num) {
|
||||||
if (heap_uint8[str1 + i] != heap_uint8[str2 + i])
|
var s1 = heap_uint8[str1 + i1], s2 = heap_uint8[str2 + i2];
|
||||||
return heap_uint8[str1 + i] < heap_uint8[str2 + i];
|
if (s1 != s2)
|
||||||
else if (heap_uint8[str1 + i] == 0)
|
return s1 < s2 ? -1 : 1;
|
||||||
break;
|
else if (s1 == 0)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
strxfrm: NYI('strxfrm'),
|
strxfrm: NYI('strxfrm'),
|
||||||
@ -517,8 +519,8 @@ var string = (function() {
|
|||||||
var i = 0;
|
var i = 0;
|
||||||
for (; heap_uint8[str + i] != 0; ++i)
|
for (; heap_uint8[str + i] != 0; ++i)
|
||||||
if (heap_uint8[str + i] == character)
|
if (heap_uint8[str + i] == character)
|
||||||
return i;
|
return str + i;
|
||||||
return heap_uint8[str + i] == 0 ? i : 0;
|
return heap_uint8[str + i] == 0 ? str + i : 0;
|
||||||
},
|
},
|
||||||
strcspn: NYI('strcspn'),
|
strcspn: NYI('strcspn'),
|
||||||
strpbrk: NYI('strpbrk'),
|
strpbrk: NYI('strpbrk'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user