aboutsummaryrefslogtreecommitdiff
path: root/core/strings
diff options
context:
space:
mode:
Diffstat (limited to 'core/strings')
-rw-r--r--core/strings/strings.odin8
1 files changed, 7 insertions, 1 deletions
diff --git a/core/strings/strings.odin b/core/strings/strings.odin
index 9b75c558b..c19bf8c37 100644
--- a/core/strings/strings.odin
+++ b/core/strings/strings.odin
@@ -242,7 +242,13 @@ Returns:
- result: `-1` if `lhs` comes first, `1` if `rhs` comes first, or `0` if they are equal
*/
compare :: proc "contextless" (lhs, rhs: string) -> (res: int) {
- return runtime.string_cmp(lhs, rhs)
+ res = runtime.string_cmp(lhs, rhs)
+ if res == 0 && len(lhs) != len(rhs) {
+ return len(lhs) <= len(rhs) ? -1 : +1
+ } else if len(lhs) == 0 && len(rhs) == 0 {
+ return 0
+ }
+ return res
}
/*