CVS difference for ais/ai-20302.txt

Differences between 1.25 and version 1.26
Log of other versions for file ais/ai-20302.txt

--- ais/ai-20302.txt	2005/12/15 02:44:25	1.25
+++ ais/ai-20302.txt	2006/02/21 04:22:00	1.26
@@ -769,13 +769,13 @@
 
 function "=" (Left, Right : Vector) return Boolean;
 
-If Left and Right denote the same vector object, then the function returns
+ If Left and Right denote the same vector object, then the function returns
 True. If Left and Right have different lengths, then the function returns
-False. Otherwise, it compares each element in Left to the corresponding element
-in Right using the generic formal equality operator; if element equality
-returns False, then the function returns False. If the function has not
-returned a result after checking all of the elements, it returns True. Any
-exception raised during evaluation of element equality is propagated.
+False. Otherwise, it compares each element in Left to
+the corresponding element in Right using the generic formal equality operator.
+If any such comparison returns False, the function returns False; otherwise it
+returns True. Any exception raised during evaluation of element
+equality is propagated.
 
 function To_Vector (Length : Count_Type) return Vector;
 
@@ -1742,7 +1742,7 @@
 
    procedure Splice (Container: in out List;
                      Before   : in     Cursor;
-                     Position : in out Cursor);
+                     Position : in     Cursor);
 
    function First (Container : List) return Cursor;
 
@@ -1884,11 +1884,11 @@
 
 If Left and Right denote the same list object, then the function returns True.
 If Left and Right have different lengths, then the function returns False.
-Otherwise, it compares each element in Left to the corresponding element in
-Right using the generic formal equality operator; if element equality returns
-False, then the function returns False. If the function has not returned a
-result after checking all of the elements, it returns True. Any exception
-raised during evaluation of element equality is propagated.
+Otherwise, it compares each element in Left to
+the corresponding element in Right using the generic formal equality operator.
+If any such comparison returns False, the function returns False; otherwise it
+returns True. Any exception raised during evaluation of element
+equality is propagated.
 
 function Length (Container : List) return Count_Type;
 
@@ -2092,7 +2092,8 @@
 not designate a node in Source, then Program_Error is propagated. If Source
 denotes the same object as Target, then there is no effect if Position equals
 Before, else the element designated by Position is moved immediately prior to
-Before, or, if Before equals No_Element, after the last element. Otherwise the
+Before, or, if Before equals No_Element, after the last element.
+In both cases, Position and the length of Target are unchanged. Otherwise the
 element designated by Position is removed from Source and moved to Target,
 immediately prior to Before, or, if Before equals No_Element, after the last
 element of Target. The length of Target is incremented, the length of Source is
@@ -2100,10 +2101,16 @@
 
 procedure Splice (Container: in out List;
                   Before   : in     Cursor;
-                  Position : in out Cursor);
+                  Position : in     Cursor);
 
-Equivalent to Splice (Target => Container, Before => Before,
-Source => Container, Position => Position);
+If Position is No_Element then Constraint_Error is propagated. If Before does
+not equal No_Element, and does not designate an element in Container, then
+Program_Error is propagated. If Position does not equal No_Element, and does
+not designate a node in Container, then Program_Error is propagated.
+If Position equals Before there is no effect. Otherwise, the element
+designated by Position is moved immediately prior to
+Before, or, if Before equals No_Element, after the last element.
+The length of Container is unchanged.
 
 function First (Container : List) return Cursor;
 
@@ -7049,11 +7056,11 @@
 
 @xindent<If Left and Right denote the same vector object, then the function returns
 True. If Left and Right have different lengths, then the function returns
-False. Otherwise, it compares each element in Left to the corresponding element
-in Right using the generic formal equality operator; if element equality
-returns False, then the function returns False. If the function has not
-returned a result after checking all of the elements, it returns True. Any
-exception raised during evaluation of element equality is propagated.>
+False. Otherwise, it compares each element in Left to
+the corresponding element in Right using the generic formal equality operator.
+If any such comparison returns False, the function returns False; otherwise it
+returns True. Any exception raised during evaluation of element
+equality is propagated.>
 
 @xcode<@b<function> To_Vector (Length : Count_Type) @b<return> Vector;>
 
@@ -7788,7 +7795,7 @@
 
    @b<procedure> Splice (Container: @b<in out> List;
                      Before   : @b<in>     Cursor;
-                     Position : @b<in out> Cursor);
+                     Position : @b<in>     Cursor);
 
    @b<function> First (Container : List) @b<return> Cursor;
 
@@ -7906,11 +7913,11 @@
 
 @xindent<If Left and Right denote the same list object, then the function returns True.
 If Left and Right have different lengths, then the function returns False.
-Otherwise, it compares each element in Left to the corresponding element in
-Right using the generic formal equality operator; if element equality returns
-False, then the function returns False. If the function has not returned a
-result after checking all of the elements, it returns True. Any exception
-raised during evaluation of element equality is propagated.>
+Otherwise, it compares each element in Left to
+the corresponding element in Right using the generic formal equality operator.
+If any such comparison returns False, the function returns False; otherwise it
+returns True. Any exception raised during evaluation of element
+equality is propagated.>
 
 @xcode<@b<function> Length (Container : List) @b<return> Count_Type;>
 
@@ -8091,7 +8098,8 @@
 Source denotes the same object as Target, then there is no effect if Position
 equals Before, else the element designated by
 Position is moved immediately prior to Before, or, if Before equals No_Element,
-after the last element. Otherwise the element designated by Position is removed
+after the last element. In both cases, Position and the length of Target are
+unchanged. Otherwise the element designated by Position is removed
 from Source and moved to Target, immediately prior to Before, or, if Before
 equals No_Element, after the last element of Target. The length of Target is
 incremented, the length of Source is decremented, and Position is updated to
@@ -8099,10 +8107,16 @@
 
 @xcode<@b<procedure> Splice (Container: @b<in out> List;
                   Before   : @b<in>     Cursor;
-                  Position : @b<in out> Cursor);>
+                  Position : @b<in>     Cursor);>
 
-@xindent<Equivalent to Splice (Target =@> Container, Before =@> Before,
-Source =@> Container, Position =@> Position);>
+@xindent<If Position is No_Element then Constraint_Error is propagated. If
+Before does not equal No_Element, and does not designate an element in
+Container, then Program_Error is propagated. If Position does not equal
+No_Element, and does not designate a node in Container, then Program_Error is
+propagated. If Position equals Before there is no effect. Otherwise, the
+element designated by Position is moved immediately prior to Before, or, if
+Before equals No_Element, after the last element. The length of Container is
+unchanged.>
 
 @xcode<@b<function> First (Container : List) @b<return> Cursor;>
 

Questions? Ask the ACAA Technical Agent