mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
[BZ #9759]
* dirent/dirent.h: Adjust prototypes of scandir, scandir64, alphasort, alphasort64, versionsort, and versionsort64 to POSIX 2008. * dirent/alphasort.c: Adjust implementation to type change. * dirent/alphasort64.c: Likewise. * dirent/scandir.c: Likewise. * dirent/versionsort.c: Likewise. * dirent/versionsort64.c: Likewise. * sysdeps/wordsize-64/alphasort.c: Add hack to hide alphasort64 declaration. * sysdeps/wordsize-64/versionsort.c: Add hack to hide versionsort64 declaration.
This commit is contained in:
parent
cd2d01faa5
commit
eee6b14327
13
ChangeLog
13
ChangeLog
@ -1,5 +1,18 @@
|
|||||||
2009-03-15 Ulrich Drepper <drepper@redhat.com>
|
2009-03-15 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
[BZ #9759]
|
||||||
|
* dirent/dirent.h: Adjust prototypes of scandir, scandir64, alphasort,
|
||||||
|
alphasort64, versionsort, and versionsort64 to POSIX 2008.
|
||||||
|
* dirent/alphasort.c: Adjust implementation to type change.
|
||||||
|
* dirent/alphasort64.c: Likewise.
|
||||||
|
* dirent/scandir.c: Likewise.
|
||||||
|
* dirent/versionsort.c: Likewise.
|
||||||
|
* dirent/versionsort64.c: Likewise.
|
||||||
|
* sysdeps/wordsize-64/alphasort.c: Add hack to hide alphasort64
|
||||||
|
declaration.
|
||||||
|
* sysdeps/wordsize-64/versionsort.c: Add hack to hide versionsort64
|
||||||
|
declaration.
|
||||||
|
|
||||||
[BZ #9880]
|
[BZ #9880]
|
||||||
* inet/inet6_rth.c (inet6_rth_reverse): Compute number of segments
|
* inet/inet6_rth.c (inet6_rth_reverse): Compute number of segments
|
||||||
correctly. Set segleft member in output as required.
|
correctly. Set segleft member in output as required.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1992, 1997, 1998 Free Software Foundation, Inc.
|
/* Copyright (C) 1992, 1997, 1998, 2009 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -20,8 +20,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
alphasort (const void *a, const void *b)
|
alphasort (const struct dirent **a, const struct dirent **b)
|
||||||
{
|
{
|
||||||
return strcoll ((*(const struct dirent **) a)->d_name,
|
return strcoll ((*a)->d_name, (*b)->d_name);
|
||||||
(*(const struct dirent **) b)->d_name);
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1992, 1997, 1998, 2000 Free Software Foundation, Inc.
|
/* Copyright (C) 1992, 1997, 1998, 2000, 2009 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -20,8 +20,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
alphasort64 (const void *a, const void *b)
|
alphasort64 (const struct dirent64 **a, const struct dirent64 **b)
|
||||||
{
|
{
|
||||||
return strcoll ((*(const struct dirent64 **) a)->d_name,
|
return strcoll ((*a)->d_name, (*b)->d_name);
|
||||||
(*(const struct dirent64 **) b)->d_name);
|
|
||||||
}
|
}
|
||||||
|
@ -252,7 +252,8 @@ extern int dirfd (DIR *__dirp) __THROW __nonnull ((1));
|
|||||||
extern int scandir (__const char *__restrict __dir,
|
extern int scandir (__const char *__restrict __dir,
|
||||||
struct dirent ***__restrict __namelist,
|
struct dirent ***__restrict __namelist,
|
||||||
int (*__selector) (__const struct dirent *),
|
int (*__selector) (__const struct dirent *),
|
||||||
int (*__cmp) (__const void *, __const void *))
|
int (*__cmp) (__const struct dirent **,
|
||||||
|
__const struct dirent **))
|
||||||
__nonnull ((1, 2));
|
__nonnull ((1, 2));
|
||||||
# else
|
# else
|
||||||
# ifdef __REDIRECT
|
# ifdef __REDIRECT
|
||||||
@ -260,7 +261,8 @@ extern int __REDIRECT (scandir,
|
|||||||
(__const char *__restrict __dir,
|
(__const char *__restrict __dir,
|
||||||
struct dirent ***__restrict __namelist,
|
struct dirent ***__restrict __namelist,
|
||||||
int (*__selector) (__const struct dirent *),
|
int (*__selector) (__const struct dirent *),
|
||||||
int (*__cmp) (__const void *, __const void *)),
|
int (*__cmp) (__const struct dirent **,
|
||||||
|
__const struct dirent **)),
|
||||||
scandir64) __nonnull ((1, 2));
|
scandir64) __nonnull ((1, 2));
|
||||||
# else
|
# else
|
||||||
# define scandir scandir64
|
# define scandir scandir64
|
||||||
@ -273,18 +275,21 @@ extern int __REDIRECT (scandir,
|
|||||||
extern int scandir64 (__const char *__restrict __dir,
|
extern int scandir64 (__const char *__restrict __dir,
|
||||||
struct dirent64 ***__restrict __namelist,
|
struct dirent64 ***__restrict __namelist,
|
||||||
int (*__selector) (__const struct dirent64 *),
|
int (*__selector) (__const struct dirent64 *),
|
||||||
int (*__cmp) (__const void *, __const void *))
|
int (*__cmp) (__const struct dirent64 **,
|
||||||
|
__const struct dirent64 **))
|
||||||
__nonnull ((1, 2));
|
__nonnull ((1, 2));
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/* Function to compare two `struct dirent's alphabetically. */
|
/* Function to compare two `struct dirent's alphabetically. */
|
||||||
# ifndef __USE_FILE_OFFSET64
|
# ifndef __USE_FILE_OFFSET64
|
||||||
extern int alphasort (__const void *__e1, __const void *__e2)
|
extern int alphasort (__const struct dirent **__e1,
|
||||||
|
__const struct dirent **__e2)
|
||||||
__THROW __attribute_pure__ __nonnull ((1, 2));
|
__THROW __attribute_pure__ __nonnull ((1, 2));
|
||||||
# else
|
# else
|
||||||
# ifdef __REDIRECT
|
# ifdef __REDIRECT
|
||||||
extern int __REDIRECT_NTH (alphasort,
|
extern int __REDIRECT_NTH (alphasort,
|
||||||
(__const void *__e1, __const void *__e2),
|
(__const struct dirent **__e1,
|
||||||
|
__const struct dirent **__e2),
|
||||||
alphasort64) __attribute_pure__ __nonnull ((1, 2));
|
alphasort64) __attribute_pure__ __nonnull ((1, 2));
|
||||||
# else
|
# else
|
||||||
# define alphasort alphasort64
|
# define alphasort alphasort64
|
||||||
@ -292,12 +297,14 @@ extern int __REDIRECT_NTH (alphasort,
|
|||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if defined __USE_GNU && defined __USE_LARGEFILE64
|
# if defined __USE_GNU && defined __USE_LARGEFILE64
|
||||||
extern int alphasort64 (__const void *__e1, __const void *__e2)
|
extern int alphasort64 (__const struct dirent64 **__e1,
|
||||||
|
__const struct dirent64 **__e2)
|
||||||
__THROW __attribute_pure__ __nonnull ((1, 2));
|
__THROW __attribute_pure__ __nonnull ((1, 2));
|
||||||
# endif
|
# endif
|
||||||
|
#endif /* Use BSD or misc or XPG7. */
|
||||||
|
|
||||||
|
|
||||||
# if defined __USE_BSD || defined __USE_MISC
|
#if defined __USE_BSD || defined __USE_MISC
|
||||||
/* Read directory entries from FD into BUF, reading at most NBYTES.
|
/* Read directory entries from FD into BUF, reading at most NBYTES.
|
||||||
Reading starts at offset *BASEP, and *BASEP is updated with the new
|
Reading starts at offset *BASEP, and *BASEP is updated with the new
|
||||||
position after reading. Returns the number of bytes read; zero when at
|
position after reading. Returns the number of bytes read; zero when at
|
||||||
@ -325,18 +332,19 @@ extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf,
|
|||||||
__off64_t *__restrict __basep)
|
__off64_t *__restrict __basep)
|
||||||
__THROW __nonnull ((2, 4));
|
__THROW __nonnull ((2, 4));
|
||||||
# endif
|
# endif
|
||||||
# endif /* Use BSD or misc. */
|
#endif /* Use BSD or misc. */
|
||||||
#endif /* Use BSD or misc or XPG7. */
|
|
||||||
|
|
||||||
#ifdef __USE_GNU
|
#ifdef __USE_GNU
|
||||||
/* Function to compare two `struct dirent's by name & version. */
|
/* Function to compare two `struct dirent's by name & version. */
|
||||||
# ifndef __USE_FILE_OFFSET64
|
# ifndef __USE_FILE_OFFSET64
|
||||||
extern int versionsort (__const void *__e1, __const void *__e2)
|
extern int versionsort (__const struct dirent **__e1,
|
||||||
|
__const struct dirent **__e2)
|
||||||
__THROW __attribute_pure__ __nonnull ((1, 2));
|
__THROW __attribute_pure__ __nonnull ((1, 2));
|
||||||
# else
|
# else
|
||||||
# ifdef __REDIRECT
|
# ifdef __REDIRECT
|
||||||
extern int __REDIRECT_NTH (versionsort,
|
extern int __REDIRECT_NTH (versionsort,
|
||||||
(__const void *__e1, __const void *__e2),
|
(__const struct dirent **__e1,
|
||||||
|
__const struct dirent **__e2),
|
||||||
versionsort64)
|
versionsort64)
|
||||||
__attribute_pure__ __nonnull ((1, 2));
|
__attribute_pure__ __nonnull ((1, 2));
|
||||||
# else
|
# else
|
||||||
@ -345,7 +353,8 @@ extern int __REDIRECT_NTH (versionsort,
|
|||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef __USE_LARGEFILE64
|
# ifdef __USE_LARGEFILE64
|
||||||
extern int versionsort64 (__const void *__e1, __const void *__e2)
|
extern int versionsort64 (__const struct dirent64 **__e1,
|
||||||
|
__const struct dirent64 **__e2)
|
||||||
__THROW __attribute_pure__ __nonnull ((1, 2));
|
__THROW __attribute_pure__ __nonnull ((1, 2));
|
||||||
# endif
|
# endif
|
||||||
#endif /* Use GNU. */
|
#endif /* Use GNU. */
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1992-1998, 2000, 2002, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1992-1998,2000,2002,2003,2009 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -57,7 +57,7 @@ SCANDIR (dir, namelist, select, cmp)
|
|||||||
const char *dir;
|
const char *dir;
|
||||||
DIRENT_TYPE ***namelist;
|
DIRENT_TYPE ***namelist;
|
||||||
int (*select) (const DIRENT_TYPE *);
|
int (*select) (const DIRENT_TYPE *);
|
||||||
int (*cmp) (const void *, const void *);
|
int (*cmp) (const DIRENT_TYPE **, const DIRENT_TYPE **);
|
||||||
{
|
{
|
||||||
DIR *dp = __opendir (dir);
|
DIR *dp = __opendir (dir);
|
||||||
DIRENT_TYPE **v = NULL;
|
DIRENT_TYPE **v = NULL;
|
||||||
@ -134,7 +134,8 @@ SCANDIR (dir, namelist, select, cmp)
|
|||||||
{
|
{
|
||||||
/* Sort the list if we have a comparison function to sort with. */
|
/* Sort the list if we have a comparison function to sort with. */
|
||||||
if (cmp != NULL)
|
if (cmp != NULL)
|
||||||
qsort (v, c.cnt, sizeof (*v), cmp);
|
qsort (v, c.cnt, sizeof (*v),
|
||||||
|
(int (*) (const void *, const void *)) cmp);
|
||||||
|
|
||||||
*namelist = v;
|
*namelist = v;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1992, 1997, 1998 Free Software Foundation, Inc.
|
/* Copyright (C) 1992, 1997, 1998, 2009 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -20,8 +20,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
versionsort (const void *a, const void *b)
|
versionsort (const struct dirent **a, const struct dirent **b)
|
||||||
{
|
{
|
||||||
return __strverscmp ((*(const struct dirent **) a)->d_name,
|
return __strverscmp ((*a)->d_name, (*b)->d_name);
|
||||||
(*(const struct dirent **) b)->d_name);
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1992, 1997, 1998, 2000 Free Software Foundation, Inc.
|
/* Copyright (C) 1992, 1997, 1998, 2000, 2009 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -20,8 +20,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
versionsort64 (const void *a, const void *b)
|
versionsort64 (const struct dirent64 **a, const struct dirent64 **b)
|
||||||
{
|
{
|
||||||
return __strverscmp ((*(const struct dirent64 **) a)->d_name,
|
return __strverscmp ((*a)->d_name, (*b)->d_name);
|
||||||
(*(const struct dirent64 **) b)->d_name);
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
2009-03-15 Ulrich Drepper <drepper@redhat.com>
|
2009-03-15 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
[BZ #9844]
|
||||||
|
* locales/iso14651_t1_common: Move U0138 entry.
|
||||||
|
|
||||||
[BZ #9833]
|
[BZ #9833]
|
||||||
* locales/ko_KR: Fix noexpr. Add nostr.
|
* locales/ko_KR: Fix noexpr. Add nostr.
|
||||||
|
|
||||||
|
@ -2362,7 +2362,6 @@ endif
|
|||||||
<U1E33> <k>;<BPT>;<MIN>;IGNORE # 337 ḳ
|
<U1E33> <k>;<BPT>;<MIN>;IGNORE # 337 ḳ
|
||||||
<U1E35> <k>;<BMA>;<MIN>;IGNORE # 338 ḵ
|
<U1E35> <k>;<BMA>;<MIN>;IGNORE # 338 ḵ
|
||||||
<U0199> <k>;<CRL>;<MIN>;IGNORE # 339 ƙ
|
<U0199> <k>;<CRL>;<MIN>;IGNORE # 339 ƙ
|
||||||
<U0138> <k>;<PCL>;<MIN>;IGNORE # 340 <kk>
|
|
||||||
<U006C> <l>;<BAS>;<MIN>;IGNORE # 341 l
|
<U006C> <l>;<BAS>;<MIN>;IGNORE # 341 l
|
||||||
<U013A> <l>;<ACA>;<MIN>;IGNORE # 342 <l'>
|
<U013A> <l>;<ACA>;<MIN>;IGNORE # 342 <l'>
|
||||||
<U013E> <l>;<CAR>;<MIN>;IGNORE # 343 <l<>
|
<U013E> <l>;<CAR>;<MIN>;IGNORE # 343 <l<>
|
||||||
@ -2436,6 +2435,7 @@ endif
|
|||||||
<U1E55> <p>;<ACA>;<MIN>;IGNORE # 411 <p'>
|
<U1E55> <p>;<ACA>;<MIN>;IGNORE # 411 <p'>
|
||||||
<U1E57> <p>;<PCT>;<MIN>;IGNORE # 412 <p.>
|
<U1E57> <p>;<PCT>;<MIN>;IGNORE # 412 <p.>
|
||||||
<U0071> <q>;<BAS>;<MIN>;IGNORE # 413 q
|
<U0071> <q>;<BAS>;<MIN>;IGNORE # 413 q
|
||||||
|
<U0138> <q>;<PCL>;<MIN>;IGNORE # 340 <kk>
|
||||||
<U0072> <r>;<BAS>;<MIN>;IGNORE # 414 r
|
<U0072> <r>;<BAS>;<MIN>;IGNORE # 414 r
|
||||||
<U0155> <r>;<ACA>;<MIN>;IGNORE # 415 <r'>
|
<U0155> <r>;<ACA>;<MIN>;IGNORE # 415 <r'>
|
||||||
<U0159> <r>;<CAR>;<MIN>;IGNORE # 416 <r<>
|
<U0159> <r>;<CAR>;<MIN>;IGNORE # 416 <r<>
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
#define alphasort64 rename_alphasort64
|
||||||
|
|
||||||
#include "../../dirent/alphasort.c"
|
#include "../../dirent/alphasort.c"
|
||||||
|
|
||||||
|
#undef alphasort64
|
||||||
|
|
||||||
weak_alias (alphasort, alphasort64)
|
weak_alias (alphasort, alphasort64)
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
#define versionsort64 rename_versionsort64
|
||||||
|
|
||||||
#include "../../dirent/versionsort.c"
|
#include "../../dirent/versionsort.c"
|
||||||
|
|
||||||
|
#undef versionsort64
|
||||||
|
|
||||||
weak_alias (versionsort, versionsort64)
|
weak_alias (versionsort, versionsort64)
|
||||||
|
Loading…
Reference in New Issue
Block a user