aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPascal Obry <obry@adacore.com>2005-12-09 18:18:03 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2005-12-09 18:18:03 +0100
commitdc503cef64e1eda4b4be760112de394207dbd096 (patch)
treeaa9d0a6351cd6720e0f17a2de235417db836a847 /gcc
parentd1586072d0357bf1e46dfe82f91cae3f28cbecd7 (diff)
downloadgcc-dc503cef64e1eda4b4be760112de394207dbd096.zip
gcc-dc503cef64e1eda4b4be760112de394207dbd096.tar.gz
gcc-dc503cef64e1eda4b4be760112de394207dbd096.tar.bz2
g-diopit.adb (Find): Fix test to exit the iterator and make sure that the iterator is quitting...
2005-12-05 Pascal Obry <obry@adacore.com> * g-diopit.adb (Find): Fix test to exit the iterator and make sure that the iterator is quitting iteration on parent directory. From-SVN: r108291
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/g-diopit.adb5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/ada/g-diopit.adb b/gcc/ada/g-diopit.adb
index 92c7be1..d57ca38 100644
--- a/gcc/ada/g-diopit.adb
+++ b/gcc/ada/g-diopit.adb
@@ -51,6 +51,7 @@ package body GNAT.Directory_Operations.Iteration is
is
File_Regexp : constant Regexp.Regexp := Regexp.Compile (File_Pattern);
Index : Natural := 0;
+ Quit : Boolean;
procedure Read_Directory (Directory : Dir_Name_Str);
-- Open Directory and read all entries. This routine is called
@@ -80,7 +81,6 @@ package body GNAT.Directory_Operations.Iteration is
Dir : Dir_Type;
Buffer : String (1 .. 2_048);
Last : Natural;
- Quit : Boolean;
begin
Open (Dir, Directory);
@@ -96,7 +96,6 @@ package body GNAT.Directory_Operations.Iteration is
begin
if Regexp.Match (Dir_Entry, File_Regexp) then
- Quit := False;
Index := Index + 1;
begin
@@ -116,6 +115,7 @@ package body GNAT.Directory_Operations.Iteration is
and then OS_Lib.Is_Directory (Pathname)
then
Read_Directory (Pathname);
+ exit when Quit;
end if;
end;
end loop;
@@ -124,6 +124,7 @@ package body GNAT.Directory_Operations.Iteration is
end Read_Directory;
begin
+ Quit := False;
Read_Directory (Root_Directory);
end Find;