summary refs log tree commit diff
path: root/dirent
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2012-08-06 16:47:58 -0700
committerRoland McGrath <roland@hack.frob.com>2012-08-06 16:48:36 -0700
commit8e49df1d656c393e913b6c9343f491c59bd527b2 (patch)
treeac9cb93c6181621769aba412c5bb233498b896e5 /dirent
parent03af952060fee063679864d82cdd76f94d56d263 (diff)
downloadglibc-8e49df1d656c393e913b6c9343f491c59bd527b2.tar.gz
glibc-8e49df1d656c393e913b6c9343f491c59bd527b2.tar.xz
glibc-8e49df1d656c393e913b6c9343f491c59bd527b2.zip
Clean up {alphasort,versionsort,scandir,scandirat}{,64} for struct dirent == struct dirent64.
Diffstat (limited to 'dirent')
-rw-r--r--dirent/alphasort.c14
-rw-r--r--dirent/alphasort64.c7
-rw-r--r--dirent/scandir.c15
-rw-r--r--dirent/scandir64.c7
-rw-r--r--dirent/scandirat.c15
-rw-r--r--dirent/scandirat64.c7
-rw-r--r--dirent/versionsort.c14
-rw-r--r--dirent/versionsort64.c7
8 files changed, 76 insertions, 10 deletions
diff --git a/dirent/alphasort.c b/dirent/alphasort.c
index 5939322ab8..6fab7f89bd 100644
--- a/dirent/alphasort.c
+++ b/dirent/alphasort.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1997, 1998, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2012 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
@@ -15,7 +15,15 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* We need to avoid the header declaration of alphasort64, because
+   the types don't match alphasort and then the compiler will
+   complain about the mismatch when we do the alias below.  */
+#define alphasort64     __renamed_alphasort64
+
 #include <dirent.h>
+
+#undef  alphasort64
+
 #include <string.h>
 
 int
@@ -23,3 +31,7 @@ alphasort (const struct dirent **a, const struct dirent **b)
 {
   return strcoll ((*a)->d_name, (*b)->d_name);
 }
+
+#ifdef _DIRENT_MATCHES_DIRENT64
+weak_alias (alphasort, alphasort64)
+#endif
diff --git a/dirent/alphasort64.c b/dirent/alphasort64.c
index 4f5c1ddc35..a4d37abbac 100644
--- a/dirent/alphasort64.c
+++ b/dirent/alphasort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1997, 1998, 2000, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2012 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
@@ -18,8 +18,13 @@
 #include <dirent.h>
 #include <string.h>
 
+/* alphasort.c defines alphasort64 as an alias if _DIRENT_MATCHES_DIRENT64.  */
+#ifndef _DIRENT_MATCHES_DIRENT64
+
 int
 alphasort64 (const struct dirent64 **a, const struct dirent64 **b)
 {
   return strcoll ((*a)->d_name, (*b)->d_name);
 }
+
+#endif
diff --git a/dirent/scandir.c b/dirent/scandir.c
index 8b0a87ba06..6dce54d64a 100644
--- a/dirent/scandir.c
+++ b/dirent/scandir.c
@@ -1,5 +1,4 @@
-/* Copyright (C) 1992-1998,2000,2002,2003,2009,2011
-   Free Software Foundation, Inc.
+/* Copyright (C) 1992-2012 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
@@ -16,7 +15,15 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* We need to avoid the header declaration of scandir64, because
+   the types don't match scandir and then the compiler will
+   complain about the mismatch when we do the alias below.  */
+#define scandir64       __renamed_scandir64
+
 #include <dirent.h>
+
+#undef  scandir64
+
 #include <fcntl.h>
 
 #ifndef SCANDIR
@@ -35,3 +42,7 @@ SCANDIR (dir, namelist, select, cmp)
 {
   return SCANDIRAT (AT_FDCWD, dir, namelist, select, cmp);
 }
