CVS difference for ai05s/ai05-0038-1.txt

Differences between 1.2 and version 1.3
Log of other versions for file ai05s/ai05-0038-1.txt

--- ai05s/ai05-0038-1.txt	2007/04/11 00:57:10	1.2
+++ ai05s/ai05-0038-1.txt	2007/12/13 04:39:35	1.3
@@ -1,9 +1,11 @@
-!standard A.10.5(37)                                          07-04-06    AI05-0038-1/02
+!standard A.10.5(37)                                          07-11-26    AI05-0038-1/03
 !standard A.10.7(8/1)
 !standard A.10.7(10)
 !standard A.10.7(12)
 !standard A.10.8(10)
+!standard A.10.8(24)
 !class binding interpretation 07-01-12
+!status ARG Approved  7-0-2  06-11-09
 !status work item 07-01-12
 !status received 06-11-27
 !priority Low
@@ -28,7 +30,7 @@
 intent?
 
 (2)
-A.10.6(9) does not over Look_Ahead or Get_Immediate. But these routines have no
+A.10.6(9) does not cover Look_Ahead or Get_Immediate. But these routines have no
 statement that an empty file raises Status_Error. Surely that should happen
 for these routines.
 
@@ -47,21 +49,23 @@
 (1) Change the last sentence of A.10.5(37) to:
 
 If the value specified by To is less than the current line number, has the effect
-of calling New_Page; then if To is greater than 1, a call to New_Line with a spacing equal
-to (To - 1) follows.
+of calling New_Page followed, if To is greater than 1, by a call to New_Line with
+a spacing equal to (To - 1).
 
 (2) Add
 
-Status_Error is raised if File is not open.
+Status_Error is propagated if the file is not open.
 
-to A.10.7(8/1), A.10.7(10), A.10.7(12) before the sentence starting "Mode_Error is
-raised..."
+to A.10.7(8/1), A.10.7(10), and A.10.7(12) before the sentence starting "Mode_Error
+is raised..."
 
 (3) Change A.10.8(10) to:
 
 The exception Data_Error is propagated if the sequence of characters read does not
 form a legal integer literal or if the value obtained is not of the subtype Num.
 
+Delete A.10.8(24).
+
 !discussion
 
 (1) This error even appears in Ada 83. Clearly, Set_Line(1) should just call New_Page if
@@ -70,7 +74,7 @@
 (2) We could fix this two ways, either by adding the missing rule to A.10.7(8/1),
 A.10.7(10), and A.10.7(12), or by changing A.10.6(9).
 
-Note that A.10.6(9) also covers Mode_Error, and it was not changed for to cover these
+Note that A.10.6(9) also covers Mode_Error, and it was not changed to cover these
 routines, either: the rule was added to each of the routines. Thus, we conclude it
 was intended to specify the rule in the definition of these routines, rather than
 changing the blanket definition.
@@ -80,13 +84,99 @@
 Put (as it would raise Constraint_Error), so there is little reason to be able to
 read it.
 
+Finally, Get from a string always raises Data_Error when the value is outside of the
+subtype; it is bizarre that the file version of Get is different.
+
 [Editor's note: I did a bit of research on this to figure out when/why it was changed.
-Interestingly, RM9X 3.0 has the wording that we're going to switch to verbatium. It was
+Interestingly, RM9X 3.0 has the wording that we're going to switch to verbatim. It was
 changed in RM9x 4.0 to the current wording without explanation. Thus the rule is clearly
 intentional, but what the author was thinking is lost to the mists of time.]
+
+The note A.10.8(24) gives bounds that match neither the original Standard wording nor
+the proposed replacement wording. It is not worth preserving.
 
---!corrigendum A.18.2(239/2)
+!corrigendum A.10.5(37)
 
+@drepl
+@xbullet<If the value specified by To is greater than the current line number,
+has the effect of repeatedly calling New_Line (with a spacing of one), until
+the current line number equals the specified value. If the value specified by
+To is equal to the current line number, there is no effect. If the value specified
+by To is less than the current line number, has the effect of calling New_Page
+followed by a call of New_Line with a spacing equal to (To  1).>
+@dby
+@xbullet<If the value specified by To is greater than the current line number,
+has the effect of repeatedly calling New_Line (with a spacing of one), until
+the current line number equals the specified value. If the value specified by
+To is equal to the current line number, there is no effect. If the value specified
+by To is less than the current line number, has the effect of calling New_Page
+followed, if To is greater than 1, by a call of New_Line with a spacing equal
+to (To  1).>
+
+!corrigendum A.10.7(8/1)
+
+@drepl
+@xindent<Mode_Error is propagated if the mode of the file is not In_File. Sets End_Of_Line
+to True if at end of line, including if at end of page or at end of file; in each
+of these cases the value of Item is not specified. Otherwise End_Of_Line is set
+to False and Item is set to the the next character (without consuming it) from
+the file.>
+@dby
+@xindent<Status_Error is propagated if the file is not open. Mode_Error is
+propagated if the mode of the file is not In_File. Sets End_Of_Line
+to True if at end of line, including if at end of page or at end of file; in each
+of these cases the value of Item is not specified. Otherwise End_Of_Line is set
+to False and Item is set to the the next character (without consuming it) from
+the file.>
+
+!corrigendum A.10.7(10)
+
+@drepl
+@xindent<Reads the next character, either control or graphic, from the specified File
+or the default input file. Mode_Error is propagated if the mode of the file
+is not In_File. End_Error is propagated if at the end of the file. The
+current column, line and page numbers for the file are not affected.>
+@dby
+@xindent<Reads the next character, either control or graphic, from the specified File
+or the default input file. Status_Error is propagated if the file is not open.
+Mode_Error is propagated if the mode of the file
+is not In_File. End_Error is propagated if at the end of the file. The
+current column, line and page numbers for the file are not affected.>
+
+!corrigendum A.10.7(12)
+
+@drepl
+@xindent<If a character, either control or graphic, is available from the specified File
+or the default input file, then the character is read; Available is True and Item
+contains the value of this character. If a character is not available, then
+Available is False and the value of Item is not specified. Mode_Error is propagated
+if the mode of the file is not In_File. End_Error is propagated if at the end of
+the file. The current column, line and page numbers for the file are not affected.>
+@dby
+@xindent<If a character, either control or graphic, is available from the specified File
+or the default input file, then the character is read; Available is True and Item
+contains the value of this character. If a character is not available, then
+Available is False and the value of Item is not specified. Status_Error is
+propagated if the file is not open. Mode_Error is propagated
+if the mode of the file is not In_File. End_Error is propagated if at the end of
+the file. The current column, line and page numbers for the file are not affected.>
+
+!corrigendum A.10.8(10)
+
+@drepl
+The exception Data_Error is propagated if the sequence of characters read does
+not form a legal integer literal or if the value obtained is not of the
+subtype Num (for Integer_IO) or is not in the base range of Num (for Modular_IO).
+@dby
+The exception Data_Error is propagated if the sequence of characters read does
+not form a legal integer literal or if the value obtained is not of the
+subtype Num.
+
+!corrigendum A.10.8(24)
+
+@ddel
+@s9<30  For Modular_IO, execution of Get propagates Data_Error if the sequence of
+characters read forms an integer literal outside the range 0..Num'Last.>
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent