summaryrefslogtreecommitdiff
path: root/gcc/ada/i-cstrea.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-06 09:23:12 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-06 09:23:12 +0000
commitb4fde0cf29d17f951cc51fe014d8fb877ab9f47f (patch)
tree6b7e25930e8254d2db9568b0aa6ac5b49373b92d /gcc/ada/i-cstrea.ads
parente9553e01b9b3f21919d925a3552f70cc0f25e435 (diff)
downloadgcc-b4fde0cf29d17f951cc51fe014d8fb877ab9f47f.tar.gz
2007-04-06 Pascal Obry <obry@adacore.com>
* i-cstrea.ads: (fopen): Add encoding parameter. (freopen): Idem. Change reference from a-sysdep.c to sysdep.c in comment. Update copyright notice. This set of patch add support for the encoding form parameter. * mingw32.h (S2WSU): New macro to convert from a string to a wide-string using the UTF-8 encoding. The S2WS macro supports now only standard 8bits encoding. (WS2SU): As above but converting from wide-sring to string. This is needed as it is necessary to have access to both versions in the runtime for the form parameter encoding support. This set of patch add support for the encoding form parameter. (S2WS): Improve implementation to handle cases where the filename is not UTF-8 encoded. In this case we default to using the current code page for the conversion. * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration type (UTF8, ASCII_8bits). This enumeration has a rep clause to match the constants defined in adaint.h. (fopen): Add encoding parameter. (freopen): Idem. * s-ficobl.ads (AFCB): Add Encoding field to record the filename encoding. This is needed for the Reset routine (freopen low level-call). * s-fileio.adb (Open): Decode encoding form parameter and set the corresponding encoding value into AFCB structure. (Reset): Pass the encoding value to freopen. (Close): Move the call to Lock_Task to the beginning of the procedure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123578 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/i-cstrea.ads')
-rw-r--r--gcc/ada/i-cstrea.ads26
1 files changed, 15 insertions, 11 deletions
diff --git a/gcc/ada/i-cstrea.ads b/gcc/ada/i-cstrea.ads
index a7a30b2d3c4..ac5e80f4500 100644
--- a/gcc/ada/i-cstrea.ads
+++ b/gcc/ada/i-cstrea.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2005, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2006, 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- --
@@ -105,10 +105,14 @@ package Interfaces.C_Streams is
function fileno (stream : FILEs) return int;
- function fopen (filename : chars; Mode : chars) return FILEs
+ function fopen
+ (filename : chars;
+ mode : chars;
+ encoding : System.CRTL.Filename_Encoding := System.CRTL.UTF8)
+ return FILEs
renames System.CRTL.fopen;
-- Note: to maintain target independence, use text_translation_required,
- -- a boolean variable defined in a-sysdep.c to deal with the target
+ -- a boolean variable defined in sysdep.c to deal with the target
-- dependent text translation requirement. If this variable is set,
-- then b/t should be appended to the standard mode argument to set
-- the text translation mode off or on as required.
@@ -140,14 +144,16 @@ package Interfaces.C_Streams is
function freopen
(filename : chars;
mode : chars;
- stream : FILEs)
- return FILEs renames System.CRTL.freopen;
+ stream : FILEs;
+ encoding : System.CRTL.Filename_Encoding := System.CRTL.UTF8)
+ return FILEs
+ renames System.CRTL.freopen;
function fseek
(stream : FILEs;
offset : long;
- origin : int)
- return int renames System.CRTL.fseek;
+ origin : int) return int
+ renames System.CRTL.fseek;
function ftell (stream : FILEs) return long
renames System.CRTL.ftell;
@@ -156,8 +162,7 @@ package Interfaces.C_Streams is
(buffer : voids;
size : size_t;
count : size_t;
- stream : FILEs)
- return size_t;
+ stream : FILEs) return size_t;
function isatty (handle : int) return int renames System.CRTL.isatty;
@@ -170,8 +175,7 @@ package Interfaces.C_Streams is
(stream : FILEs;
buffer : chars;
mode : int;
- size : size_t)
- return int;
+ size : size_t) return int;
procedure tmpnam (string : chars) renames System.CRTL.tmpnam;
-- The parameter must be a pointer to a string buffer of at least L_tmpnam