summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin')
-rw-r--r--gnu/usr.bin/sort/sort.c26
1 files changed, 1 insertions, 25 deletions
diff --git a/gnu/usr.bin/sort/sort.c b/gnu/usr.bin/sort/sort.c
index 0dbc719..f4d6127 100644
--- a/gnu/usr.bin/sort/sort.c
+++ b/gnu/usr.bin/sort/sort.c
@@ -203,31 +203,7 @@ static int collates[UCHAR_LIM];
static int
collcompare (const void *sa, const void *sb)
{
- int A = *((int *)sa), B = *((int *)sb);
- static char s1[2], s2[2];
-
- if (A == B)
- return (0);
- if (isascii(A) && isascii(B) || !isalpha(A) && !isalpha(B))
- return (A - B);
- if (isupper(A) && islower(B))
- return (-1);
- else if (islower(A) && isupper(B))
- return (1);
- if (isalpha(A) && !isalpha(B)) {
- if (isupper(A))
- return ('A' - B);
- else
- return ('a' - B);
- } else if (isalpha(B) && !isalpha(A)) {
- if (isupper(B))
- return (A - 'A');
- else
- return (A - 'a');
- }
- s1[0] = A;
- s2[0] = B;
- return strcoll(s1, s2);
+ return collate_range_cmp (*((int *)sa), *((int *)sb));
}
static void
OpenPOWER on IntegriCloud