Mercurial > octave
diff libinterp/corefcn/oct-strstrm.h @ 26703:29ea2369971d
Add basic backend for encodings in file streams (bug #55452).
* oct-stream.h (base_stream): Store encoding in class.
* oct-stream.cc (do_scanf_conv): Convert strings from encoding.
(do_printf_string): Convert strings to encoding.
(base_stream::printf): Convert format string to encoding.
* oct-stdstrm.h (octave_stdiostream, octave_tstdiostream, octave_zstdiostream,
create): Pass encoding through to base_stream.
* oct-prcstrm.[cc,h] (octave_iprocstream, octave_oprocstream, create): Pass
encoding through to octave_stdiostream.
* oct-strstrm.[cc,h] (octave_istrstream, octave_ostrstream, create): Pass
encoding through to base_stream.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sat, 09 Feb 2019 16:43:11 +0100 |
parents | 00f796120a6d |
children | b0abae0bd94b |
line wrap: on
line diff
--- a/libinterp/corefcn/oct-strstrm.h Sat Feb 02 20:07:45 2019 +0100 +++ b/libinterp/corefcn/oct-strstrm.h Sat Feb 09 16:43:11 2019 +0100 @@ -37,8 +37,9 @@ octave_base_strstream (std::ios::openmode m = std::ios::out, octave::mach_info::float_format ff - = octave::mach_info::native_float_format ()) - : octave::base_stream (m, ff) { } + = octave::mach_info::native_float_format (), + const std::string& encoding = "utf-8") + : octave::base_stream (m, ff, encoding) { } // No copying! @@ -79,14 +80,16 @@ octave_istrstream (const char *data, std::ios::openmode arg_md = std::ios::out, octave::mach_info::float_format ff - = octave::mach_info::native_float_format ()) - : octave_base_strstream (arg_md, ff), is (data) { } + = octave::mach_info::native_float_format (), + const std::string& encoding = "utf-8") + : octave_base_strstream (arg_md, ff, encoding), is (data) { } octave_istrstream (const std::string& data, std::ios::openmode arg_md = std::ios::out, octave::mach_info::float_format ff - = octave::mach_info::native_float_format ()) - : octave_base_strstream (arg_md, ff), is (data) { } + = octave::mach_info::native_float_format (), + const std::string& encoding = "utf-8") + : octave_base_strstream (arg_md, ff, encoding), is (data) { } // No copying! @@ -104,12 +107,14 @@ static octave::stream create (const char *data, std::ios::openmode arg_md = std::ios::out, octave::mach_info::float_format ff - = octave::mach_info::native_float_format ()); + = octave::mach_info::native_float_format (), + const std::string& encoding = "utf-8"); static octave::stream create (const std::string& data, std::ios::openmode arg_md = std::ios::out, octave::mach_info::float_format ff - = octave::mach_info::native_float_format ()); + = octave::mach_info::native_float_format (), + const std::string& encoding = "utf-8"); // Return nonzero if EOF has been reached on this stream. @@ -139,8 +144,9 @@ octave_ostrstream (std::ios::openmode arg_md = std::ios::out, octave::mach_info::float_format ff - = octave::mach_info::native_float_format ()) - : octave_base_strstream (arg_md, ff), os () { } + = octave::mach_info::native_float_format (), + const std::string& encoding = "utf-8") + : octave_base_strstream (arg_md, ff, encoding), os () { } // No copying! @@ -157,7 +163,8 @@ static octave::stream create (std::ios::openmode arg_md = std::ios::out, octave::mach_info::float_format ff - = octave::mach_info::native_float_format ()); + = octave::mach_info::native_float_format (), + const std::string& encoding = "utf-8"); // Return nonzero if EOF has been reached on this stream.