Back out rev 1.19 because
1) It breaks uniq for real life languages when "substitute" directive used in the collating table. 2) It breaks uniq usage in tool chain with other localized utilities which use collate. 3) To follow LC_COLLATE it is directly allowed for uniq by POSIX P1003.1 Draft7 (7.3.2). It means that rev 1.19 gains no additional POSIX conformance.
This commit is contained in:
parent
2b488685e3
commit
e12155c834
@ -67,6 +67,7 @@ void show(FILE *, char *);
|
||||
char *skip(char *);
|
||||
void obsolete(char *[]);
|
||||
static void usage(void);
|
||||
int stricoll(char *, char*);
|
||||
|
||||
int
|
||||
main (argc, argv)
|
||||
@ -151,9 +152,9 @@ main (argc, argv)
|
||||
|
||||
/* If different, print; set previous to new value. */
|
||||
if (iflag)
|
||||
comp = strcasecmp(t1, t2);
|
||||
comp = stricoll(t1, t2);
|
||||
else
|
||||
comp = strcmp(t1, t2);
|
||||
comp = strcoll(t1, t2);
|
||||
|
||||
if (comp) {
|
||||
show(ofp, prevline);
|
||||
@ -251,3 +252,18 @@ usage()
|
||||
"usage: uniq [-c | -d | -u] [-i] [-f fields] [-s chars] [input [output]]\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int
|
||||
stricoll(s1, s2)
|
||||
char *s1, *s2;
|
||||
{
|
||||
char *p, line1[MAXLINELEN], line2[MAXLINELEN];
|
||||
|
||||
for (p = line1; *s1; s1++)
|
||||
*p++ = tolower((unsigned char)*s1);
|
||||
*p = '\0';
|
||||
for (p = line2; *s2; s2++)
|
||||
*p++ = tolower((unsigned char)*s2);
|
||||
*p = '\0';
|
||||
return strcoll(line1, line2);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user