@@ -821,8 +821,7 @@ FindEndOfXLOG(void)
821
821
exit (1 );
822
822
}
823
823
824
- errno = 0 ;
825
- while ((xlde = readdir (xldir )) != NULL )
824
+ while (errno = 0 , (xlde = readdir (xldir )) != NULL )
826
825
{
827
826
if (strlen (xlde -> d_name ) == 24 &&
828
827
strspn (xlde -> d_name , "0123456789ABCDEF" ) == 24 )
@@ -844,25 +843,27 @@ FindEndOfXLOG(void)
844
843
if (segno > newXlogSegNo )
845
844
newXlogSegNo = segno ;
846
845
}
847
- errno = 0 ;
848
846
}
849
847
850
848
#ifdef WIN32
851
- /*
852
- * This fix is in mingw cvs (runtime/mingwex/dirent.c rev 1.4), but not in
853
- * released version
854
- */
849
+ /* Bug in old Mingw dirent.c; fixed in mingw-runtime-3.2, 2003-10-10 */
855
850
if (GetLastError () == ERROR_NO_MORE_FILES )
856
851
errno = 0 ;
857
852
#endif
858
853
859
854
if (errno )
860
855
{
861
- fprintf (stderr , _ ("%s: could not read from directory \"%s\": %s\n" ),
856
+ fprintf (stderr , _ ("%s: could not read directory \"%s\": %s\n" ),
857
+ progname , XLOGDIR , strerror (errno ));
858
+ exit (1 );
859
+ }
860
+
861
+ if (closedir (xldir ))
862
+ {
863
+ fprintf (stderr , _ ("%s: could not close directory \"%s\": %s\n" ),
862
864
progname , XLOGDIR , strerror (errno ));
863
865
exit (1 );
864
866
}
865
- closedir (xldir );
866
867
867
868
/*
868
869
* Finally, convert to new xlog seg size, and advance by one to ensure we
@@ -892,8 +893,7 @@ KillExistingXLOG(void)
892
893
exit (1 );
893
894
}
894
895
895
- errno = 0 ;
896
- while ((xlde = readdir (xldir )) != NULL )
896
+ while (errno = 0 , (xlde = readdir (xldir )) != NULL )
897
897
{
898
898
if (strlen (xlde -> d_name ) == 24 &&
899
899
strspn (xlde -> d_name , "0123456789ABCDEF" ) == 24 )
@@ -906,25 +906,27 @@ KillExistingXLOG(void)
906
906
exit (1 );
907
907
}
908
908
}
909
- errno = 0 ;
910
909
}
911
910
912
911
#ifdef WIN32
913
- /*
914
- * This fix is in mingw cvs (runtime/mingwex/dirent.c rev 1.4), but not in
915
- * released version
916
- */
912
+ /* Bug in old Mingw dirent.c; fixed in mingw-runtime-3.2, 2003-10-10 */
917
913
if (GetLastError () == ERROR_NO_MORE_FILES )
918
914
errno = 0 ;
919
915
#endif
920
916
921
917
if (errno )
922
918
{
923
- fprintf (stderr , _ ("%s: could not read from directory \"%s\": %s\n" ),
919
+ fprintf (stderr , _ ("%s: could not read directory \"%s\": %s\n" ),
920
+ progname , XLOGDIR , strerror (errno ));
921
+ exit (1 );
922
+ }
923
+
924
+ if (closedir (xldir ))
925
+ {
926
+ fprintf (stderr , _ ("%s: could not close directory \"%s\": %s\n" ),
924
927
progname , XLOGDIR , strerror (errno ));
925
928
exit (1 );
926
929
}
927
- closedir (xldir );
928
930
}
929
931
930
932
@@ -948,8 +950,7 @@ KillExistingArchiveStatus(void)
948
950
exit (1 );
949
951
}
950
952
951
- errno = 0 ;
952
- while ((xlde = readdir (xldir )) != NULL )
953
+ while (errno = 0 , (xlde = readdir (xldir )) != NULL )
953
954
{
954
955
if (strspn (xlde -> d_name , "0123456789ABCDEF" ) == 24 &&
955
956
(strcmp (xlde -> d_name + 24 , ".ready" ) == 0 ||
@@ -963,25 +964,27 @@ KillExistingArchiveStatus(void)
963
964
exit (1 );
964
965
}
965
966
}
966
- errno = 0 ;
967
967
}
968
968
969
969
#ifdef WIN32
970
- /*
971
- * This fix is in mingw cvs (runtime/mingwex/dirent.c rev 1.4), but not in
972
- * released version
973
- */
970
+ /* Bug in old Mingw dirent.c; fixed in mingw-runtime-3.2, 2003-10-10 */
974
971
if (GetLastError () == ERROR_NO_MORE_FILES )
975
972
errno = 0 ;
976
973
#endif
977
974
978
975
if (errno )
979
976
{
980
- fprintf (stderr , _ ("%s: could not read from directory \"%s\": %s\n" ),
977
+ fprintf (stderr , _ ("%s: could not read directory \"%s\": %s\n" ),
978
+ progname , ARCHSTATDIR , strerror (errno ));
979
+ exit (1 );
980
+ }
981
+
982
+ if (closedir (xldir ))
983
+ {
984
+ fprintf (stderr , _ ("%s: could not close directory \"%s\": %s\n" ),
981
985
progname , ARCHSTATDIR , strerror (errno ));
982
986
exit (1 );
983
987
}
984
- closedir (xldir );
985
988
}
986
989
987
990
0 commit comments