]> git.saurik.com Git - apple/libc.git/blob - locale/FreeBSD/toupper.c.patch
Libc-320.tar.gz
[apple/libc.git] / locale / FreeBSD / toupper.c.patch
1 --- toupper.c.orig Tue May 20 15:21:44 2003
2 +++ toupper.c Tue Jun 17 17:49:05 2003
3 @@ -39,6 +39,10 @@
4
5 #include <stdio.h>
6 #include <rune.h>
7 +#include <stdlib.h>
8 +
9 +__private_extern__ int
10 +__compRuneEntry(const void *, const void *); // from runetype.c
11
12 __ct_rune_t
13 ___toupper(c)
14 @@ -46,17 +50,16 @@
15 {
16 int x;
17 _RuneRange *rr = &_CurrentRuneLocale->mapupper_ext;
18 - _RuneEntry *re = rr->ranges;
19 + _RuneEntry *re;
20
21 if (c < 0 || c == EOF)
22 return(c);
23
24 - for (x = 0; x < rr->nranges; ++x, ++re) {
25 - if (c < re->min)
26 - return(c);
27 - if (c <= re->max)
28 - return(re->map + c - re->min);
29 - }
30 + re = (_RuneEntry *)bsearch(&c, rr->ranges, rr->nranges,
31 + sizeof(_RuneEntry), __compRuneEntry);
32 +
33 + if (re)
34 + return(re->map + c - re->min);
35
36 return(c);
37 }