diff --git a/selfhost/cmd/ww/main.combined.ww b/selfhost/cmd/ww/main.combined.ww index f9a17726..1f759d17 100644 --- a/selfhost/cmd/ww/main.combined.ww +++ b/selfhost/cmd/ww/main.combined.ww @@ -2876,23 +2876,12 @@ fn pathstr(p: *u8) str = { }; fn cstreq(a: *u8, b: *u8) bool = { - let i: u64 = 0u64; - for (a[i] == b[i]) { - if (a[i] == 0u8) { return true; }; - i += 1u64; - }; - return false; + return strings.compare(pathstr(a), pathstr(b)) == 0; }; // cstreqlit — compare a NUL-terminated *u8 to a ww string literal. fn cstreqlit(a: *u8, lit: str) bool = { - let n: i32 = lit.len; - let i: i32 = 0; - for (i < n) { - if (a[i] != lit[i]) { return false; }; - i += 1; - }; - return a[n] == 0u8; + return strings.compare(pathstr(a), lit) == 0; }; // memcpy @@ -3782,17 +3771,7 @@ fn buildone(selfdir: *u8, src: *u8, entryisdir: i32, out: *u8, incs: *u8, lf: *l // /.ww or //.ww fn cstrendswithlit(p: *u8, lit: str) bool = { - let plen: u64 = cstrlen(p); - let slen: u64 = lit.len: u64; - if (plen < slen) { return false; }; - let off: u64 = plen - slen; - let i: i32 = 0; - for (i < lit.len) { - let iu: u64 = i: u64; - if (p[off + iu] != lit[i]) { return false; }; - i += 1; - }; - return true; + return strings.hassuffix(pathstr(p), lit); }; // basenameoff — return the offset of the last path segment within `p` diff --git a/selfhost/cmd/ww/main.ww b/selfhost/cmd/ww/main.ww index 212b9869..1904f3c4 100644 --- a/selfhost/cmd/ww/main.ww +++ b/selfhost/cmd/ww/main.ww @@ -42,23 +42,12 @@ fn pathstr(p: *u8) str = { }; fn cstreq(a: *u8, b: *u8) bool = { - let i: u64 = 0u64; - for (a[i] == b[i]) { - if (a[i] == 0u8) { return true; }; - i += 1u64; - }; - return false; + return strings.compare(pathstr(a), pathstr(b)) == 0; }; // cstreqlit — compare a NUL-terminated *u8 to a ww string literal. fn cstreqlit(a: *u8, lit: str) bool = { - let n: i32 = lit.len; - let i: i32 = 0; - for (i < n) { - if (a[i] != lit[i]) { return false; }; - i += 1; - }; - return a[n] == 0u8; + return strings.compare(pathstr(a), lit) == 0; }; // memcpy @@ -948,17 +937,7 @@ fn buildone(selfdir: *u8, src: *u8, entryisdir: i32, out: *u8, incs: *u8, lf: *l // /.ww or //.ww fn cstrendswithlit(p: *u8, lit: str) bool = { - let plen: u64 = cstrlen(p); - let slen: u64 = lit.len: u64; - if (plen < slen) { return false; }; - let off: u64 = plen - slen; - let i: i32 = 0; - for (i < lit.len) { - let iu: u64 = i: u64; - if (p[off + iu] != lit[i]) { return false; }; - i += 1; - }; - return true; + return strings.hassuffix(pathstr(p), lit); }; // basenameoff — return the offset of the last path segment within `p`