annotate sbr/uprf.c @ 12:441a2190cfae

Lion fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 21 Apr 2012 13:10:49 +0900
parents bce86c4163a3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1 /* uprf.c - "unsigned" lexical prefix */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2 #ifndef lint
12
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
3 static char ident[] = "@(#)$Id: uprf.c,v 1.1.1.1 2005/04/18 14:46:06 kono Exp $";
0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
4 #endif /* lint */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
5
bce86c4163a3 Initial revision
kono
parents:
diff changeset
6 #define TO_LOWER 040
bce86c4163a3 Initial revision
kono
parents:
diff changeset
7 #define NO_MASK 000
bce86c4163a3 Initial revision
kono
parents:
diff changeset
8 #include <ctype.h>
bce86c4163a3 Initial revision
kono
parents:
diff changeset
9
bce86c4163a3 Initial revision
kono
parents:
diff changeset
10 uprf (c1, c2)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
11 register char *c1,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
12 *c2;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
13 {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
14 register int c,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
15 mask;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
16
bce86c4163a3 Initial revision
kono
parents:
diff changeset
17 if (c1 == 0 || c2 == 0)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
18 return(0); /* XXX */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
19
bce86c4163a3 Initial revision
kono
parents:
diff changeset
20 while (c = *c2++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
21 {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
22 #ifdef LOCALE
bce86c4163a3 Initial revision
kono
parents:
diff changeset
23 c &= 0xff;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
24 mask = *c1 & 0xff;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
25 c = (isalpha(c) && isupper(c)) ? tolower(c) : c;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
26 mask = (isalpha(mask) && isupper(mask)) ? tolower(mask) : mask;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
27 if (c != mask)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
28 #else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
29 mask = (isalpha(c) && isalpha(*c1)) ? TO_LOWER : NO_MASK;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
30 if ((c | mask) != (*c1 | mask))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
31 #endif
bce86c4163a3 Initial revision
kono
parents:
diff changeset
32 return 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
33 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
34 c1++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
35 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
36 return 1;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
37 }