diff options
author | Pascal Obry <obry@adacore.com> | 2014-07-18 10:57:47 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-07-18 12:57:47 +0200 |
commit | cd077efd33fc56016b9bea8f30964fb93a40ff3a (patch) | |
tree | 948305f1acf26a8531b54d326b0c4ae0fcb653ff /gcc | |
parent | 18f2c4608d3bd85f19aef3068357f1c8fbe098b5 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ada/a-textio.adb | 6 | ||||
-rw-r--r-- | gcc/ada/a-witeio.adb | 14 | ||||
-rw-r--r-- | gcc/ada/a-ztexio.adb | 6 | ||||
-rw-r--r-- | gcc/ada/i-cstrea.ads | 36 | ||||
-rw-r--r-- | gcc/ada/s-ficobl.ads | 21 | ||||
-rw-r--r-- | gcc/ada/s-fileio.adb | 2 |
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 |