summaryrefslogtreecommitdiff
path: root/gcc/ada/a-witeio.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-03-26 07:54:59 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-03-26 07:54:59 +0000
commit912b6e79ff9d98ac429c290119768bf73f9e1b10 (patch)
tree5e7403a58d932936e5575bea7c31af6e0f21e639 /gcc/ada/a-witeio.adb
parent10f9d4c155aabef6b08c49e252153fc2afe215e8 (diff)
downloadgcc-912b6e79ff9d98ac429c290119768bf73f9e1b10.tar.gz
* a-witeio.adb: Fix problem with Current_Output (introduce Self).
Fix problem of status check for null file git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133591 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/a-witeio.adb')
-rw-r--r--gcc/ada/a-witeio.adb36
1 files changed, 23 insertions, 13 deletions
diff --git a/gcc/ada/a-witeio.adb b/gcc/ada/a-witeio.adb
index 64e1988e83f..86a37b6fbe8 100644
--- a/gcc/ada/a-witeio.adb
+++ b/gcc/ada/a-witeio.adb
@@ -180,6 +180,8 @@ package body Ada.Wide_Text_IO is
Amethod => 'W',
Creat => True,
Text => True);
+
+ File.Self := File;
Set_WCEM (File);
end Create;
@@ -194,7 +196,7 @@ package body Ada.Wide_Text_IO is
function Current_Error return File_Access is
begin
- return Current_Err'Access;
+ return Current_Err.Self'Access;
end Current_Error;
-------------------
@@ -208,7 +210,7 @@ package body Ada.Wide_Text_IO is
function Current_Input return File_Access is
begin
- return Current_In'Access;
+ return Current_In.Self'Access;
end Current_Input;
--------------------
@@ -222,7 +224,7 @@ package body Ada.Wide_Text_IO is
function Current_Output return File_Access is
begin
- return Current_Out'Access;
+ return Current_Out.Self'Access;
end Current_Output;
------------
@@ -754,6 +756,7 @@ package body Ada.Wide_Text_IO is
-- Start of processing for Get_Wide_Char
begin
+ FIO.Check_Read_Status (AP (File));
return WC_In (C, File.WC_Method);
end Get_Wide_Char;
@@ -788,6 +791,7 @@ package body Ada.Wide_Text_IO is
-- Start of processing for Get_Wide_Char_Immed
begin
+ FIO.Check_Read_Status (AP (File));
return WC_In (C, File.WC_Method);
end Get_Wide_Char_Immed;
@@ -1089,6 +1093,8 @@ package body Ada.Wide_Text_IO is
Amethod => 'W',
Creat => False,
Text => True);
+
+ File.Self := File;
Set_WCEM (File);
end Open;
@@ -1151,6 +1157,7 @@ package body Ada.Wide_Text_IO is
-- Start of processing for Put
begin
+ FIO.Check_Write_Status (AP (File));
WC_Out (Item, File.WC_Method);
File.Col := File.Col + 1;
end Put;
@@ -1869,18 +1876,20 @@ begin
Standard_Err.Is_System_File := True;
Standard_Err.Is_Text_File := True;
Standard_Err.Access_Method := 'T';
+ Standard_Err.Self := Standard_Err;
Standard_Err.WC_Method := Default_WCEM;
- Standard_In.Stream := stdin;
- Standard_In.Name := In_Name'Access;
- Standard_In.Form := Null_Str'Unrestricted_Access;
- Standard_In.Mode := FCB.In_File;
- 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.Is_Text_File := True;
- Standard_In.Access_Method := 'T';
- Standard_In.WC_Method := Default_WCEM;
+ Standard_In.Stream := stdin;
+ Standard_In.Name := In_Name'Access;
+ Standard_In.Form := Null_Str'Unrestricted_Access;
+ Standard_In.Mode := FCB.In_File;
+ 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.Is_Text_File := True;
+ Standard_In.Access_Method := 'T';
+ Standard_In.Self := Standard_In;
+ Standard_In.WC_Method := Default_WCEM;
Standard_Out.Stream := stdout;
Standard_Out.Name := Out_Name'Access;
@@ -1891,6 +1900,7 @@ begin
Standard_Out.Is_System_File := True;
Standard_Out.Is_Text_File := True;
Standard_Out.Access_Method := 'T';
+ Standard_Out.Self := Standard_Out;
Standard_Out.WC_Method := Default_WCEM;
FIO.Chain_File (AP (Standard_In));