Mercurial > octave
changeset 24620:f5ad5d6f16fd
Deprecate toascii function
* scripts/deprecated/toascii.m: New m-file to emit warning and
compute toascii which was previously a C++ function.
* scripts/deprecated/module.mk: Add toascii.m to build system.
* NEWS: Anounce deprecation and replacement functionality in double().
* strings.txi: Remove DOCSTRING entry. Change instances of "toascii"
to "double" in manual.
* Cell.h (xtoascii): Delete.
* mappers.cc (Ftoascii): Delete function. Replace all uses of toascii
with double in other string function BIST tests.
* ov-base-sparse.cc (map): Delete case for umap_xtoascii.
* ov-base.cc (get_umap_name): Remove "toascii" from list of umap names.
* ov-base.h (enum unary_mapper_t): Remove umap_xtoascii from enum.
* ov-cell.cc (map): Remove FORWARD_MAPPER (xtoascii).
* ov-ch-mat.cc (xtoascii): Delete function.
* ov-float.cc (map), ov-flt-re-mat.cc (map), ov-re-mat.cc (map),
ov-scalar.cc (map): Delete case for umap_xtoascii.
* ov.h: Remove MAPPER_FORWARD (xtoascii)
author | Rik <rik@octave.org> |
---|---|
date | Fri, 19 Jan 2018 10:17:36 -0800 |
parents | c241918d4c92 |
children | 2bb3f3de0b4e |
files | NEWS doc/interpreter/strings.txi libinterp/corefcn/Cell.h libinterp/corefcn/mappers.cc libinterp/octave-value/ov-base-sparse.cc libinterp/octave-value/ov-base.cc libinterp/octave-value/ov-base.h libinterp/octave-value/ov-cell.cc libinterp/octave-value/ov-ch-mat.cc libinterp/octave-value/ov-float.cc libinterp/octave-value/ov-flt-re-mat.cc libinterp/octave-value/ov-re-mat.cc libinterp/octave-value/ov-scalar.cc libinterp/octave-value/ov.h scripts/deprecated/module.mk scripts/deprecated/toascii.m |
diffstat | 16 files changed, 89 insertions(+), 73 deletions(-) [+] |
line wrap: on
line diff
--- a/NEWS Fri Jan 19 08:09:21 2018 -0800 +++ b/NEWS Fri Jan 19 10:17:36 2018 -0800 @@ -266,6 +266,7 @@ ---------------------|------------------ chop | sprintf for visual results desktop | isguirunning + toascii | double ** The following functions were deprecated in Octave 4.0 and have been removed from Octave 4.4.
--- a/doc/interpreter/strings.txi Fri Jan 19 08:09:21 2018 -0800 +++ b/doc/interpreter/strings.txi Fri Jan 19 10:17:36 2018 -0800 @@ -74,9 +74,9 @@ @example @group -toascii ("\n") +double ("\n") @result{} 10 -toascii ('\n') +double ('\n') @result{} [ 92 110 ] @end group @end example @@ -504,8 +504,6 @@ @DOCSTRING(str2num) -@DOCSTRING(toascii) - @DOCSTRING(tolower) @DOCSTRING(toupper)
--- a/libinterp/corefcn/Cell.h Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/corefcn/Cell.h Fri Jan 19 10:17:36 2018 -0800 @@ -149,7 +149,6 @@ Cell xisspace (void) const { return map (&octave_value::xisspace); } Cell xisupper (void) const { return map (&octave_value::xisupper); } Cell xisxdigit (void) const { return map (&octave_value::xisxdigit); } - Cell xtoascii (void) const { return map (&octave_value::xtoascii); } Cell xtolower (void) const { return map (&octave_value::xtolower); } Cell xtoupper (void) const { return map (&octave_value::xtoupper); }
--- a/libinterp/corefcn/mappers.cc Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/corefcn/mappers.cc Fri Jan 19 10:17:36 2018 -0800 @@ -1210,9 +1210,9 @@ %!test %! charset = char (0:127); %! result = false (1, 128); -%! result(toascii ("A":"Z") + 1) = true; -%! result(toascii ("0":"9") + 1) = true; -%! result(toascii ("a":"z") + 1) = true; +%! result(double ("A":"Z") + 1) = true; +%! result(double ("0":"9") + 1) = true; +%! result(double ("a":"z") + 1) = true; %! assert (isalnum (charset), result); %!error isalnum () @@ -1239,8 +1239,8 @@ %!test %! charset = char (0:127); %! result = false (1, 128); -%! result(toascii ("A":"Z") + 1) = true; -%! result(toascii ("a":"z") + 1) = true; +%! result(double ("A":"Z") + 1) = true; +%! result(double ("a":"z") + 1) = true; %! assert (isalpha (charset), result); %!error isalpha () @@ -1315,7 +1315,7 @@ %!test %! charset = char (0:127); %! result = false (1, 128); -%! result(toascii ("0":"9") + 1) = true; +%! result(double ("0":"9") + 1) = true; %! assert (isdigit (charset), result); %!error isdigit () @@ -1406,7 +1406,7 @@ %!test %! charset = char (0:127); %! result = false (1, 128); -%! result(toascii ("a":"z") + 1) = true; +%! result(double ("a":"z") + 1) = true; %! assert (islower (charset), result); %!error islower () @@ -1566,7 +1566,7 @@ %!test %! charset = char (0:127); %! result = false (1, 128); -%! result(toascii (" \f\n\r\t\v") + 1) = true; +%! result(double (" \f\n\r\t\v") + 1) = true; %! assert (isspace (charset), result); %!error isspace () @@ -1591,7 +1591,7 @@ %!test %! charset = char (0:127); %! result = false (1, 128); -%! result(toascii ("A":"Z") + 1) = true; +%! result(double ("A":"Z") + 1) = true; %! assert (isupper (charset), result); %!error isupper () @@ -1616,9 +1616,9 @@ %!test %! charset = char (0:127); %! result = false (1, 128); -%! result(toascii ("A":"F") + 1) = true; -%! result(toascii ("0":"9") + 1) = true; -%! result(toascii ("a":"f") + 1) = true; +%! result(double ("A":"F") + 1) = true; +%! result(double ("0":"9") + 1) = true; +%! result(double ("a":"f") + 1) = true; %! assert (isxdigit (charset), result); %!error isxdigit () @@ -2106,41 +2106,6 @@ %!error tanh (1, 2) */ -DEFUNX ("toascii", Ftoascii, args, , - doc: /* -*- texinfo -*- -@deftypefn {} {} toascii (@var{s}) -Return ASCII representation of @var{s} in a matrix. - -For example: - -@example -@group -toascii ("ASCII") - @result{} [ 65, 83, 67, 73, 73 ] -@end group - -@end example -@seealso{char} -@end deftypefn */) -{ - if (args.length () != 1) - print_usage (); - - return ovl (args(0).xtoascii ()); -} - -/* -%!assert (toascii (char (0:127)), 0:127) -%!assert (toascii (" ":"@"), 32:64) -%!assert (toascii ("A":"Z"), 65:90) -%!assert (toascii ("[":"`"), 91:96) -%!assert (toascii ("a":"z"), 97:122) -%!assert (toascii ("{":"~"), 123:126) - -%!error toascii () -%!error toascii (1, 2) -*/ - DEFUNX ("tolower", Ftolower, args, , doc: /* -*- texinfo -*- @deftypefn {} {} tolower (@var{s}) @@ -2197,7 +2162,7 @@ %!test %! charset = char (0:127); %! result = charset; -%! result (toascii ("A":"Z") + 1) = result (toascii ("a":"z") + 1); +%! result (double ("A":"Z") + 1) = result (double ("a":"z") + 1); %! assert (tolower (charset), result); %!error <Invalid call to tolower> lower () @@ -2261,7 +2226,7 @@ %!test %! charset = char (0:127); %! result = charset; -%! result (toascii ("a":"z") + 1) = result (toascii ("A":"Z") + 1); +%! result (double ("a":"z") + 1) = result (double ("A":"Z") + 1); %! assert (toupper (charset), result); %!error <Invalid call to toupper> toupper ()
--- a/libinterp/octave-value/ov-base-sparse.cc Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/octave-value/ov-base-sparse.cc Fri Jan 19 10:17:36 2018 -0800 @@ -511,7 +511,6 @@ case umap_xisspace: case umap_xisupper: case umap_xisxdigit: - case umap_xtoascii: // FIXME: intentionally skip this step for string mappers. // Is this wanted? break;
--- a/libinterp/octave-value/ov-base.cc Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/octave-value/ov-base.cc Fri Jan 19 10:17:36 2018 -0800 @@ -1076,7 +1076,6 @@ "isupper", "isxdigit", "signbit", - "toascii", "tolower", "toupper" };
--- a/libinterp/octave-value/ov-base.h Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/octave-value/ov-base.h Fri Jan 19 10:17:36 2018 -0800 @@ -778,7 +778,6 @@ umap_xisupper, umap_xisxdigit, umap_xsignbit, - umap_xtoascii, umap_xtolower, umap_xtoupper, umap_unknown,
--- a/libinterp/octave-value/ov-cell.cc Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/octave-value/ov-cell.cc Fri Jan 19 10:17:36 2018 -0800 @@ -1429,7 +1429,6 @@ FORWARD_MAPPER (xisspace); FORWARD_MAPPER (xisupper); FORWARD_MAPPER (xisxdigit); - FORWARD_MAPPER (xtoascii); FORWARD_MAPPER (xtolower); FORWARD_MAPPER (xtoupper);
--- a/libinterp/octave-value/ov-ch-mat.cc Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/octave-value/ov-ch-mat.cc Fri Jan 19 10:17:36 2018 -0800 @@ -247,15 +247,6 @@ #endif } -static inline int xtoascii (int c) -{ -#if defined (HAVE_TOASCII) - return toascii (c); -#else - return (c & 0x7F); -#endif -} - octave_value octave_char_matrix::map (unary_mapper_t umap) const { @@ -279,7 +270,6 @@ STRING_MAPPER (xisspace, std::isspace, bool); STRING_MAPPER (xisupper, std::isupper, bool); STRING_MAPPER (xisxdigit, std::isxdigit, bool); - STRING_MAPPER (xtoascii, xtoascii, double); STRING_MAPPER (xtolower, std::tolower, char); STRING_MAPPER (xtoupper, std::toupper, char);
--- a/libinterp/octave-value/ov-float.cc Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/octave-value/ov-float.cc Fri Jan 19 10:17:36 2018 -0800 @@ -419,7 +419,6 @@ case umap_xisspace: case umap_xisupper: case umap_xisxdigit: - case umap_xtoascii: { octave_value str_conv = convert_to_str (true, true); return str_conv.map (umap);
--- a/libinterp/octave-value/ov-flt-re-mat.cc Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/octave-value/ov-flt-re-mat.cc Fri Jan 19 10:17:36 2018 -0800 @@ -856,7 +856,6 @@ case umap_xisspace: case umap_xisupper: case umap_xisxdigit: - case umap_xtoascii: { octave_value str_conv = convert_to_str (true, true); return str_conv.map (umap);
--- a/libinterp/octave-value/ov-re-mat.cc Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/octave-value/ov-re-mat.cc Fri Jan 19 10:17:36 2018 -0800 @@ -982,7 +982,6 @@ case umap_xisspace: case umap_xisupper: case umap_xisxdigit: - case umap_xtoascii: { octave_value str_conv = convert_to_str (true, true); return str_conv.map (umap);
--- a/libinterp/octave-value/ov-scalar.cc Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/octave-value/ov-scalar.cc Fri Jan 19 10:17:36 2018 -0800 @@ -440,7 +440,6 @@ case umap_xisspace: case umap_xisupper: case umap_xisxdigit: - case umap_xtoascii: { octave_value str_conv = convert_to_str (true, true); return str_conv.map (umap);
--- a/libinterp/octave-value/ov.h Fri Jan 19 08:09:21 2018 -0800 +++ b/libinterp/octave-value/ov.h Fri Jan 19 10:17:36 2018 -0800 @@ -1456,7 +1456,6 @@ MAPPER_FORWARD (xisupper) MAPPER_FORWARD (xisxdigit) MAPPER_FORWARD (xsignbit) - MAPPER_FORWARD (xtoascii) MAPPER_FORWARD (xtolower) MAPPER_FORWARD (xtoupper)
--- a/scripts/deprecated/module.mk Fri Jan 19 08:09:21 2018 -0800 +++ b/scripts/deprecated/module.mk Fri Jan 19 10:17:36 2018 -0800 @@ -13,6 +13,7 @@ %reldir%/paren.m \ %reldir%/semicolon.m \ %reldir%/sleep.m \ + %reldir%/toascii.m \ %reldir%/usleep.m \ %reldir%/wavread.m \ %reldir%/wavwrite.m
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/deprecated/toascii.m Fri Jan 19 10:17:36 2018 -0800 @@ -0,0 +1,71 @@ +## Copyright (C) 2018 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software: you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## <https://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {} {} toascii (@var{s}) +## +## @code{toascii} is deprecated and will be removed in Octave version 4.8. +## Use @code{double} instead. +## +## Return ASCII representation of @var{s} in a matrix. +## +## For example: +## +## @example +## @group +## toascii ("ASCII" +## @result{} [ 65, 83, 67, 73, 73 ] +## @end group +## +## @end example +## @seealso{double, char} +## @end deftypefn + +## Remove in version 4.8. + +function retval = toascii (str) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "toascii is obsolete and will be removed from a future version of Octave, please use double instead"); + endif + + if (nargin != 1) + print_usage (); + endif + + if (iscell (str)) + retval = cellfun (@(x) bitand (double (x), 0x7F), str, "uniformoutput", 0); + else + retval = bitand (double (str), 0x7F); # Restrict to 7-bit ASCII + endif + +endfunction + + +%!assert (toascii (char (0:127)), 0:127) +%!assert (toascii (" ":"@"), 32:64) +%!assert (toascii ("A":"Z"), 65:90) +%!assert (toascii ("[":"`"), 91:96) +%!assert (toascii ("a":"z"), 97:122) +%!assert (toascii ("{":"~"), 123:126) + +%!error toascii () +%!error toascii (1, 2)