summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/opendir.c
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>2010-01-18 10:17:51 +0000
committerache <ache@FreeBSD.org>2010-01-18 10:17:51 +0000
commit630da6fd8a0f711d519e37a59877d72fce80412c (patch)
tree2cef498b0bfea870dffe17565165756ef03b06fb /lib/libc/gen/opendir.c
parentcf3f3cdea63c866b330c4caf9f8559ab072f1347 (diff)
downloadFreeBSD-src-630da6fd8a0f711d519e37a59877d72fce80412c.zip
FreeBSD-src-630da6fd8a0f711d519e37a59877d72fce80412c.tar.gz
a) Use strcoll() in opendir() and alphasort() as POSIX 2008 requires.
It also matches now how our 'ls' works for years. b) Remove comment expressed 2 fears: 1) One just simple describe how strcoll() works in _any_ context, not for directories only. Are we plan to remove strcoll() from everything just because it is little more complex than strcmp()? I doubt, and directories give nothing different here. Moreover, strcoll() used in 'ls' for years and nobody complaints yet. 2) Plain wrong statement about undefined strcoll() behaviour. strcoll() always gives predictable results, falling back to strcmp() on any trouble, see strcoll(3). No objections from -current list discussion.
Diffstat (limited to 'lib/libc/gen/opendir.c')
-rw-r--r--lib/libc/gen/opendir.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libc/gen/opendir.c b/lib/libc/gen/opendir.c
index c192ab2..d99faa4 100644
--- a/lib/libc/gen/opendir.c
+++ b/lib/libc/gen/opendir.c
@@ -94,13 +94,13 @@ __opendir2(const char *name, int flags)
/*
* POSIX 2008 and XSI 7 require alphasort() to call strcoll() for
- * directory entries ordering. Use local copy that uses strcmp().
+ * directory entries ordering.
*/
static int
opendir_alphasort(const void *p1, const void *p2)
{
- return (strcmp((*(const struct dirent **)p1)->d_name,
+ return (strcoll((*(const struct dirent **)p1)->d_name,
(*(const struct dirent **)p2)->d_name));
}
OpenPOWER on IntegriCloud