+2011-08-08 Ulrich Drepper <drepper@gmail.com>
+
+ * dirent/scandir.c (cancel_handler): Renamed to
+ __scandir_cancel_handler. Do not define if SKIP_SCANDIR_CANCEL is
+ defined. Adjust users.
+ * dirent/scandir64.c: Define SKIP_SCANDIR_CANCEL.
+ * sysdeps/unix/sysv/linux/i386/scandir64.c: Likewise.
+
2011-08-04 Ulrich Drepper <drepper@gmail.com>
* string/test-string.h (IMPL): Use __STRING to expand name and then
-/* Copyright (C) 1992-1998,2000,2002,2003,2009 Free Software Foundation, Inc.
+/* Copyright (C) 1992-1998,2000,2002,2003,2009,2011
+ 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
#include <bits/libc-lock.h>
#ifndef SCANDIR
-#define SCANDIR scandir
-#define READDIR __readdir
-#define DIRENT_TYPE struct dirent
+# define SCANDIR scandir
+# define READDIR __readdir
+# define DIRENT_TYPE struct dirent
#endif
#ifndef SCANDIR_CANCEL
-#define SCANDIR_CANCEL
+# define SCANDIR_CANCEL
struct scandir_cancel_struct
{
DIR *dp;
size_t cnt;
};
-static void
-cancel_handler (void *arg)
+# ifndef SKIP_SCANDIR_CANCEL
+void
+__scandir_cancel_handler (void *arg)
{
struct scandir_cancel_struct *cp = arg;
size_t i;
free (v);
(void) __closedir (cp->dp);
}
+# else
+extern void __scandir_cancel_handler (void *arg);
+# endif
#endif
c.dp = dp;
c.v = NULL;
c.cnt = 0;
- __libc_cleanup_push (cancel_handler, &c);
+ __libc_cleanup_push (__scandir_cancel_handler, &c);
while ((d = READDIR (dp)) != NULL)
{
-/* Copyright (C) 2000, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2009, 2011 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
#define SCANDIR scandir64
#define READDIR __readdir64
#define DIRENT_TYPE struct dirent64
+#define SKIP_SCANDIR_CANCEL 1
int scandir64 (__const char *__restrict __dir,
struct dirent64 ***__restrict __namelist,
-/* Copyright (C) 2000, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2004, 2011 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
#define SCANDIR __scandir64
#define READDIR __readdir64
#define DIRENT_TYPE struct dirent64
+#define SKIP_SCANDIR_CANCEL 1
#include <dirent/scandir.c>