2014-07-18 Robert Dewar <dewar@adacore.com>
+ * gnat_rm.texi: Remove mention of obsolete attributes
+ Max[_Interrupt]_Priority, which have never been implemented
+ (or at the very least were removed long ago if they ever were
+ implemented. Add documentation of Max[_Interrupt]_Priority
+ constants in package System.
+ * ttypes.ads: Document actual handling of package System,
+ rather than a historical fantasy version. Remove mention of
+ non-existent attributes Max[_Interrupt]_Priority.
+
+2014-07-18 Pascal Obry <obry@adacore.com>
+
+ * a-witeio.adb (Put): No 16-bit character output when text
+ translation is disabled.
+ * i-cstrea.ads: Code clean up.
+2014-07-18 Robert Dewar <dewar@adacore.com>
+
* gnat_rm.texi: Document that Wchar_T_Size and Word_Size are
static attributes.
FIO.Check_Write_Status (AP (File));
if wide_text_translation_required /= 0
- or else File.Text_Encoding /= Default_Text
+ or else File.Text_Encoding in Non_Default_Text_Content_Encoding
then
set_mode (fileno (File.Stream), File.Text_Encoding);
Discard := fputwc (Wide_Character'Pos (Item), File.Stream);
* Attribute Loop_Entry::
* Attribute Machine_Size::
* Attribute Mantissa::
-* Attribute Max_Interrupt_Priority::
-* Attribute Max_Priority::
* Attribute Maximum_Alignment::
* Attribute Mechanism_Code::
* Attribute Null_Parameter::
* Attribute Loop_Entry::
* Attribute Machine_Size::
* Attribute Mantissa::
-* Attribute Max_Interrupt_Priority::
-* Attribute Max_Priority::
* Attribute Maximum_Alignment::
* Attribute Mechanism_Code::
* Attribute Null_Parameter::
the Ada 83 reference manual for an exact description of the semantics of
this attribute.
-@node Attribute Max_Interrupt_Priority
-@unnumberedsec Attribute Max_Interrupt_Priority
-@cindex Interrupt priority, maximum
-@findex Max_Interrupt_Priority
-@noindent
-@code{Standard'Max_Interrupt_Priority} (@code{Standard} is the only
-permissible prefix), provides the same value as
-@code{System.Max_Interrupt_Priority}.
-
-@node Attribute Max_Priority
-@unnumberedsec Attribute Max_Priority
-@cindex Priority, maximum
-@findex Max_Priority
-@noindent
-@code{Standard'Max_Priority} (@code{Standard} is the only permissible
-prefix) provides the same value as @code{System.Max_Priority}.
-
@node Attribute Maximum_Alignment
@unnumberedsec Attribute Maximum_Alignment
@cindex Alignment, maximum
@end cartouche
@noindent
See the definition of these packages in files @file{system.ads} and
-@file{s-stoele.ads}.
+@file{s-stoele.ads}. Note that two declarations are added to package
+System.
+
+@smallexample @c ada
+ Max_Priority : constant Positive :=
+ Priority'Last;
+ Max_Interrupt_Priority : constant Positive :=
+ Interrupt_Priority'Last;
+@end smallexample
@sp 1
@item
--
-- This encoding is system dependent and only used on Windows systems.
--
- -- Note that modifications to Content_Encoding must be synchronized
- -- with sysdep.c:__gnat_set_mode.
+ -- Note that modifications to Content_Encoding must be synchronized with
+ -- sysdep.c:__gnat_set_mode.
subtype Text_Content_Encoding
is Content_Encoding range Default_Text .. U16text;
+ subtype Non_Default_Text_Content_Encoding
+ is Content_Encoding range Text .. U16text;
+
procedure set_mode (handle : int; Mode : Content_Encoding);
- -- As above but can set the handle to any mode.
- -- On Windows this can be used to have proper 16-bit wide-string output
- -- on the console for example.
+ -- As above but can set the handle to any mode. On Windows this can be used
+ -- to have proper 16-bit wide-string output on the console for example.
----------------------------
-- Full Path Name support --
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2014, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- values needed in Stand are obtained by direct reference to Ttypes
-- and Ttypef.
- -- For package System, the required constant values are obtained by
- -- referencing appropriate attributes. Ada 95 already defines most of
- -- the required attributes, and GNAT specific attributes have been
- -- defined to cover the remaining cases (such as Storage_Unit). The
- -- evaluation of these attributes obtains the required target dependent
- -- values from Ttypes and Ttypef. The additional attributes that have
- -- been added to GNAT (Address_Size, Storage_Unit, Word_Size, Max_Priority,
- -- and Max_Interrupt_Priority) are for almost all purposes redundant with
- -- respect to the corresponding references to System constants. For example
- -- in a program, System.Address_Size and Standard'Address_Size yield the
- -- same value. The critical use of the attribute is in writing the System
- -- declaration of Address_Size which of course cannot refer to itself. By
- -- this means we achieve complete target independence in the source code
- -- of package System, i.e. there is only one copy of the source of System
- -- for all targets.
+ -- For package System, there is a separate version for each target, with
+ -- explicit declarations of the required, constants.
+
+ -- Historical note: Originally we had in mind dealing with target dependent
+ -- differences by referencing appropriate attributes. Ada 95 already
+ -- defines most of the required attributes, and GNAT specific attributes
+ -- were defined to cover the remaining cases (such as Storage_Unit).
+ -- The additional attributes that have been added to GNAT (Address_Size,
+ -- Storage_Unit, and Word_Size) are redundant with respect to the
+ -- corresponding references to System constants. For example in a program,
+ -- System.Address_Size and Standard'Address_Size yield the same value.
+ -- These attributes have been retained for compatibility purposes, but
+ -- serve no purpose at this stage.
-- Note that during compilation there are two versions of package System
-- around. The version that is directly with'ed by compiler packages