Back out fallback approximation changes, they are not so right to live
This commit is contained in:
parent
aba3a4ce1b
commit
c2bfae006a
@ -53,10 +53,13 @@ lexicographically compares the null-terminated strings
|
||||
.Fa s1
|
||||
and
|
||||
.Fa s2
|
||||
according to the current locale collation if any, otherwise some
|
||||
approximation procedure is used based on available
|
||||
.Xr ctype 3
|
||||
information.
|
||||
according to the current locale collation if any, otherwise call
|
||||
.Fa strcmp ,
|
||||
and returns an integer greater than, equal to, or less than 0,
|
||||
according as
|
||||
.Fa s1
|
||||
is greater than, equal to, or less than
|
||||
.Fa s2 .
|
||||
.Sh SEE ALSO
|
||||
.Xr setlocale 3 ,
|
||||
.Xr strcmp 3 ,
|
||||
|
@ -24,12 +24,11 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: strcoll.c,v 1.5 1996/06/09 14:56:06 ache Exp $
|
||||
* $Id: strcoll.c,v 1.6 1996/07/12 18:55:38 jkh Exp $
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include "collate.h"
|
||||
|
||||
int
|
||||
@ -39,23 +38,8 @@ strcoll(s, s2)
|
||||
int len, len2, prim, prim2, sec, sec2, ret, ret2;
|
||||
char *tt, *t, *tt2, *t2;
|
||||
|
||||
if (__collate_load_error) {
|
||||
register const u_char
|
||||
*us1 = (const u_char *)s,
|
||||
*us2 = (const u_char *)s2;
|
||||
|
||||
while (tolower(*us1) == tolower(*us2)) {
|
||||
if (*us1 == '\0')
|
||||
return (0);
|
||||
if (isupper(*us1) && islower(*us2))
|
||||
return (-1);
|
||||
else if (islower(*us1) && isupper(*us2))
|
||||
return (1);
|
||||
us1++;
|
||||
us2++;
|
||||
}
|
||||
return (tolower(*us1) - tolower(*us2));
|
||||
}
|
||||
if (__collate_load_error)
|
||||
return strcmp(s, s2);
|
||||
|
||||
len = len2 = 1;
|
||||
ret = ret2 = 0;
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include "collate.h"
|
||||
|
||||
size_t
|
||||
@ -51,25 +50,14 @@ strxfrm(dest, src, len)
|
||||
|
||||
if (__collate_load_error) {
|
||||
size_t slen = strlen(src);
|
||||
u_char *us;
|
||||
|
||||
if (slen < len)
|
||||
if (slen < len) {
|
||||
strcpy(d, src);
|
||||
else {
|
||||
slen = len - 1;
|
||||
strncpy(d, src, slen);
|
||||
d[slen] = '\0';
|
||||
return slen;
|
||||
}
|
||||
for (us = d; *us; us++) {
|
||||
if (isupper(*us)) {
|
||||
if (tolower(*us) < *us)
|
||||
*us = tolower(*us) - 1;
|
||||
/* assume it not started from 0 */
|
||||
else
|
||||
*us = tolower(*us);
|
||||
}
|
||||
}
|
||||
return slen;
|
||||
strncpy(d, src, len - 1);
|
||||
d[len - 1] = '\0';
|
||||
return len - 1;
|
||||
}
|
||||
|
||||
ss = s = __collate_substitute(src);
|
||||
|
Loading…
Reference in New Issue
Block a user