@@ -742,8 +742,7 @@ FindEndOfXLOG(void)
742
742
exit (1 );
743
743
}
744
744
745
- errno = 0 ;
746
- while ((xlde = readdir (xldir )) != NULL )
745
+ while (errno = 0 , (xlde = readdir (xldir )) != NULL )
747
746
{
748
747
if (strlen (xlde -> d_name ) == 24 &&
749
748
strspn (xlde -> d_name , "0123456789ABCDEF" ) == 24 )
@@ -767,25 +766,27 @@ FindEndOfXLOG(void)
767
766
newXlogSeg = seg ;
768
767
}
769
768
}
770
- errno = 0 ;
771
769
}
772
- #ifdef WIN32
773
770
774
- /*
775
- * This fix is in mingw cvs (runtime/mingwex/dirent.c rev 1.4), but not in
776
- * released version
777
- */
771
+ #ifdef WIN32
772
+ /* Bug in old Mingw dirent.c; fixed in mingw-runtime-3.2, 2003-10-10 */
778
773
if (GetLastError () == ERROR_NO_MORE_FILES )
779
774
errno = 0 ;
780
775
#endif
781
776
782
777
if (errno )
783
778
{
784
- fprintf (stderr , _ ("%s: could not read from directory \"%s\": %s\n" ),
779
+ fprintf (stderr , _ ("%s: could not read directory \"%s\": %s\n" ),
780
+ progname , XLOGDIR , strerror (errno ));
781
+ exit (1 );
782
+ }
783
+
784
+ if (closedir (xldir ))
785
+ {
786
+ fprintf (stderr , _ ("%s: could not close directory \"%s\": %s\n" ),
785
787
progname , XLOGDIR , strerror (errno ));
786
788
exit (1 );
787
789
}
788
- closedir (xldir );
789
790
790
791
/*
791
792
* Finally, convert to new xlog seg size, and advance by one to ensure we
@@ -817,8 +818,7 @@ KillExistingXLOG(void)
817
818
exit (1 );
818
819
}
819
820
820
- errno = 0 ;
821
- while ((xlde = readdir (xldir )) != NULL )
821
+ while (errno = 0 , (xlde = readdir (xldir )) != NULL )
822
822
{
823
823
if (strlen (xlde -> d_name ) == 24 &&
824
824
strspn (xlde -> d_name , "0123456789ABCDEF" ) == 24 )
@@ -831,25 +831,27 @@ KillExistingXLOG(void)
831
831
exit (1 );
832
832
}
833
833
}
834
- errno = 0 ;
835
834
}
836
- #ifdef WIN32
837
835
838
- /*
839
- * This fix is in mingw cvs (runtime/mingwex/dirent.c rev 1.4), but not in
840
- * released version
841
- */
836
+ #ifdef WIN32
837
+ /* Bug in old Mingw dirent.c; fixed in mingw-runtime-3.2, 2003-10-10 */
842
838
if (GetLastError () == ERROR_NO_MORE_FILES )
843
839
errno = 0 ;
844
840
#endif
845
841
846
842
if (errno )
847
843
{
848
- fprintf (stderr , _ ("%s: could not read from directory \"%s\": %s\n" ),
844
+ fprintf (stderr , _ ("%s: could not read directory \"%s\": %s\n" ),
845
+ progname , XLOGDIR , strerror (errno ));
846
+ exit (1 );
847
+ }
848
+
849
+ if (closedir (xldir ))
850
+ {
851
+ fprintf (stderr , _ ("%s: could not close directory \"%s\": %s\n" ),
849
852
progname , XLOGDIR , strerror (errno ));
850
853
exit (1 );
851
854
}
852
- closedir (xldir );
853
855
}
854
856
855
857
@@ -873,8 +875,7 @@ KillExistingArchiveStatus(void)
873
875
exit (1 );
874
876
}
875
877
876
- errno = 0 ;
877
- while ((xlde = readdir (xldir )) != NULL )
878
+ while (errno = 0 , (xlde = readdir (xldir )) != NULL )
878
879
{
879
880
if (strspn (xlde -> d_name , "0123456789ABCDEF" ) == 24 &&
880
881
(strcmp (xlde -> d_name + 24 , ".ready" ) == 0 ||
@@ -888,25 +889,27 @@ KillExistingArchiveStatus(void)
888
889
exit (1 );
889
890
}
890
891
}
891
- errno = 0 ;
892
892
}
893
- #ifdef WIN32
894
893
895
- /*
896
- * This fix is in mingw cvs (runtime/mingwex/dirent.c rev 1.4), but not in
897
- * released version
898
- */
894
+ #ifdef WIN32
895
+ /* Bug in old Mingw dirent.c; fixed in mingw-runtime-3.2, 2003-10-10 */
899
896
if (GetLastError () == ERROR_NO_MORE_FILES )
900
897
errno = 0 ;
901
898
#endif
902
899
903
900
if (errno )
904
901
{
905
- fprintf (stderr , _ ("%s: could not read from directory \"%s\": %s\n" ),
902
+ fprintf (stderr , _ ("%s: could not read directory \"%s\": %s\n" ),
903
+ progname , ARCHSTATDIR , strerror (errno ));
904
+ exit (1 );
905
+ }
906
+
907
+ if (closedir (xldir ))
908
+ {
909
+ fprintf (stderr , _ ("%s: could not close directory \"%s\": %s\n" ),
906
910
progname , ARCHSTATDIR , strerror (errno ));
907
911
exit (1 );
908
912
}
909
- closedir (xldir );
910
913
}
911
914
912
915
0 commit comments