From 74888b93490ea7c4f70fafba196bb4ad2891c259 Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Tue, 2 Aug 2005 15:16:27 +0000 Subject: [PATCH] Add ERROR_NO_MORE_FILES workaround to check_data_dir(). This may or may not be obsolete, but since every other readdir loop in our code has it, I think this should too. --- src/bin/initdb/initdb.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 46cb106b134..5c77a87005c 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -42,7 +42,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * Portions taken from FreeBSD. * - * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.93 2005/07/25 04:52:31 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.94 2005/08/02 15:16:27 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -930,7 +930,8 @@ check_data_dir(void) while ((file = readdir(chkdir)) != NULL) { - if (strcmp(".", file->d_name) == 0 || strcmp("..", file->d_name) == 0) + if (strcmp(".", file->d_name) == 0 || + strcmp("..", file->d_name) == 0) { /* skip this and parent directory */ continue; @@ -942,6 +943,15 @@ check_data_dir(void) } } +#ifdef WIN32 + /* + * This fix is in mingw cvs (runtime/mingwex/dirent.c rev 1.4), but + * not in released version + */ + if (GetLastError() == ERROR_NO_MORE_FILES) + errno = 0; +#endif + closedir(chkdir); if (errno != 0) -- GitLab