[AWS] AWS build problem

Tero Koskinen tero.koskinen at iki.fi
Wed Jun 20 19:33:36 CEST 2007


Hi,

On Wed, 20 Jun 2007 12:31:32 -0400 Eric Benoit wrote:
> Pascal Obry wrote:
> > Looks like GNAT/GCC 4.2 does not contain the Ada.Calendar.Time_Zones new
> > Ada 2005 package. 
>
> My concern now is GCC 4.3 for production use. Do we think these updates
> will be/can be backported to GCC 4.2?

I had same build problem on OpenBSD with GCC 4.2 and AWS GPL 2.3.0.

Currently, GCC 4.2 is only "Ada-enabled" compiler on OpenBSD and
I am stuck with it. The most of AWS GPL 2.3.0 changes seemed to be
cosmetic or Ada 2005 related, so I ended up using AWS GPL 2.2.0 and
applying few bug fixes (Null_Set and URL handling) from AWS GPL 2.3.0
(see the diff below).

#
#
# patch "src/aws-url.adb"
#  from [f57b4717ff1101d9a573f951049762aec3faf9bb]
#    to [eebb8f21ca27173e8c72f25fc1e72b5b820e0743]
# 
# patch "src/aws-url.ads"
#  from [7f33676dcc17c97a86cf388f5751f297cd00ef93]
#    to [3556d9aa16228e531f84c74b0bfb97c0ccc0022f]
# 
# patch "templates_parser/src/templates_parser-filter.adb"
#  from [c1fcba775cfc39a6a00427e7f72d2bf3adfc3a66]
#    to [e33a79ca2e2cdae891a1681a1c3ef182bd03af4f]
#
============================================================
--- src/aws-url.adb	f57b4717ff1101d9a573f951049762aec3faf9bb
+++ src/aws-url.adb	eebb8f21ca27173e8c72f25fc1e72b5b820e0743
@@ -232,10 +232,28 @@ package body AWS.URL is
          Delete (URL_Path, 1, 1);
       end if;
 
+      --  Look for all // references
+
+      K := 1;
+
+      loop
+         K := Index (URL_Path, "//", From => K);
+
+         exit when K = 0;
+
+         if K > 1 and then Slice (URL_Path, K - 1, K - 1) = ":" then
+            K := K + 1;
+         else
+            Delete (URL_Path, K, K);
+         end if;
+      end loop;
+
       --  Look for all /./ references
 
+      K := 1;
+
       loop
-         K := Index (URL_Path, "/./");
+         K := Index (URL_Path, "/./", From => K);
 
          exit when K = 0;
 
@@ -244,8 +262,10 @@ package body AWS.URL is
 
       --  Checks for parent directory
 
+      P := 1;
+
       loop
-         K := Index (URL_Path, "/../");
+         K := Index (URL_Path, "/../", From => P);
 
          exit when K = 0;
 
@@ -384,7 +404,7 @@ package body AWS.URL is
          I2 := Strings.Fixed.Index (URL, "/");
          I3 := Strings.Fixed.Index (URL, "@");
 
-         --  Check for [user:pawwsord@]
+         --  Check for [user:password@]
 
          if I1 /= 0 and then I3 /= 0 and then I1 < I3 then
             --  We have [user:password@]
============================================================
--- src/aws-url.ads	7f33676dcc17c97a86cf388f5751f297cd00ef93
+++ src/aws-url.ads	3556d9aa16228e531f84c74b0bfb97c0ccc0022f
@@ -198,6 +198,6 @@ private
          (Span => (Low  => Character'Val (128),
                    High => Character'Val (Character'Pos (Character'Last))))
      or
-       Strings.Maps.To_Set (";/?:@&=+$,<>#%""{}|\^[]` ");
+       Strings.Maps.To_Set (";/?:@&=+$,<>#%""{}|\^[]`' ");
 
 end AWS.URL;
============================================================
--- templates_parser/src/templates_parser-filter.adb	c1fcba775cfc39a6a00427e7f72d2bf3adfc3a66
+++ templates_parser/src/templates_parser-filter.adb	e33a79ca2e2cdae891a1681a1c3ef182bd03af4f
@@ -1991,6 +1991,9 @@ package body Filter is
             return To_String (I_Params (N));
          end;
 
+      elsif Translations = Null_Set then
+         return Str;
+
       else
          Pos := Association_Set.Containers.Find (Translations.Set.all, Str);
 



-- 
Tero Koskinen - http://iki.fi/tero.koskinen/


More information about the AWS mailing list