Mercurial > octave
changeset 27385:9a59876c1c4c
accept 'X' as scanf conversion specifier (bug #56869)
* oct-stream.cc (scanf_format_list::process_conversion,
scanf_format_list::all_numeric_conversions, octave_scan_1,
base_stream::do_scanf, base_stream::do_oscanf): Handle 'X' conversion
specifier the same as 'x'.
author | Mike Miller <mtmiller@octave.org> |
---|---|
date | Tue, 10 Sep 2019 15:44:01 -0700 |
parents | 918a3df652c3 |
children | 69dc24383358 |
files | libinterp/corefcn/oct-stream.cc |
diffstat | 1 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/oct-stream.cc Tue Sep 10 15:54:39 2019 -0400 +++ b/libinterp/corefcn/oct-stream.cc Tue Sep 10 15:44:01 2019 -0700 @@ -521,7 +521,9 @@ modifier = s[i++]; break; + // We accept X for compatibility with undocumented Matlab behavior. case 'd': case 'i': case 'o': case 'u': case 'x': + case 'X': if (modifier == 'L') { nconv = -1; @@ -719,7 +721,7 @@ switch (elt->type) { - case 'd': case 'i': case 'o': case 'u': case 'x': + case 'd': case 'i': case 'o': case 'u': case 'x': case 'X': case 'e': case 'f': case 'g': case 'E': case 'G': break; @@ -4195,6 +4197,7 @@ break; case 'x': + case 'X': is >> std::hex >> value >> std::dec; break; @@ -4832,7 +4835,7 @@ } break; - case 'o': case 'u': case 'x': + case 'o': case 'u': case 'x': case 'X': { switch (elt->modifier) { @@ -5142,7 +5145,7 @@ } break; - case 'o': case 'u': case 'x': + case 'o': case 'u': case 'x': case 'X': { switch (elt->modifier) {