+
+#ifdef _DIRENT_MATCHES_DIRENT64
+weak_alias (scandir, scandir64)
+#endif
diff --git a/dirent/scandir64.c b/dirent/scandir64.c
index 78ac570a18..bba302f01a 100644
--- a/dirent/scandir64.c
+++ b/dirent/scandir64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2009, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2012 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
@@ -17,8 +17,13 @@
 
 #include <dirent.h>
 
+/* scandir.c defines scandir64 as an alias if _DIRENT_MATCHES_DIRENT64.  */
+#ifndef _DIRENT_MATCHES_DIRENT64
+
 #define SCANDIR scandir64
 #define SCANDIRAT scandirat64
 #define DIRENT_TYPE struct dirent64
 
 #include <dirent/scandir.c>
+
+#endif
diff --git a/dirent/scandirat.c b/dirent/scandirat.c
index 13bd57416a..c2704baa88 100644
--- a/dirent/scandirat.c
+++ b/dirent/scandirat.c
@@ -1,5 +1,4 @@
-/* Copyright (C) 1992-1998,2000,2002,2003,2009,2011
-   Free Software Foundation, Inc.
+/* Copyright (C) 1992-2012 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
@@ -16,7 +15,15 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* We need to avoid the header declaration of scandir64, because
+   the types don't match scandir and then the compiler will
+   complain about the mismatch when we do the alias below.  */
+#define scandirat64       __renamed_scandirat64
+
 #include <dirent.h>
+
+#undef  scandirat64
+
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
@@ -141,3 +148,7 @@ SCANDIRAT (dfd, dir, namelist, select, cmp)
   return c.cnt;
 }
 libc_hidden_def (SCANDIRAT)
+
+#ifdef _DIRENT_MATCHES_DIRENT64
+weak_alias (scandirat, scandirat64)
+#endif
diff --git a/dirent/scandirat64.c b/dirent/scandirat64.c
index a816ee9e85..608ca33ac9 100644
--- a/dirent/scandirat64.c
+++ b/dirent/scandirat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2009, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2012 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
@@ -17,9 +17,14 @@
 
 #include <dirent.h>
 
+/* scandirat.c defines scandirat64 as an alias if _DIRENT_MATCHES_DIRENT64.  */
+#ifndef _DIRENT_MATCHES_DIRENT64
+
 #define SCANDIRAT scandirat64
 #define READDIR __readdir64
 #define DIRENT_TYPE struct dirent64
 #define SKIP_SCANDIR_CANCEL 1
 
 #include "scandirat.c"
+
+#endif
diff --git a/dirent/versionsort.c b/dirent/versionsort.c
index 47bda040db..ee34659042 100644
--- a/dirent/versionsort.c
+++ b/dirent/versionsort.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1997, 1998, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2012 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
@@ -15,7 +15,15 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* We need to avoid the header declaration of versionsort64, because
+   the types don't match versionsort and then the compiler will
+   complain about the mismatch when we do the alias below.  */
+#define versionsort64     __renamed_versionsort64
+
 #include <dirent.h>
+
+#undef  versionsort64
+
 #include <string.h>
 
 int
@@ -23,3 +31,7 @@ versionsort (const struct dirent **a, const struct dirent **b)
 {
   return __strverscmp ((*a)->d_name, (*b)->d_name);
 }
+
+#ifdef _DIRENT_MATCHES_DIRENT64
+weak_alias (versionsort, versionsort64)
+#endif
diff --git a/dirent/versionsort64.c b/dirent/versionsort64.c
index 5b40e10bd7..dca72e8d1c 100644
--- a/dirent/versionsort64.c
+++ b/dirent/versionsort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1997, 1998, 2000, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2012 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
@@ -18,8 +18,13 @@
 #include <dirent.h>
 #include <string.h>
 
+/* versionsort.c defines a versionsort64 alias if _DIRENT_MATCHES_DIRENT64.  */
+#ifndef _DIRENT_MATCHES_DIRENT64
+
 int
 versionsort64 (const struct dirent64 **a, const struct dirent64 **b)
 {
   return __strverscmp ((*a)->d_name, (*b)->d_name);
 }
+
+#endif