[PATCH 7/8] a) Use strcoll() in opendir() and alphasort()

Sebastian Huber sebastian.huber@embedded-brains.de
Fri Feb 1 06:55:00 GMT 2019


On 31/01/2019 14:05, Sebastian Huber wrote:
> From: ache <ache@FreeBSD.org>
>
> 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.
> ---
>   newlib/libc/posix/scandir.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/newlib/libc/posix/scandir.c b/newlib/libc/posix/scandir.c
> index 94c583761..13354c05e 100644
> --- a/newlib/libc/posix/scandir.c
> +++ b/newlib/libc/posix/scandir.c
> @@ -142,12 +142,13 @@ fail:
>   
>   /*
>    * Alphabetic order comparison routine for those who want it.
> + * POSIX 2008 requires that alphasort() uses strcoll().
>    */
>   int
> -alphasort (const struct dirent **d1,
> -       const struct dirent **d2)
> +alphasort(const struct dirent **d1, const struct dirent **d2)
>   {
> -       return(strcmp((*d1)->d_name, (*d2)->d_name));
> +
> +	return (strcoll((*d1)->d_name, (*d2)->d_name));
>   }
>   
>   #endif /* ! HAVE_OPENDIR */

After looking into newlib/libc/string/strcoll.c, this patch makes no 
sense. I will not apply it.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the Newlib mailing list