Deleted Added
full compact
collcmp.c (17530) collcmp.c (17551)
1/*
2 * Copyright (C) 1996 by Andrey A. Chernov, Moscow, Russia.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 12 unchanged lines hidden (view full) ---

21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <ctype.h>
28#include <string.h>
1/*
2 * Copyright (C) 1996 by Andrey A. Chernov, Moscow, Russia.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 12 unchanged lines hidden (view full) ---

21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <ctype.h>
28#include <string.h>
29#include <locale.h>
30
31/* will be removed ***************************/
29#include "collate.h"
30
31int __collcmp (c1, c2)
32#include "collate.h"
33
34int __collcmp (c1, c2)
32 u_char c1, c2;
35 unsigned char c1, c2;
33{
36{
37 return collate_range_cmp (c1, c2);
38}
39/* will be removed ***************************/
40
41int collate_range_cmp (c1, c2)
42 int c1, c2;
43{
34 static char s1[2], s2[2];
35
44 static char s1[2], s2[2];
45
46 c1 &= UCHAR_MAX;
47 c2 &= UCHAR_MAX;
36 if (c1 == c2)
37 return (0);
38 if ( (isascii(c1) && isascii(c2))
39 || (!isalpha(c1) && !isalpha(c2))
40 )
48 if (c1 == c2)
49 return (0);
50 if ( (isascii(c1) && isascii(c2))
51 || (!isalpha(c1) && !isalpha(c2))
52 )
41 return (((int)c1) - ((int)c2));
53 return (c1 - c2);
42 if (isalpha(c1) && !isalpha(c2)) {
43 if (isupper(c1))
54 if (isalpha(c1) && !isalpha(c2)) {
55 if (isupper(c1))
44 return ('A' - ((int)c2));
56 return ('A' - c2);
45 else
57 else
46 return ('a' - ((int)c2));
58 return ('a' - c2);
47 } else if (isalpha(c2) && !isalpha(c1)) {
48 if (isupper(c2))
59 } else if (isalpha(c2) && !isalpha(c1)) {
60 if (isupper(c2))
49 return (((int)c1) - 'A');
61 return (c1 - 'A');
50 else
62 else
51 return (((int)c1) - 'a');
63 return (c1 - 'a');
52 }
53 if (isupper(c1) && islower(c2))
54 return (-1);
55 else if (islower(c1) && isupper(c2))
56 return (1);
64 }
65 if (isupper(c1) && islower(c2))
66 return (-1);
67 else if (islower(c1) && isupper(c2))
68 return (1);
57 s1[0] = (char) c1;
58 s2[0] = (char) c2;
69 s1[0] = c1;
70 s2[0] = c2;
59 return strcoll(s1, s2);
60}
71 return strcoll(s1, s2);
72}
61