svn commit: r202572 - head/lib/libc/gen

Bruce Evans brde at optusnet.com.au
Wed Jan 20 10:33:13 UTC 2010


On Wed, 20 Jan 2010, Andrey Chernov wrote:

> On Wed, Jan 20, 2010 at 07:43:29PM +1100, Bruce Evans wrote:
>> No, it is a comment about opendir()'s comparison function.  It has nothing
>> to do with scandir(), and the only thing that it has to do with alphasort()
>> is that it must be different for the reasons described.
>
> Then the comment was plain wrong (not misplaced), so removing it becomes
> right again because the comment states: "opendir()'s comparison function"
> according to POSIX 2008 and XSI 7 should use strcoll().

No.  It never mentioned opendir() or even scandir().  It only mentioned the
relevant things.  Here it is:

1.25         (delphij  16-Apr-08): /*
1.27         (kib      05-Jan-10):  * POSIX 2008 and XSI 7 require alphasort() to call strcoll() for
1.27         (kib      05-Jan-10):  * directory entries ordering.  Use local copy that uses strcmp().
1.27         (kib      05-Jan-10):  */

> But there is
> nothing said about opendir() & strcoll() relation in the mentioned
> standards. The only word I found is that opendir() returns "ordered"
> sequence, but nowhere mentioned ordered by what criteria, so perhaps they
> mean "stable":

As I said before, sorting in opendir() has nothing to do with POSIX!  It
is an implementation detail for union file systems/mounts.

>> page more than here.  BTW, I don't remember any man page updates for
>> this.  The man page still only says that alphasort() can be used to
>> give alphabetical sorting in scandir().
>
> Alphabetically already means sorted according to collate, otherwhise it is
> called binary. Perhaps manpage should refer strcoll() directly.

Yes it should, like POSIX does.  It should also give the FreeBSD
extension of POSIX.  POSIX says: "If the strcoll() function fails,
then the return value of alphasort() is unspecified.", but this makes
alphasort() unusable since a qsort() comparison function must return
a specified value.

>
>> I can't see this now (some illusion from my mailer or $TERMCAP
>> misformatting the patch?), but now I see an extra "the" in it:
>>
>>      "requires the alphasort() to use strcoll()"
>>
>> should be either
>>
>>      "requires that alphasort() uses strcoll()"
>>
>> (preferred) or
>>
>>      "requires alphasort() to use strcoll()"
>>
>> (probably intended, but not too passive).  I thought that you removed
>> this line completely.  The previous line is even less useful.
>
> I don't add extra "the" there) What do you want, clarify please:
> 1) Remove whole comment.
> 2) Remove only first line and correct second to "that".
> 3) Just correct second to "that".

Correct the second line to "that ... uses".

Bruce


More information about the svn-src-all mailing list