Mercurial > octave
changeset 27748:5fc630696dc7
Compare locale charset name in lower case (bug #57304).
* input.cc (file_reader::get_input): Transform locale encoding name to lower
case.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Tue, 26 Nov 2019 20:28:28 +0100 |
parents | 7ae72862b542 |
children | b3ad1b9417c0 |
files | libinterp/corefcn/input.cc |
diffstat | 1 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/input.cc Tue Nov 26 13:57:43 2019 +0100 +++ b/libinterp/corefcn/input.cc Tue Nov 26 20:28:28 2019 +0100 @@ -31,6 +31,7 @@ #include <cstring> #include <cassert> +#include <algorithm> #include <iostream> #include <sstream> #include <string> @@ -861,9 +862,16 @@ std::string mfile_encoding = input_sys.mfile_encoding (); - std::string encoding - = (mfile_encoding.compare ("system") == 0 - ? octave_locale_charset_wrapper () : mfile_encoding); + std::string encoding; + if (mfile_encoding.compare ("system") == 0) + { + encoding = octave_locale_charset_wrapper (); + // encoding identifiers should consist of ASCII only characters + std::transform (encoding.begin (), encoding.end (), encoding.begin (), + ::tolower); + } + else + encoding = mfile_encoding; if (encoding.compare ("utf-8") == 0) {