diff options
-rw-r--r-- | include/dirent.h | 8 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/alphasort64.c | 16 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/olddirent.h | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/versionsort64.c | 16 |
4 files changed, 24 insertions, 21 deletions
diff --git a/include/dirent.h b/include/dirent.h index 8f23aee234..3f6c4b9ae5 100644 --- a/include/dirent.h +++ b/include/dirent.h @@ -17,14 +17,16 @@ extern int __readdir64_r (DIR *__dirp, struct dirent64 *__entry, extern int __scandir64 (__const char * __dir, struct dirent64 *** __namelist, int (*__selector) (__const struct dirent64 *), - int (*__cmp) (__const void *, __const void *)); + int (*__cmp) (__const struct dirent64 **, + __const struct dirent64 **)); extern __ssize_t __getdents (int __fd, char *__buf, size_t __nbytes) internal_function; extern __ssize_t __getdents64 (int __fd, char *__buf, size_t __nbytes) internal_function; -extern int __alphasort64 (const void *a, const void *b) +extern int __alphasort64 (const struct dirent64 **a, const struct dirent64 **b) __attribute_pure__; -extern int __versionsort64 (const void *a, const void *b) +extern int __versionsort64 (const struct dirent64 **a, + const struct dirent64 **b) __attribute_pure__; extern DIR *__alloc_dir (int fd, bool close_fd, const struct stat64 *statp) internal_function; diff --git a/sysdeps/unix/sysv/linux/i386/alphasort64.c b/sysdeps/unix/sysv/linux/i386/alphasort64.c index 221aedc16b..33e2fcd435 100644 --- a/sysdeps/unix/sysv/linux/i386/alphasort64.c +++ b/sysdeps/unix/sysv/linux/i386/alphasort64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1997, 1998, 2000, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1997,1998,2000,2004,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,10 +20,9 @@ #include <string.h> 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, - (*(const struct dirent64 **) b)->d_name); + return strcoll ((*a)->d_name, (*b)->d_name); } #include <shlib-compat.h> @@ -35,14 +34,15 @@ versioned_symbol (libc, __alphasort64, alphasort64, GLIBC_2_2); #include <sysdeps/unix/sysv/linux/i386/olddirent.h> int -__old_alphasort64 (const void *a, const void *b); +__old_alphasort64 (const struct __old_dirent64 **a, + const struct __old_dirent64 **b); int attribute_compat_text_section -__old_alphasort64 (const void *a, const void *b) +__old_alphasort64 (const struct __old_dirent64 **a, + const struct __old_dirent64 **b) { - return strcoll ((*(const struct __old_dirent64 **) a)->d_name, - (*(const struct __old_dirent64 **) b)->d_name); + return strcoll ((*a)->d_name, (*b)->d_name); } compat_symbol (libc, __old_alphasort64, alphasort64, GLIBC_2_1); diff --git a/sysdeps/unix/sysv/linux/i386/olddirent.h b/sysdeps/unix/sysv/linux/i386/olddirent.h index f9a79b2352..4f73197e53 100644 --- a/sysdeps/unix/sysv/linux/i386/olddirent.h +++ b/sysdeps/unix/sysv/linux/i386/olddirent.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -39,6 +39,7 @@ extern __ssize_t __old_getdents64 (int __fd, char *__buf, size_t __nbytes) int __old_scandir64 (__const char * __dir, struct __old_dirent64 *** __namelist, int (*__selector) (__const struct __old_dirent64 *), - int (*__cmp) (__const void *, __const void *)); + int (*__cmp) (__const struct __old_dirent64 **, + __const struct __old_dirent64 **)); #endif diff --git a/sysdeps/unix/sysv/linux/i386/versionsort64.c b/sysdeps/unix/sysv/linux/i386/versionsort64.c index 3efce692f7..be635f918a 100644 --- a/sysdeps/unix/sysv/linux/i386/versionsort64.c +++ b/sysdeps/unix/sysv/linux/i386/versionsort64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1997, 1998, 2000, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1992,1997,1998,2000,2004,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,10 +20,9 @@ #include <string.h> 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, - (*(const struct dirent64 **) b)->d_name); + return __strverscmp ((*a)->d_name, (*b)->d_name); } #include <shlib-compat.h> @@ -35,14 +34,15 @@ versioned_symbol (libc, __versionsort64, versionsort64, GLIBC_2_2); #include <sysdeps/unix/sysv/linux/i386/olddirent.h> int -__old_versionsort64 (const void *a, const void *b); +__old_versionsort64 (const struct __old_dirent64 **a, + const struct __old_dirent64 **b); int attribute_compat_text_section -__old_versionsort64 (const void *a, const void *b) +__old_versionsort64 (const struct __old_dirent64 **a, + const struct __old_dirent64 **b) { - return __strverscmp ((*(const struct __old_dirent64 **) a)->d_name, - (*(const struct __old_dirent64 **) b)->d_name); + return __strverscmp ((*a)->d_name, (*b)->d_name); } compat_symbol (libc, __old_versionsort64, versionsort64, GLIBC_2_1); |