Mercurial > octave
changeset 27382:9354d33dfbc4
accept 'E' and 'G' as scanf conversion specifiers (bug #56869)
* oct-stream.cc (scanf_format_list::process_conversion,
scanf_format_list::all_numeric_conversions,
octave_scan<> (std::istream&, const scanf_format_elt&, double *)):
Handle 'E' and 'G' conversion specifiers the same as 'e' and 'g'.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 09 Sep 2019 18:48:40 -0400 |
parents | d4fdaeaab7f3 |
children | 44c72e41d468 |
files | libinterp/corefcn/oct-stream.cc |
diffstat | 1 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/oct-stream.cc Mon Sep 09 16:40:08 2019 -0400 +++ b/libinterp/corefcn/oct-stream.cc Mon Sep 09 18:48:40 2019 -0400 @@ -529,7 +529,10 @@ } goto fini; + // We accept E and G for compatibility with undocumented + // Matlab behavior. case 'e': case 'f': case 'g': + case 'E': case 'G': if (modifier == 'h') { nconv = -1; @@ -717,7 +720,7 @@ switch (elt->type) { case 'd': case 'i': case 'o': case 'u': case 'x': - case 'e': case 'f': case 'g': + case 'e': case 'f': case 'g': case 'E': case 'G': break; default: @@ -4337,6 +4340,8 @@ case 'e': case 'f': case 'g': + case 'E': + case 'G': { int c1 = std::istream::traits_type::eof (); @@ -4862,6 +4867,7 @@ break; case 'e': case 'f': case 'g': + case 'E': case 'G': { double tmp; @@ -5183,6 +5189,7 @@ break; case 'e': case 'f': case 'g': + case 'E': case 'G': { double tmp;