aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPascal Obry <obry@adacore.com>2014-07-18 10:57:47 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2014-07-18 12:57:47 +0200
commitcd077efd33fc56016b9bea8f30964fb93a40ff3a (patch)
tree948305f1acf26a8531b54d326b0c4ae0fcb653ff /gcc
parent18f2c4608d3bd85f19aef3068357f1c8fbe098b5 (diff)
downloadgcc-cd077efd33fc56016b9bea8f30964fb93a40ff3a.zip
gcc-cd077efd33fc56016b9bea8f30964fb93a40ff3a.tar.gz
gcc-cd077efd33fc56016b9bea8f30964fb93a40ff3a.tar.bz2
a-textio.adb, [...]: Use C_Streams Default_Text.
2014-07-18 Pascal Obry <obry@adacore.com> * a-textio.adb, a-witeio.adb, a-ztexio.adb: Use C_Streams Default_Text. * i-cstrea.ads (Content_Encoding): Moved here, add convention C. * s-ficobl.ads (Content_Encoding): Moved to C_Streams. * s-fileio.adb (Open): Adjust to use Content_Encoding from C_Streams. From-SVN: r212811
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/a-textio.adb6
-rw-r--r--gcc/ada/a-witeio.adb14
-rw-r--r--gcc/ada/a-ztexio.adb6
-rw-r--r--gcc/ada/i-cstrea.ads36
-rw-r--r--gcc/ada/s-ficobl.ads21
-rw-r--r--gcc/ada/s-fileio.adb2
7 files changed, 45 insertions, 47 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 149e8bd..55e0b3f 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,12 @@
2014-07-18 Pascal Obry <obry@adacore.com>
+ * a-textio.adb, a-witeio.adb, a-ztexio.adb: Use C_Streams Default_Text.
+ * i-cstrea.ads (Content_Encoding): Moved here, add convention C.
+ * s-ficobl.ads (Content_Encoding): Moved to C_Streams.
+ * s-fileio.adb (Open): Adjust to use Content_Encoding from C_Streams.
+
+2014-07-18 Pascal Obry <obry@adacore.com>
+
* a-textio.adb: Rename Is_Text_File to Text_Encoding.
* a-ztexio.adb: Likewise.
* a-witeio.adb: Likewise.
diff --git a/gcc/ada/a-textio.adb b/gcc/ada/a-textio.adb
index 433d4ba..2ebec61 100644
--- a/gcc/ada/a-textio.adb
+++ b/gcc/ada/a-textio.adb
@@ -921,7 +921,7 @@ package body Ada.Text_IO is
Standard_Err.Is_Regular_File := is_regular_file (fileno (stderr)) /= 0;
Standard_Err.Is_Temporary_File := False;
Standard_Err.Is_System_File := True;
- Standard_Err.Text_Encoding := FCB.Default_Text;
+ Standard_Err.Text_Encoding := Default_Text;
Standard_Err.Access_Method := 'T';
Standard_Err.Self := Standard_Err;
Standard_Err.WC_Method := Default_WCEM;
@@ -933,7 +933,7 @@ package body Ada.Text_IO is
Standard_In.Is_Regular_File := is_regular_file (fileno (stdin)) /= 0;
Standard_In.Is_Temporary_File := False;
Standard_In.Is_System_File := True;
- Standard_In.Text_Encoding := FCB.Default_Text;
+ Standard_In.Text_Encoding := Default_Text;
Standard_In.Access_Method := 'T';
Standard_In.Self := Standard_In;
Standard_In.WC_Method := Default_WCEM;
@@ -945,7 +945,7 @@ package body Ada.Text_IO is
Standard_Out.Is_Regular_File := is_regular_file (fileno (stdout)) /= 0;
Standard_Out.Is_Temporary_File := False;
Standard_Out.Is_System_File := True;
- Standard_Out.Text_Encoding := FCB.Default_Text;
+ Standard_Out.Text_Encoding := Default_Text;
Standard_Out.Access_Method := 'T';
Standard_Out.Self := Standard_Out;
Standard_Out.WC_Method := Default_WCEM;
diff --git a/gcc/ada/a-witeio.adb b/gcc/ada/a-witeio.adb
index 684f460..6e2ccf5 100644
--- a/gcc/ada/a-witeio.adb
+++ b/gcc/ada/a-witeio.adb
@@ -892,7 +892,7 @@ package body Ada.Wide_Text_IO is
Standard_Err.Is_Regular_File := is_regular_file (fileno (stderr)) /= 0;
Standard_Err.Is_Temporary_File := False;
Standard_Err.Is_System_File := True;
- Standard_Err.Text_Encoding := FCB.Default_Text;
+ Standard_Err.Text_Encoding := Default_Text;
Standard_Err.Access_Method := 'T';
Standard_Err.Self := Standard_Err;
Standard_Err.WC_Method := Default_WCEM;
@@ -904,7 +904,7 @@ package body Ada.Wide_Text_IO is
Standard_In.Is_Regular_File := is_regular_file (fileno (stdin)) /= 0;
Standard_In.Is_Temporary_File := False;
Standard_In.Is_System_File := True;
- Standard_In.Text_Encoding := FCB.Default_Text;
+ Standard_In.Text_Encoding := Default_Text;
Standard_In.Access_Method := 'T';
Standard_In.Self := Standard_In;
Standard_In.WC_Method := Default_WCEM;
@@ -916,7 +916,7 @@ package body Ada.Wide_Text_IO is
Standard_Out.Is_Regular_File := is_regular_file (fileno (stdout)) /= 0;
Standard_Out.Is_Temporary_File := False;
Standard_Out.Is_System_File := True;
- Standard_Out.Text_Encoding := FCB.Default_Text;
+ Standard_Out.Text_Encoding := Default_Text;
Standard_Out.Access_Method := 'T';
Standard_Out.Self := Standard_Out;
Standard_Out.WC_Method := Default_WCEM;
@@ -1227,8 +1227,6 @@ package body Ada.Wide_Text_IO is
(File : File_Type;
Item : Wide_Character)
is
- use type FCB.Content_Encoding;
-
wide_text_translation_required : Boolean;
for wide_text_translation_required'Size use Character'Size;
pragma Import (C, wide_text_translation_required,
@@ -1259,11 +1257,9 @@ package body Ada.Wide_Text_IO is
FIO.Check_Write_Status (AP (File));
if wide_text_translation_required
- or else File.Text_Encoding /= FCB.Default_Text
+ or else File.Text_Encoding /= Default_Text
then
- set_mode
- (fileno (File.Stream),
- FCB.Text_Content_Encoding'Pos (File.Text_Encoding));
+ set_mode (fileno (File.Stream), File.Text_Encoding);
Discard := fputwc (Wide_Character'Pos (Item), File.Stream);
else
WC_Out (Item, File.WC_Method);
diff --git a/gcc/ada/a-ztexio.adb b/gcc/ada/a-ztexio.adb
index 197a8ad..6102942 100644
--- a/gcc/ada/a-ztexio.adb
+++ b/gcc/ada/a-ztexio.adb
@@ -892,7 +892,7 @@ package body Ada.Wide_Wide_Text_IO is
Standard_Err.Is_Regular_File := is_regular_file (fileno (stderr)) /= 0;
Standard_Err.Is_Temporary_File := False;
Standard_Err.Is_System_File := True;
- Standard_Err.Text_Encoding := FCB.Default_Text;
+ Standard_Err.Text_Encoding := Default_Text;
Standard_Err.Access_Method := 'T';
Standard_Err.Self := Standard_Err;
Standard_Err.WC_Method := Default_WCEM;
@@ -904,7 +904,7 @@ package body Ada.Wide_Wide_Text_IO is
Standard_In.Is_Regular_File := is_regular_file (fileno (stdin)) /= 0;
Standard_In.Is_Temporary_File := False;
Standard_In.Is_System_File := True;
- Standard_In.Text_Encoding := FCB.Default_Text;
+ Standard_In.Text_Encoding := Default_Text;
Standard_In.Access_Method := 'T';
Standard_In.Self := Standard_In;
Standard_In.WC_Method := Default_WCEM;
@@ -916,7 +916,7 @@ package body Ada.Wide_Wide_Text_IO is
Standard_Out.Is_Regular_File := is_regular_file (fileno (stdout)) /= 0;
Standard_Out.Is_Temporary_File := False;
Standard_Out.Is_System_File := True;
- Standard_Out.Text_Encoding := FCB.Default_Text;
+ Standard_Out.Text_Encoding := Default_Text;
Standard_Out.Access_Method := 'T';
Standard_Out.Self := Standard_Out;
Standard_Out.WC_Method := Default_WCEM;
diff --git a/gcc/ada/i-cstrea.ads b/gcc/ada/i-cstrea.ads
index add85b3..674aa02 100644
--- a/gcc/ada/i-cstrea.ads
+++ b/gcc/ada/i-cstrea.ads
@@ -228,17 +228,31 @@ package Interfaces.C_Streams is
-- versa. These functions have no effect if text_translation_required is
-- false (e.g. in normal unix mode). Use fileno to get a stream handle.
- procedure set_mode (handle : int; Mode : int);
- -- 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. The
- -- mode value corresponds to Content_Encoding'Pos:
- -- 0 = binary, equivalent to set_binary_mode
- -- 1 = default mode, as set by the GNAT_CCS_ENCODING or equivalent to 2
- -- 2 = text, equivalent to set_text_mode
- -- 3 = u8text, set encoding to Unicode UTF-8
- -- 4 = wide-text, set encoding to Unicode
- -- 5 = u16text, set encoding to Unicode UTF-16
- -- Wouldn't it be better to use an enumeration type here???
+ type Content_Encoding is (None, Default_Text, Text, U8text, Wtext, U16text);
+ for Content_Encoding use (0, 1, 2, 3, 4, 5);
+ pragma Convention (C, Content_Encoding);
+ -- Content_Encoding describes the text encoding for file content:
+ -- None : No text encoding, this file is treated as a binary file
+ -- Default_Text : A text file but not from Text_Translation form string
+ -- In this mode we are eventually using the system-wide
+ -- translation if activated.
+ -- Text : Text encoding activated
+ -- Wtext : Unicode mode
+ -- U16text : Unicode UTF-16 encoding
+ -- U8text : Unicode UTF-8 encoding
+ --
+ -- 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.
+
+ subtype Text_Content_Encoding
+ is Content_Encoding range Default_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.
----------------------------
-- Full Path Name support --
diff --git a/gcc/ada/s-ficobl.ads b/gcc/ada/s-ficobl.ads
index e826ffa..047baca 100644
--- a/gcc/ada/s-ficobl.ads
+++ b/gcc/ada/s-ficobl.ads
@@ -78,25 +78,6 @@ package System.File_Control_Block is
-- stream with the semantics specified in the RM for file sharing. All
-- files opened with "shared=no" will have their own stream.
- type Content_Encoding is (None, Default_Text, Text, U8text, Wtext, U16text);
- -- Described the text encoding for file content:
- -- None : No text encoding, this file is treated as a binary file
- -- Default_Text : A text file but not from Text_Translation form string
- -- In this mode we are eventually using the system-wide
- -- translation if activated.
- -- Text : Text encoding activated
- -- Wtext : Unicode mode
- -- U16text : Unicode UTF-16 encoding
- -- U8text : Unicode UTF-8 encoding
- --
- -- 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.
-
- subtype Text_Content_Encoding
- is Content_Encoding range Default_Text .. U16text;
-
type AFCB is tagged;
type AFCB_Ptr is access all AFCB'Class;
@@ -135,7 +116,7 @@ package System.File_Control_Block is
Is_System_File : Boolean;
-- A flag set only for system files (stdin, stdout, stderr)
- Text_Encoding : Content_Encoding;
+ Text_Encoding : Interfaces.C_Streams.Content_Encoding;
-- A flag set to describe file content encoding
Shared_Status : Shared_Status_Type;
diff --git a/gcc/ada/s-fileio.adb b/gcc/ada/s-fileio.adb
index 627224f..8a9c9c1 100644
--- a/gcc/ada/s-fileio.adb
+++ b/gcc/ada/s-fileio.adb
@@ -1063,7 +1063,7 @@ package body System.File_IO is
elsif Formstr (V1 .. V2) = "text"
or else Formstr (V1 .. V2) = "yes"
then
- Text_Encoding := File_Control_Block.Text;
+ Text_Encoding := Interfaces.C_Streams.Text;
elsif Formstr (V1 .. V2) = "wtext" then
Text_Encoding := Wtext;
elsif Formstr (V1 .. V2) = "u8text" then