aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2008-08-01 10:35:21 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-08-01 10:35:21 +0200
commitd1b4f87d1b22029e19ca82dbff6a8a39873a7ab4 (patch)
tree0a3b9b75c9d075679160076e009c1c0858b535a0
parent766d7add511f9edffa341239c0af1c1ec6bdfad2 (diff)
downloadgcc-d1b4f87d1b22029e19ca82dbff6a8a39873a7ab4.zip
gcc-d1b4f87d1b22029e19ca82dbff6a8a39873a7ab4.tar.gz
gcc-d1b4f87d1b22029e19ca82dbff6a8a39873a7ab4.tar.bz2
s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in paths...
2008-08-01 Jerome Lambourg <lambourg@adacore.com> * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in paths, which are authorized by Windows but can lead to errors when used elsewhere. From-SVN: r138484
-rw-r--r--gcc/ada/ChangeLog16
-rwxr-xr-xgcc/ada/s-os_lib.adb18
2 files changed, 34 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 3eb081d..fa598cd 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,19 @@
+2008-08-01 Jose Ruiz <ruiz@adacore.com>
+
+ * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
+ for RTX. Adding a suffix that is incremented at each iteration.
+
+2008-08-01 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
+ Raise_Exception
+
+2008-08-01 Jerome Lambourg <lambourg@adacore.com>
+
+ * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
+ paths, which are authorized by Windows but can lead to errors when used
+ elsewhere.
+
2008-08-01 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
diff --git a/gcc/ada/s-os_lib.adb b/gcc/ada/s-os_lib.adb
index 6df7fa4..532fca4 100755
--- a/gcc/ada/s-os_lib.adb
+++ b/gcc/ada/s-os_lib.adb
@@ -1921,6 +1921,24 @@ package body System.OS_Lib is
end;
end if;
+ -- On Windows, remove all double-quotes that are possibly part of the
+ -- path but can cause problems with other methods.
+
+ if On_Windows then
+ declare
+ Index : Natural := Path_Buffer'First;
+ begin
+ for Current in Path_Buffer'First .. End_Path loop
+ if Path_Buffer (Current) /= '"' then
+ Path_Buffer (Index) := Path_Buffer (Current);
+ Index := Index + 1;
+ end if;
+ end loop;
+
+ End_Path := Index - 1;
+ end;
+ end if;
+
-- Start the conversions
-- If this is not finished after Max_Iterations, give up and return an