Mercurial > octave
changeset 28091:99a1f2ca574b
maint: merge stable to default
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 18 Feb 2020 08:01:55 -0500 |
parents | 9cb04a9e81ec (diff) 4ec1e15b3438 (current diff) |
children | dfb5149859e0 |
files | configure.ac |
diffstat | 42 files changed, 405 insertions(+), 1029 deletions(-) [+] |
line wrap: on
line diff
--- a/NEWS Mon Feb 17 17:00:44 2020 -0500 +++ b/NEWS Tue Feb 18 08:01:55 2020 -0500 @@ -1,239 +1,31 @@ -Summary of important user-visible changes for version 6 (yyyy-mm-dd): +Summary of important user-visible changes for version 7 (yyyy-mm-dd): ---------------------------------------------------------------------- ### General improvements -- The `intersect`, `setdiff`, `setxor`, `union`, and `unique` functions - accept a new sorting option `"stable"` which will return output values - in the same order as the input, rather than in ascending order. - -- Complex RESTful web services can now be accessed by the `webread` and - `webwrite` functions alongside with the `weboptions` structure. One - major feature is the support for cookies to enable RESTful - communication with the web service. - - Additionally, the system web browser can be opened by the `web` function. - -- The `linspace` function now produces symmetrical sequences when the - endpoints are symmetric. This is more intuitive and also compatible - with recent changes made in Matlab R2019b. - -- The underlying algorithm of the `rand` function has been changed. - For single precision outputs, the algorithm has been fixed so that it - produces values strictly in the range (0, 1). Previously, it could - occasionally generate the right endpoint value of 1 (See bug #41742). - In addition, the new implementation uses a uniform interval between - floating point values in the range (0, 1) rather than targeting a - uniform density (# of random integers / length along real number - line). - -- Numerical integration has been improved. The `quadv` function has - been re-written so that it can compute integrands of periodic - functions. At the same time, performance is better with ~3.5X fewer - function evaluations required. A bug in `quadgk` that caused complex - path integrals specified with `"Waypoints"` to occasionally be - calculated in the opposite direction was fixed. - -- The `edit` function option `"editinplace"` now defaults to `true` and - the option `"home"` now defaults to the empty matrix `[]`. Files will - no longer be copied to the user's HOME directory for editing. The old - behavior can be restored by setting `"editinplace"` to `false` and - `"home"` to `"~/octave"`. - -- The `format` command supports two new options: `uppercase` and - `lowercase` (default). With the default, print a lowercase 'e' for - the exponent character in scientific notation and lowercase 'a-f' for - the hex digits representing 10-15. With `uppercase`, print 'E' and - 'A-F' instead. The previous uppercase formats, `E` and `G`, no longer - control the case of the output. - - Additionally, the `format` command can be called with multiple options - for controlling the format, spacing, and case in arbitrary order. - For example: - - format long e uppercase loose - - Note, in the case of multiple competing format options the rightmost - one is used, and, in case of an error, the previous format remains - unchanged. - -- L-value references (e.g., increment (++), decrement (--), and all - in-place assignment operators (+=, -=, *=, /=, etc.)) are no longer - allowed in anonymous functions. - -- New warnings have been added about questionable uses of the colon ':' - range operator. Each has a new warning ID so that it can be disabled - if desired. - - > `Octave:colon-complex-argument` : when any arg is complex - > `Octave:colon-nonscalar-argument` : when any arg is non-scalar -- The `regexp` and related functions now correctly handle and *require* - strings in UTF-8 encoding. As with any other function that requires - strings to be encoded in Octave's native encoding, you can use - `native2unicode` to convert from your preferred locale. For example, - the copyright symbol in UTF-8 is `native2unicode (169, "latin1")`. - -- The startup file `octaverc` now can be located in the platform - dependent location for user local configuration files (e.g. - ${XDG_CONFIG_HOME}/octave/octaverc on Unix-like operating systems or - %APPDATA%\octave\octaverc on Windows). - -- `pkg describe` now lists dependencies and inverse dependencies - (i.e., other installed packages that depend on the package in - question). - -- When unloading a package, `pkg` now checks if any remaining loaded - packages depend on the one to be removed. If this is the case `pkg` - aborts with an explanatory error message. This behavior can be - overridden with the `-nodeps` option. - -#### Graphics backend - -- The use of Qt4 for graphics and the GUI is deprecated in Octave - version 6 and no further bug fixes will be made. Qt4 support will be - removed completely in Octave version 7. - -- The `legend` function has been entirely rewritten. This fixes a - number of historical bugs, but also implements new properties such as - `"AutoUpdate"` and `"NumColumns"`. The gnuplot toolkit---which is no - longer actively maintained---still uses the old legend function. - -- The `axis` function was updated which resolved 10 bugs affecting - axes to which `"equal"` had been applied. +### Graphics backend -- Graphic primitives now accept a color property value of `"none"` - which is useful when a particular primitive needs to be hidden - (for example, the Y-axis of an axes object with `"ycolor" = "none"`) - without hiding the entire primitive `"visibility" = "off"`. - -- A new property `"FontSmoothing"` has been added to text and axes - objects that controls whether anti-aliasing is used during the - rendering of characters. The default is `"on"` which produces smooth, - more visually appealing text. - -- The figure property `"windowscrollwheelfcn"`is now implemented. - This makes it possible to provide a callback function to be executed - when users manipulate the mouse wheel on a given figure. - -- The figure properties `"pointer"`, `"pointershapecdata"`, and - `"pointershapehotspot"` are now implemented. This makes it possible - to change the shape of the cursor (pointer in Matlab-speak) displayed - in a plot window. - -- The figure property `"paperpositionmode"` now has the default `"auto"` - rather than `"manual"`. This change is more intuitive and is - Matlab compatible. - -- The appearance of patterned lines `"LineStyle" = ":"|"--"|"-."` has - been improved for small widths (`"LineWidth"` less than 1.5 pixels) - which is a common scenario. - -- Printing to EPS files now uses a tight bounding box (`"-tight"` - argument to print) by default. This makes more sense for EPS - files which are normally embedded within other documents, and is - Matlab compatible. If necessary use the `"-loose"` option to - reproduce figures as they appeared in previous versions of Octave. - -- The following print devices are no longer officially supported: cdr, - corel, aifm, ill, cgm, hpgl, mf and dxf. A warning will be thrown - when using those devices, and the code for supporting those formats - will eventually be removed from a future version of Octave. +- Support for Qt4 for graphics and the GUI has been removed. ### Matlab compatibility -- The function `unique` now returns column index vectors for the second - and third outputs. When duplicate values are present, the default - index to return is now the `"first"` occurrence. The previous Octave - behavior, or Matlab behavior from releases prior to R2012b, can be - obtained by using the `"legacy"` flag. - -- The function `setdiff` with the `"rows"` argument now returns Matlab - compatible results. The previous Octave behavior, or Matlab behavior - from releases prior to R2012b, can be obtained by using the `"legacy"` - flag. - -- The functions `intersect`, `setxor`, and `union` now accept a - `"legacy"` flag which changes the index values (second and third - outputs) as well as the orientation of all outputs to match Matlab - releases prior to R2012b. - -- The interpreter now supports handles to nested functions. - -- The graphics properties `"LineWidth"` and `"MarkerSize"` are now - measured in points, *not* pixels. Compared to previous versions - of Octave, some lines and markers will appear 4/3 larger. - -- The meta.class property "SuperClassList" has been renamed - "Superclasslist" for Matlab compatibility. The original name will - exist as an alias until Octave version 8.1. - -- The function `javaaddpath` now prepends new directories to the - existing dynamic classpath by default. To append them instead, use - the new `"-end"` argument. Multiple directories may now be specified - in a cell array of strings. - -- An undocumented function `gui_mainfcn` has been added, for compatibility - with figures created with Matlab's GUIDE. - -- Several validator functions of type `mustBe*` have been added. See - the list of new functions below. - -### Alphabetical list of new functions added in Octave 6 -* `commandhistory` -* `commandwindow` -* `filebrowser` -* `is_same_file` -* `lightangle` -* `mustBeFinite` -* `mustBeGreaterThan` -* `mustBeGreaterThanOrEqual` -* `mustBeInteger` -* `mustBeLessThan` -* `mustBeLessThanOrEqual` -* `mustBeMember` -* `mustBeNegative` -* `mustBeNonempty` -* `mustBeNonNan` -* `mustBeNonnegative` -* `mustBeNonpositive` -* `mustBeNonsparse` -* `mustBeNonzero` -* `mustBeNumeric` -* `mustBeNumericOrLogical` -* `mustBePositive` -* `mustBeReal` -* `namedargs2cell` -* `newline` -* `rescale` -* `rotx` -* `roty` -* `rotz` -* `stream2` -* `stream3` -* `streamline` -* `streamtube` -* `uisetfont` -* `verLessThan` -* `web` -* `weboptions` -* `webread` -* `webwrite` -* `workspace` +### Alphabetical list of new functions added in Octave 7 +* `XXX` ### Deprecated functions and properties -The following functions and properties have been deprecated in Octave 6 -and will be removed from Octave 8 (or whatever version is the second -major release after 6): +The following functions and properties have been deprecated in Octave 7 +and will be removed from Octave 9 (or whatever version is the second +major release after 7): - Functions Function | Replacement -----------------------|------------------ - `runtests` | `oruntests` + | - Properties @@ -241,47 +33,31 @@ -----------------|---------------|------------ | | - ### Removed functions and properties -The following functions and properties were deprecated in Octave 4.4 -and have been removed from Octave 6. +The following functions and properties were deprecated in Octave 5 +and have been removed from Octave 7. - Functions - Function | Replacement - ---------------------|------------------ - `chop` | `sprintf` for visual results - `desktop` | `isguirunning` - `tmpnam` | `tempname` - `toascii` | `double` - `java2mat` | `__java2mat__` + Function | Replacement + -------------------------|------------------ + `output_max_field_width` | `output_precision` + `is_keyword` | `iskeyword` - Properties - Object | Property | Value - ---------------------|---------------------------|----------------------- - `annotation` | `edgecolor ("rectangle")` | - `axes` | `drawmode` | - `figure` | `doublebuffer` | - | `mincolormap` | - | `wvisual` | - | `wvisualmode` | - | `xdisplay` | - | `xvisual` | - | `xvisualmode` | - `line` | `interpreter` | - `patch` | `interpreter` | - `surface` | `interpreter` | - `text` | `fontweight` | `"demi"` and `"light"` - `uibuttongroup` | `fontweight` | `"demi"` and `"light"` - `uicontrol` | `fontweight` | `"demi"` and `"light"` - `uipanel` | `fontweight` | `"demi"` and `"light"` - `uitable` | `fontweight` | `"demi"` and `"light"` - + Object | Property | Value + -----------------|---------------|------------ + `text` | `fontangle` | `"oblique"` + `uibuttongroup` | `fontangle` | `"oblique"` + `uicontrol` | `fontangle` | `"oblique"` + `uipanel` | `fontangle` | `"oblique"` + `uitable` | `fontangle` | `"oblique"` ### Old release news +- [Octave 6.x](etc/NEWS.6) - [Octave 5.x](etc/NEWS.5) - [Octave 4.x](etc/NEWS.4) - [Octave 3.x](etc/NEWS.3)
--- a/configure.ac Mon Feb 17 17:00:44 2020 -0500 +++ b/configure.ac Tue Feb 18 08:01:55 2020 -0500 @@ -27,7 +27,7 @@ ### Initialize Autoconf AC_PREREQ([2.65]) -AC_INIT([GNU Octave], [6.0.1], [https://octave.org/bugs.html], [octave], +AC_INIT([GNU Octave], [7.0.0], [https://octave.org/bugs.html], [octave], [https://www.gnu.org/software/octave/]) ### Declare version numbers @@ -39,9 +39,9 @@ ## explains how to update these numbers for release and development ## versions. -OCTAVE_MAJOR_VERSION=6 +OCTAVE_MAJOR_VERSION=7 OCTAVE_MINOR_VERSION=0 -OCTAVE_PATCH_VERSION=1 +OCTAVE_PATCH_VERSION=0 dnl PACKAGE_VERSION is set by the AC_INIT VERSION argument. OCTAVE_VERSION="$PACKAGE_VERSION"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/NEWS.6 Tue Feb 18 08:01:55 2020 -0500 @@ -0,0 +1,289 @@ +Summary of important user-visible changes for version 6 (yyyy-mm-dd): +---------------------------------------------------------------------- + +### General improvements + +- The `intersect`, `setdiff`, `setxor`, `union`, and `unique` functions + accept a new sorting option `"stable"` which will return output values + in the same order as the input, rather than in ascending order. + +- Complex RESTful web services can now be accessed by the `webread` and + `webwrite` functions alongside with the `weboptions` structure. One + major feature is the support for cookies to enable RESTful + communication with the web service. + + Additionally, the system web browser can be opened by the `web` function. + +- The `linspace` function now produces symmetrical sequences when the + endpoints are symmetric. This is more intuitive and also compatible + with recent changes made in Matlab R2019b. + +- The underlying algorithm of the `rand` function has been changed. + For single precision outputs, the algorithm has been fixed so that it + produces values strictly in the range (0, 1). Previously, it could + occasionally generate the right endpoint value of 1 (See bug #41742). + In addition, the new implementation uses a uniform interval between + floating point values in the range (0, 1) rather than targeting a + uniform density (# of random integers / length along real number + line). + +- Numerical integration has been improved. The `quadv` function has + been re-written so that it can compute integrands of periodic + functions. At the same time, performance is better with ~3.5X fewer + function evaluations required. A bug in `quadgk` that caused complex + path integrals specified with `"Waypoints"` to occasionally be + calculated in the opposite direction was fixed. + +- The `edit` function option `"editinplace"` now defaults to `true` and + the option `"home"` now defaults to the empty matrix `[]`. Files will + no longer be copied to the user's HOME directory for editing. The old + behavior can be restored by setting `"editinplace"` to `false` and + `"home"` to `"~/octave"`. + +- The `format` command supports two new options: `uppercase` and + `lowercase` (default). With the default, print a lowercase 'e' for + the exponent character in scientific notation and lowercase 'a-f' for + the hex digits representing 10-15. With `uppercase`, print 'E' and + 'A-F' instead. The previous uppercase formats, `E` and `G`, no longer + control the case of the output. + + Additionally, the `format` command can be called with multiple options + for controlling the format, spacing, and case in arbitrary order. + For example: + + format long e uppercase loose + + Note, in the case of multiple competing format options the rightmost + one is used, and, in case of an error, the previous format remains + unchanged. + +- L-value references (e.g., increment (++), decrement (--), and all + in-place assignment operators (+=, -=, *=, /=, etc.)) are no longer + allowed in anonymous functions. + +- New warnings have been added about questionable uses of the colon ':' + range operator. Each has a new warning ID so that it can be disabled + if desired. + + > `Octave:colon-complex-argument` : when any arg is complex + > `Octave:colon-nonscalar-argument` : when any arg is non-scalar + +- The `regexp` and related functions now correctly handle and *require* + strings in UTF-8 encoding. As with any other function that requires + strings to be encoded in Octave's native encoding, you can use + `native2unicode` to convert from your preferred locale. For example, + the copyright symbol in UTF-8 is `native2unicode (169, "latin1")`. + +- The startup file `octaverc` now can be located in the platform + dependent location for user local configuration files (e.g. + ${XDG_CONFIG_HOME}/octave/octaverc on Unix-like operating systems or + %APPDATA%\octave\octaverc on Windows). + +- `pkg describe` now lists dependencies and inverse dependencies + (i.e., other installed packages that depend on the package in + question). + +- When unloading a package, `pkg` now checks if any remaining loaded + packages depend on the one to be removed. If this is the case `pkg` + aborts with an explanatory error message. This behavior can be + overridden with the `-nodeps` option. + +#### Graphics backend + +- The use of Qt4 for graphics and the GUI is deprecated in Octave + version 6 and no further bug fixes will be made. Qt4 support will be + removed completely in Octave version 7. + +- The `legend` function has been entirely rewritten. This fixes a + number of historical bugs, but also implements new properties such as + `"AutoUpdate"` and `"NumColumns"`. The gnuplot toolkit---which is no + longer actively maintained---still uses the old legend function. + +- The `axis` function was updated which resolved 10 bugs affecting + axes to which `"equal"` had been applied. + +- Graphic primitives now accept a color property value of `"none"` + which is useful when a particular primitive needs to be hidden + (for example, the Y-axis of an axes object with `"ycolor" = "none"`) + without hiding the entire primitive `"visibility" = "off"`. + +- A new property `"FontSmoothing"` has been added to text and axes + objects that controls whether anti-aliasing is used during the + rendering of characters. The default is `"on"` which produces smooth, + more visually appealing text. + +- The figure property `"windowscrollwheelfcn"`is now implemented. + This makes it possible to provide a callback function to be executed + when users manipulate the mouse wheel on a given figure. + +- The figure properties `"pointer"`, `"pointershapecdata"`, and + `"pointershapehotspot"` are now implemented. This makes it possible + to change the shape of the cursor (pointer in Matlab-speak) displayed + in a plot window. + +- The figure property `"paperpositionmode"` now has the default `"auto"` + rather than `"manual"`. This change is more intuitive and is + Matlab compatible. + +- The appearance of patterned lines `"LineStyle" = ":"|"--"|"-."` has + been improved for small widths (`"LineWidth"` less than 1.5 pixels) + which is a common scenario. + +- Printing to EPS files now uses a tight bounding box (`"-tight"` + argument to print) by default. This makes more sense for EPS + files which are normally embedded within other documents, and is + Matlab compatible. If necessary use the `"-loose"` option to + reproduce figures as they appeared in previous versions of Octave. + +- The following print devices are no longer officially supported: cdr, + corel, aifm, ill, cgm, hpgl, mf and dxf. A warning will be thrown + when using those devices, and the code for supporting those formats + will eventually be removed from a future version of Octave. + +### Matlab compatibility + +- The function `unique` now returns column index vectors for the second + and third outputs. When duplicate values are present, the default + index to return is now the `"first"` occurrence. The previous Octave + behavior, or Matlab behavior from releases prior to R2012b, can be + obtained by using the `"legacy"` flag. + +- The function `setdiff` with the `"rows"` argument now returns Matlab + compatible results. The previous Octave behavior, or Matlab behavior + from releases prior to R2012b, can be obtained by using the `"legacy"` + flag. + +- The functions `intersect`, `setxor`, and `union` now accept a + `"legacy"` flag which changes the index values (second and third + outputs) as well as the orientation of all outputs to match Matlab + releases prior to R2012b. + +- The interpreter now supports handles to nested functions. + +- The graphics properties `"LineWidth"` and `"MarkerSize"` are now + measured in points, *not* pixels. Compared to previous versions + of Octave, some lines and markers will appear 4/3 larger. + +- The meta.class property "SuperClassList" has been renamed + "Superclasslist" for Matlab compatibility. The original name will + exist as an alias until Octave version 8.1. + +- The function `javaaddpath` now prepends new directories to the + existing dynamic classpath by default. To append them instead, use + the new `"-end"` argument. Multiple directories may now be specified + in a cell array of strings. + +- An undocumented function `gui_mainfcn` has been added, for compatibility + with figures created with Matlab's GUIDE. + +- Several validator functions of type `mustBe*` have been added. See + the list of new functions below. + +### Alphabetical list of new functions added in Octave 6 + +* `commandhistory` +* `commandwindow` +* `filebrowser` +* `is_same_file` +* `lightangle` +* `mustBeFinite` +* `mustBeGreaterThan` +* `mustBeGreaterThanOrEqual` +* `mustBeInteger` +* `mustBeLessThan` +* `mustBeLessThanOrEqual` +* `mustBeMember` +* `mustBeNegative` +* `mustBeNonempty` +* `mustBeNonNan` +* `mustBeNonnegative` +* `mustBeNonpositive` +* `mustBeNonsparse` +* `mustBeNonzero` +* `mustBeNumeric` +* `mustBeNumericOrLogical` +* `mustBePositive` +* `mustBeReal` +* `namedargs2cell` +* `newline` +* `rescale` +* `rotx` +* `roty` +* `rotz` +* `stream2` +* `stream3` +* `streamline` +* `streamtube` +* `uisetfont` +* `verLessThan` +* `web` +* `weboptions` +* `webread` +* `webwrite` +* `workspace` + + +### Deprecated functions and properties + +The following functions and properties have been deprecated in Octave 6 +and will be removed from Octave 8 (or whatever version is the second +major release after 6): + +- Functions + + Function | Replacement + -----------------------|------------------ + `runtests` | `oruntests` + +- Properties + + Object | Property | Value + -----------------|---------------|------------ + | | + + +### Removed functions and properties + +The following functions and properties were deprecated in Octave 4.4 +and have been removed from Octave 6. + +- Functions + + Function | Replacement + ---------------------|------------------ + `chop` | `sprintf` for visual results + `desktop` | `isguirunning` + `tmpnam` | `tempname` + `toascii` | `double` + `java2mat` | `__java2mat__` + +- Properties + + Object | Property | Value + ---------------------|---------------------------|----------------------- + `annotation` | `edgecolor ("rectangle")` | + `axes` | `drawmode` | + `figure` | `doublebuffer` | + | `mincolormap` | + | `wvisual` | + | `wvisualmode` | + | `xdisplay` | + | `xvisual` | + | `xvisualmode` | + `line` | `interpreter` | + `patch` | `interpreter` | + `surface` | `interpreter` | + `text` | `fontweight` | `"demi"` and `"light"` + `uibuttongroup` | `fontweight` | `"demi"` and `"light"` + `uicontrol` | `fontweight` | `"demi"` and `"light"` + `uipanel` | `fontweight` | `"demi"` and `"light"` + `uitable` | `fontweight` | `"demi"` and `"light"` + + +### Old release news + +- [Octave 5.x](etc/NEWS.5) +- [Octave 4.x](etc/NEWS.4) +- [Octave 3.x](etc/NEWS.3) +- [Octave 2.x](etc/NEWS.2) +- [Octave 1.x](etc/NEWS.1)
--- a/libinterp/corefcn/dirfns.cc Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/dirfns.cc Tue Feb 18 08:01:55 2020 -0500 @@ -224,7 +224,7 @@ } } -DEFMETHODX ("rmdir", Frmdir, interp, args, , +DEFMETHODX ("rmdir", Frmdir, interp, args, nargout, doc: /* -*- texinfo -*- @deftypefn {} {} rmdir @var{dir} @deftypefnx {} {} rmdir (@var{dir}, "s") @@ -250,6 +250,7 @@ std::string dirname = args(0).xstring_value ("rmdir: DIR must be a string"); std::string fulldir = octave::sys::file_ops::tilde_expand (dirname); + octave_value_list retval; int status = -1; std::string msg; @@ -287,10 +288,20 @@ evmgr.file_renamed (status >= 0); - if (status < 0) - return ovl (false, msg, "rmdir"); + if (nargout == 0) + { + if (status < 0) + error ("rmdir: operation failed: %s", msg.c_str ()); + } else - return ovl (true, "", ""); + { + if (status < 0) + retval = ovl (false, msg, "rmdir"); + else + retval = ovl (true, "", ""); + } + + return retval; } DEFUNX ("link", Flink, args, , @@ -567,8 +578,8 @@ %! save (filename{n}, "a"); %! endfor %! else -%! rmdir (tmpdir); -%! error ("Couldn't change to temporary dir"); +%! sts = rmdir (tmpdir); +%! error ("Couldn't change to temporary directory"); %! endif %! else %! error ("Couldn't create temporary directory"); @@ -580,7 +591,7 @@ %! delete (filename{n}); %! endfor %! cd (cwd); -%! rmdir (tmpdir); +%! sts = rmdir (tmpdir); %! assert (result1, {"file1"; "myfile1"}); %! assert (result2, {"myfile1"}); %! assert (result3, {"file1"; "file2"});
--- a/libinterp/corefcn/file-io.cc Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/file-io.cc Tue Feb 18 08:01:55 2020 -0500 @@ -2890,7 +2890,7 @@ %! assert (tmpdir, tmp_tmpdir); %! assert (tmpfname (1:4), "file"); %! unwind_protect_cleanup -%! rmdir (tmp_tmpdir); +%! sts = rmdir (tmp_tmpdir); %! for i = 1:numel (envvar) %! if (isempty (envdir{i})) %! unsetenv (envvar{i});
--- a/libinterp/corefcn/graphics.in.h Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/graphics.in.h Tue Feb 18 08:01:55 2020 -0500 @@ -4364,8 +4364,7 @@ color_property edgecolor , color_property (radio_values ("{none}"), color_values (0, 0, 0)) bool_property editing , "off" array_property extent rG , Matrix (1, 4, 0.0) - // FIXME: DEPRECATED: Remove "oblique" in version 7. - radio_property fontangle u , "{normal}|italic|oblique" + radio_property fontangle u , "{normal}|italic" string_property fontname u , OCTAVE_DEFAULT_FONTNAME double_property fontsize u , 10 bool_property fontsmoothing u , "on" @@ -4472,11 +4471,6 @@ { update_font (); update_text_extent (); - // FIXME: DEPRECATED: Remove warning for "oblique" in version 7. - if (fontangle.is ("oblique")) - warning_with_id ("Octave:deprecated-property", - "Setting 'fontangle' to '%s' is deprecated, \ -use 'italic' or 'normal'.", fontangle.current_value ().c_str ()); } void update_fontweight (void) { update_font (); update_text_extent (); } @@ -5502,8 +5496,7 @@ bool_property clipping , "on" radio_property enable , "{on}|inactive|off" array_property extent rG , Matrix (1, 4, 0.0) - // FIXME: DEPRECATED: Remove "oblique" in version 7. - radio_property fontangle u , "{normal}|italic|oblique" + radio_property fontangle u , "{normal}|italic" string_property fontname u , OCTAVE_DEFAULT_FONTNAME double_property fontsize u , 10 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" @@ -5553,11 +5546,6 @@ void update_fontangle (void) { update_text_extent (); - // FIXME: DEPRECATED: Remove warning for "oblique" in version 7. - if (fontangle.is ("oblique")) - warning_with_id ("Octave:deprecated-property", - "Setting 'fontangle' to '%s' is deprecated, \ -use 'italic' or 'normal'.", fontangle.current_value ().c_str ()); } void update_fontweight (void) { update_text_extent (); } @@ -5618,8 +5606,7 @@ radio_property bordertype , "none|{etchedin}|etchedout|beveledin|beveledout|line" double_property borderwidth , 1 bool_property clipping , "on" - // FIXME: DEPRECATED: Remove "oblique" in version 7. - radio_property fontangle , "{normal}|italic|oblique" + radio_property fontangle , "{normal}|italic" string_property fontname , OCTAVE_DEFAULT_FONTNAME double_property fontsize , 10 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" @@ -5710,8 +5697,7 @@ color_property backgroundcolor , color_values (0.94, 0.94, 0.94) radio_property bordertype , "none|{etchedin}|etchedout|beveledin|beveledout|line" double_property borderwidth , 1 - // FIXME: DEPRECATED: Remove "oblique" in version 7. - radio_property fontangle , "{normal}|italic|oblique" + radio_property fontangle , "{normal}|italic" string_property fontname , OCTAVE_DEFAULT_FONTNAME double_property fontsize , 10 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" @@ -5804,8 +5790,7 @@ any_property data u , Matrix () bool_property enable , "on" array_property extent rG , Matrix (1, 4, 0.0) - // FIXME: DEPRECATED: Remove "oblique" in version 7. - radio_property fontangle u , "{normal}|italic|oblique" + radio_property fontangle u , "{normal}|italic" string_property fontname u , OCTAVE_DEFAULT_FONTNAME double_property fontsize u , 10 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" @@ -5846,11 +5831,6 @@ void update_fontangle (void) { update_table_extent (); - // FIXME: DEPRECATED: Remove warning for "oblique" in version 7. - if (fontangle.is ("oblique")) - warning_with_id ("Octave:deprecated-property", - "Setting 'fontangle' to '%s' is deprecated, \ -use 'italic' or 'normal'.", fontangle.current_value ().c_str ()); } void update_fontweight (void) { update_table_extent (); } };
--- a/libinterp/corefcn/input.cc Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/input.cc Tue Feb 18 08:01:55 2020 -0500 @@ -1406,40 +1406,3 @@ return input_sys.mfile_encoding (args, nargout); } - -// Always define these functions. The macro is intended to allow the -// declarations to be hidden, not so that Octave will not provide the -// functions if they are requested. - -// #if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -bool -octave_yes_or_no (const std::string& prompt) -{ - octave::input_system& input_sys - = octave::__get_input_system__ ("set_default_prompts"); - - return input_sys.yes_or_no (prompt); -} - -void -remove_input_event_hook_functions (void) -{ - octave::input_system& input_sys - = octave::__get_input_system__ ("remove_input_event_hook_functions"); - - input_sys.clear_input_event_hooks (); -} - -// Fix things up so that input can come from the standard input. This -// may need to become much more complicated, which is why it's in a -// separate function. - -FILE * -get_input_from_stdin (void) -{ - octave::command_editor::set_input_stream (stdin); - return octave::command_editor::get_input_stream (); -} - -// #endif
--- a/libinterp/corefcn/input.h Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/input.h Tue Feb 18 08:01:55 2020 -0500 @@ -278,17 +278,4 @@ }; } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (5, "use 'octave::input_system::yes_or_no' instead") -extern bool octave_yes_or_no (const std::string& prompt); - -OCTAVE_DEPRECATED (5, "use 'octave::input_system::clear_input_event_hooks' instead") -extern void remove_input_event_hook_functions (void); - -OCTAVE_DEPRECATED (5, "this function will be removed in a future version of Octave") -extern OCTINTERP_API FILE * get_input_from_stdin (void); - #endif - -#endif
--- a/libinterp/corefcn/module.mk Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/module.mk Tue Feb 18 08:01:55 2020 -0500 @@ -91,7 +91,6 @@ %reldir%/sysdep.h \ %reldir%/text-engine.h \ %reldir%/text-renderer.h \ - %reldir%/txt-eng.h \ %reldir%/url-handle-manager.h \ %reldir%/utils.h \ %reldir%/variables.h \
--- a/libinterp/corefcn/sysdep.h Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/sysdep.h Tue Feb 18 08:01:55 2020 -0500 @@ -59,71 +59,4 @@ extern OCTINTERP_API bool drive_or_unc_share (const std::string&); } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (5, "use 'octave::sysdep_init' instead") -inline void -sysdep_init (void) -{ - octave::sysdep_init (); -} - -OCTAVE_DEPRECATED (5, "use 'octave::set_application_id' instead") -inline void -set_application_id (void) -{ - octave::set_application_id (); -} - -OCTAVE_DEPRECATED (5, "use 'octave::sysdep_cleanup' instead") -inline void -sysdep_cleanup (void) -{ - octave::sysdep_cleanup (); -} - -OCTAVE_DEPRECATED (5, "use 'octave::raw_mode' instead") -inline void -raw_mode (bool on, bool wait = true) -{ - octave::raw_mode (on, wait); -} - -OCTAVE_DEPRECATED (5, "use 'octave::popen' instead") -inline FILE * -octave_popen (const char *command, const char *mode) -{ - return octave::popen (command, mode); -} - -OCTAVE_DEPRECATED (5, "use 'octave::pclose' instead") -inline int -octave_pclose (FILE *f) -{ - return octave::pclose (f); -} - -OCTAVE_DEPRECATED (5, "use 'octave::kbhit' instead") -inline int -octave_kbhit (bool wait = true) -{ - return octave::kbhit (wait); -} - -OCTAVE_DEPRECATED (5, "use 'octave::get_P_tmpdir' instead") -inline std::string -get_P_tmpdir (void) -{ - return octave::get_P_tmpdir (); -} - -OCTAVE_DEPRECATED (5, "use 'octave::same_file_internal' instead") -inline bool -same_file_internal (const std::string& a, const std::string& b) -{ - return octave::same_file_internal (a, b); -} - #endif - -#endif
--- a/libinterp/corefcn/text-engine.h Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/text-engine.h Tue Feb 18 08:01:55 2020 -0500 @@ -459,53 +459,4 @@ } } -#if defined (OCAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (5, "use 'octave::text_element' instead") -typedef octave::text_element text_element; - -OCTAVE_DEPRECATED (5, "use 'octave::text_element_string' instead") -typedef octave::text_element_string text_element_string; - -OCTAVE_DEPRECATED (5, "use 'octave::text_element_symbol' instead") -typedef octave::text_element_symbol text_element_symbol; - -OCTAVE_DEPRECATED (5, "use 'octave::text_element_list' instead") -typedef octave::text_element_list text_element_list; - -OCTAVE_DEPRECATED (5, "use 'octave::text_element_subscript' instead") -typedef octave::text_element_subscript text_element_subscript; - -OCTAVE_DEPRECATED (5, "use 'octave::text_element_superscript' instead") -typedef octave::text_element_superscript text_element_superscript; - -OCTAVE_DEPRECATED (5, "use 'octave::text_element_combined' instead") -typedef octave::text_element_combined text_element_combined; - -OCTAVE_DEPRECATED (5, "use 'octave::text_element_fontstyle' instead") -typedef octave::text_element_fontstyle text_element_fontstyle; - -OCTAVE_DEPRECATED (5, "use 'octave::text_element_fontname' instead") -typedef octave::text_element_fontname text_element_fontname; - -OCTAVE_DEPRECATED (5, "use 'octave::text_element_fontsize' instead") -typedef octave::text_element_fontsize text_element_fontsize; - -OCTAVE_DEPRECATED (5, "use 'octave::text_element_color' instead") -typedef octave::text_element_color text_element_color; - -OCTAVE_DEPRECATED (5, "use 'octave::text_processor' instead") -typedef octave::text_processor text_processor; - -OCTAVE_DEPRECATED (5, "use 'octave::text_parser' instead") -typedef octave::text_parser text_parser; - -OCTAVE_DEPRECATED (5, "use 'octave::text_parser_none' instead") -typedef octave::text_parser_none text_parser_none; - -OCTAVE_DEPRECATED (5, "use 'octave::text_parser_tex' instead") -typedef octave::text_parser_tex text_parser_tex; - #endif - -#endif
--- a/libinterp/corefcn/txt-eng.h Mon Feb 17 17:00:44 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -//////////////////////////////////////////////////////////////////////// -// -// Copyright (C) 2018-2020 The Octave Project Developers -// -// See the file COPYRIGHT.md in the top-level directory of this -// distribution or <https://octave.org/copyright/>. -// -// 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/>. -// -//////////////////////////////////////////////////////////////////////// - -#if ! defined (octave_txt_eng_h) -#define octave_txt_eng_h 1 - -#include "octave-config.h" - -// Deprecated in Octave 5. Remove in Octave 7 -#warning "txt-eng.h has been deprecated; use text-engine instead" - -#include "text-engine.h" - -#endif
--- a/libinterp/corefcn/utils.cc Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/utils.cc Tue Feb 18 08:01:55 2020 -0500 @@ -1647,183 +1647,3 @@ %!error isstudent (1) */ - -// Always define these functions. The macro is intended to allow the -// declarations to be hidden, not so that Octave will not provide the -// functions if they are requested. - -// #if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -#include "ov.h" -#include "ovl.h" -#include "str-vec.h" - -bool -valid_identifier (const char *s) -{ - return octave::valid_identifier (s); -} - -bool -valid_identifier (const std::string& s) -{ - return octave::valid_identifier (s); -} - -bool -same_file (const std::string& f, const std::string& g) -{ - return octave::same_file (f, g); -} - -int -almost_match (const std::string& std, const std::string& s, - int min_match_len, int case_sens) -{ - return octave::almost_match (std, s, min_match_len, case_sens); -} - -int -keyword_almost_match (const char * const *std, int *min_len, - const std::string& s, int min_toks_to_match, - int max_toks) -{ - return octave::keyword_almost_match (std, min_len, s, min_toks_to_match, - max_toks); -} - -std::string -search_path_for_file (const std::string& path, const string_vector& names) -{ - return octave::search_path_for_file (path, names); -} - -string_vector -search_path_for_all_files (const std::string& path, const string_vector& names) -{ - return octave::search_path_for_all_files (path, names); -} - -std::string -file_in_path (const std::string& name, const std::string& suffix) -{ - return octave::file_in_path (name, suffix); -} - -std::string -find_data_file_in_load_path (const std::string& fcn, const std::string& file, - bool require_regular_file) -{ - return octave::find_data_file_in_load_path (fcn, file, require_regular_file); -} - -std::string -contents_file_in_path (const std::string& s) -{ - return octave::contents_file_in_path (s); -} - -std::string -fcn_file_in_path (const std::string& s) -{ - return octave::fcn_file_in_path (s); -} - -std::string -do_string_escapes (const std::string& s) -{ - return octave::do_string_escapes (s); -} - -const char * -undo_string_escape (char c) -{ - return octave::undo_string_escape (c); -} - -std::string -undo_string_escapes (const std::string& s) -{ - return octave::undo_string_escapes (s); -} - -void -check_dimensions (dim_vector& dim, const char *warnfor) -{ - return octave::check_dimensions (dim, warnfor); -} - -void -get_dimensions (const octave_value& a, const char *warn_for, - dim_vector& dim) -{ - return octave::get_dimensions (a, warn_for, dim); -} - -void -get_dimensions (const octave_value& a, const octave_value& b, - const char *warn_for, octave_idx_type& nr, - octave_idx_type& nc) -{ - return octave::get_dimensions (a, b, warn_for, nr, nc); -} - -void -get_dimensions (const octave_value& a, const char *warn_for, - octave_idx_type& nr, octave_idx_type& nc) -{ - return octave::get_dimensions (a, warn_for, nr, nc); -} - -octave_idx_type -dims_to_numel (const dim_vector& dims, const octave_value_list& idx) -{ - return octave::dims_to_numel (dims, idx); -} - -Matrix -identity_matrix (octave_idx_type nr, octave_idx_type nc) -{ - return octave::identity_matrix (nr, nc); -} - -FloatMatrix -float_identity_matrix (octave_idx_type nr, octave_idx_type nc) -{ - return octave::float_identity_matrix (nr, nc); -} - -size_t -octave_vformat (std::ostream& os, const char *fmt, va_list args) -{ - return octave::vformat (os, fmt, args); -} - -std::string -octave_vasprintf (const char *fmt, va_list args) -{ - return octave::vasprintf (fmt, args); -} - -void -octave_sleep (double seconds) -{ - octave::sleep (seconds); -} - -octave_value_list -do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int), - const char *fun_name, const octave_value_list& args, - int nargout) -{ - return octave::do_simple_cellfun (fun, fun_name, args, nargout); -} - -octave_value -do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int), - const char *fun_name, const octave_value_list& args) -{ - return octave::do_simple_cellfun (fun, fun_name, args); -} - -// #endif
--- a/libinterp/corefcn/utils.h Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/utils.h Tue Feb 18 08:01:55 2020 -0500 @@ -141,139 +141,4 @@ const char *fun_name, const octave_value_list& args); } -#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) - -OCTAVE_DEPRECATED (5, "use 'octave::valid_identifier' instead") -extern OCTINTERP_API bool -valid_identifier (const char *s); - -OCTAVE_DEPRECATED (5, "use 'octave::valid_identifier' instead") -extern OCTINTERP_API bool -valid_identifier (const std::string& s); - -OCTAVE_DEPRECATED (5, "use 'octave::same_file' instead") -extern OCTINTERP_API bool -same_file (const std::string& f, const std::string& g); - -OCTAVE_DEPRECATED (5, "use 'octave::almost_match' instead") -extern OCTINTERP_API int -almost_match (const std::string& std, const std::string& s, - int min_match_len = 1, int case_sens = 1); - -OCTAVE_DEPRECATED (5, "use 'octave::keyword_almost_match' instead") -extern OCTINTERP_API int -keyword_almost_match (const char * const *std, int *min_len, - const std::string& s, int min_toks_to_match, - int max_toks); - -OCTAVE_DEPRECATED (5, "use 'octave::search_path_for_file' instead") -extern OCTINTERP_API std::string -search_path_for_file (const std::string& path, const string_vector& names); - -OCTAVE_DEPRECATED (5, "use 'octave::search_path_for_all_files' instead") -extern OCTINTERP_API string_vector -search_path_for_all_files (const std::string& path, const string_vector& names); - -OCTAVE_DEPRECATED (5, "use 'octave::file_in_path' instead") -extern OCTINTERP_API std::string -file_in_path (const std::string& name, const std::string& suffix); - -OCTAVE_DEPRECATED (5, "use 'octave::find_data_file_in_load_path ' instead") -extern OCTINTERP_API std::string -find_data_file_in_load_path (const std::string& fcn, const std::string& file, - bool require_regular_file = false); - -OCTAVE_DEPRECATED (5, "use 'octave::contents_file_in_path' instead") -extern OCTINTERP_API std::string -contents_file_in_path (const std::string& s); - -OCTAVE_DEPRECATED (5, "use 'octave::fcn_file_in_path' instead") -extern OCTINTERP_API std::string -fcn_file_in_path (const std::string& s); - -OCTAVE_DEPRECATED (5, "use 'octave::do_string_escapes' instead") -extern OCTINTERP_API std::string -do_string_escapes (const std::string& s); - -OCTAVE_DEPRECATED (5, "use 'octave::undo_string_escape' instead") -extern OCTINTERP_API const char * -undo_string_escape (char c); - -OCTAVE_DEPRECATED (5, "use 'octave::undo_string_escapes' instead") -extern OCTINTERP_API std::string -undo_string_escapes (const std::string& s); - -OCTAVE_DEPRECATED (5, "use 'octave::check_dimensions' instead") -extern OCTINTERP_API void -check_dimensions (dim_vector& dim, const char *warnfor); - -OCTAVE_DEPRECATED (5, "use 'octave::get_dimensions' instead") -extern OCTINTERP_API void -get_dimensions (const octave_value& a, const char *warn_for, - dim_vector& dim); - -OCTAVE_DEPRECATED (5, "use 'octave::get_dimensions' instead") -extern OCTINTERP_API void -get_dimensions (const octave_value& a, const octave_value& b, - const char *warn_for, octave_idx_type& nr, - octave_idx_type& nc); - -OCTAVE_DEPRECATED (5, "use 'octave::get_dimensions' instead") -extern OCTINTERP_API void -get_dimensions (const octave_value& a, const char *warn_for, - octave_idx_type& nr, octave_idx_type& nc); - -OCTAVE_DEPRECATED (5, "use 'octave::dims_to_numel' instead") -extern OCTINTERP_API octave_idx_type -dims_to_numel (const dim_vector& dims, const octave_value_list& idx); - -OCTAVE_DEPRECATED (5, "use 'octave::identity_matrix' instead") -extern OCTINTERP_API Matrix -identity_matrix (octave_idx_type nr, octave_idx_type nc); - -OCTAVE_DEPRECATED (5, "use 'octave::float_identity_matrix' instead") -extern OCTINTERP_API FloatMatrix -float_identity_matrix (octave_idx_type nr, octave_idx_type nc); - -template <typename ... Args> -OCTAVE_DEPRECATED (5, "use 'octave::format' instead") -size_t -octave_format (std::ostream& os, const char *fmt, Args&& ... args) -{ - return octave::format (os, fmt, std::forward<Args> (args) ...); -} - -OCTAVE_DEPRECATED (5, "use 'octave::vformat' instead") -extern OCTINTERP_API size_t -octave_vformat (std::ostream& os, const char *fmt, va_list args); - -OCTAVE_DEPRECATED (5, "use 'octave::vasprintf' instead") -extern OCTINTERP_API std::string -octave_vasprintf (const char *fmt, va_list args); - -template <typename ... Args> -OCTAVE_DEPRECATED (5, "use 'octave::asprintf' instead") -std::string -octave_asprintf (const char *fmt, Args&& ... args) -{ - return octave::asprintf (fmt, std::forward<Args> (args) ...); -} - -OCTAVE_DEPRECATED (5, "use 'octave::sleep' instead") -extern OCTINTERP_API void -octave_sleep (double seconds); - -OCTAVE_DEPRECATED (5, "use 'octave::do_simple_cellfun' instead") -extern OCTINTERP_API octave_value_list -do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int), - const char *fun_name, const octave_value_list& args, - int nargout); - -OCTAVE_DEPRECATED (5, "use 'octave::do_simple_cellfun' instead") -extern OCTINTERP_API octave_value -do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int), - const char *fun_name, const octave_value_list& args); - #endif - -#endif
--- a/libinterp/corefcn/variables.cc Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/variables.cc Tue Feb 18 08:01:55 2020 -0500 @@ -1467,42 +1467,3 @@ { return SET_INTERNAL_VARIABLE (missing_component_hook); } - -// The following function is deprecated. - -string_vector -get_struct_elts (const std::string& text) -{ - int n = 1; - - size_t pos = 0; - - size_t len = text.length (); - - while ((pos = text.find ('.', pos)) != std::string::npos) - { - if (++pos == len) - break; - - n++; - } - - string_vector retval (n); - - pos = 0; - - for (int i = 0; i < n; i++) - { - len = text.find ('.', pos); - - if (len != std::string::npos) - len -= pos; - - retval[i] = text.substr (pos, len); - - if (len != std::string::npos) - pos += len + 1; - } - - return retval; -}
--- a/libinterp/corefcn/variables.h Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/corefcn/variables.h Tue Feb 18 08:01:55 2020 -0500 @@ -116,8 +116,4 @@ extern OCTINTERP_API std::string maybe_missing_function_hook (const std::string& name); -OCTAVE_DEPRECATED (5, "this function will be removed in a future version of Octave") -extern OCTINTERP_API string_vector -get_struct_elts (const std::string& text); - #endif
--- a/libinterp/dldfcn/gzip.cc Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/dldfcn/gzip.cc Tue Feb 18 08:01:55 2020 -0500 @@ -700,7 +700,7 @@ %! test_function (test_dir, z) %! unwind_protect_cleanup %! confirm_recursive_rmdir (false, "local"); -%! rmdir (test_dir, "s"); +%! sts = rmdir (test_dir, "s"); %! end_unwind_protect %! endfor %!endfunction @@ -840,7 +840,7 @@ %! unwind_protect_cleanup %! confirm_recursive_rmdir (false, "local"); %! for idx = 1:numel(out_dirs) -%! rmdir (out_dirs{idx}, "s"); +%! sts = rmdir (out_dirs{idx}, "s"); %! endfor %! end_unwind_protect %!endfunction
--- a/libinterp/parse-tree/bp-table.cc Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/parse-tree/bp-table.cc Tue Feb 18 08:01:55 2020 -0500 @@ -997,12 +997,4 @@ return retval; } - - octave_user_code * - get_user_code (const std::string& fname) - { - tree_evaluator& tw = __get_evaluator__ ("get_user_code"); - - return tw.get_user_code (fname); - } }
--- a/libinterp/parse-tree/bp-table.h Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/parse-tree/bp-table.h Tue Feb 18 08:01:55 2020 -0500 @@ -164,9 +164,6 @@ intmap remove_all_breakpoints_in_file_1 (octave_user_code *fcn, const std::string& fname); }; - - OCTAVE_DEPRECATED (5, "use 'octave::get_user_code' instead") - extern octave_user_code * get_user_code (const std::string& fname = ""); } #endif
--- a/libinterp/parse-tree/oct-parse.yy Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/parse-tree/oct-parse.yy Tue Feb 18 08:01:55 2020 -0500 @@ -5290,23 +5290,6 @@ namespace octave { - octave_value_list - eval_string (const std::string& eval_str, bool silent, - int& parse_status, int nargout) - { - interpreter& interp = __get_interpreter__ ("eval_string"); - - return interp.eval_string (eval_str, silent, parse_status, nargout); - } - - octave_value - eval_string (const std::string& eval_str, bool silent, int& parse_status) - { - interpreter& interp = __get_interpreter__ ("eval_string"); - - return interp.eval_string (eval_str, silent, parse_status); - } - void cleanup_statement_list (tree_statement_list **lst) {
--- a/libinterp/parse-tree/parse.h Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/parse-tree/parse.h Tue Feb 18 08:01:55 2020 -0500 @@ -656,14 +656,6 @@ extern OCTINTERP_API octave_value_list feval (const octave_value_list& args, int nargout = 0); - OCTAVE_DEPRECATED (5, "use 'octave::interpreter::eval_string' instead") - extern OCTINTERP_API octave_value_list - eval_string (const std::string&, bool silent, int& parse_status, int nargout); - - OCTAVE_DEPRECATED (5, "use 'octave::interpreter::eval_string' instead") - extern OCTINTERP_API octave_value - eval_string (const std::string&, bool silent, int& parse_status); - extern OCTINTERP_API void cleanup_statement_list (tree_statement_list **lst); }
--- a/libinterp/parse-tree/token.h Mon Feb 17 17:00:44 2020 -0500 +++ b/libinterp/parse-tree/token.h Tue Feb 18 08:01:55 2020 -0500 @@ -123,12 +123,6 @@ return m_type_tag == keyword_token || m_type_tag == ettype_token; } - OCTAVE_DEPRECATED (5, "use 'octave::iskeyword' instead") - bool is_keyword (void) const - { - return iskeyword (); - } - bool is_symbol (void) const { return m_type_tag == sym_rec_token;
--- a/scripts/deprecated/module.mk Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/deprecated/module.mk Tue Feb 18 08:01:55 2020 -0500 @@ -1,7 +1,6 @@ FCN_FILE_DIRS += %reldir% %canon_reldir%_FCN_FILES = \ - %reldir%/output_max_field_width.m \ %reldir%/runtests.m %canon_reldir%dir = $(fcnfiledir)/deprecated
--- a/scripts/deprecated/output_max_field_width.m Mon Feb 17 17:00:44 2020 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -######################################################################## -## -## Copyright (C) 2018-2020 The Octave Project Developers -## -## See the file COPYRIGHT.md in the top-level directory of this -## distribution or <https://octave.org/copyright/>. -## -## 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 {} {@var{val} =} output_max_field_width () -## @deftypefnx {} {@var{old_val} =} output_max_field_width (@var{new_val}) -## @deftypefnx {} {} output_max_field_width (@var{new_val}, "local") -## -## @code{output_max_field_width} is deprecated and will be removed in Octave -## version 7. Use @code{output_precision} instead. -## -## Query or set the internal variable that specifies the maximum width -## of a numeric output field. -## -## When called from inside a function with the @qcode{"local"} option, the -## variable is changed locally for the function and any subroutines it calls. -## The original variable value is restored when exiting the function. -## @seealso{format, fixed_point_format, output_precision} -## @end deftypefn - -## FIXME: DEPRECATED: Remove in version 7. - -function retval = output_max_field_width (varargin) - - persistent warned = false; - if (! warned) - warned = true; - warning ("Octave:deprecated-function", - "output_max_field_width is obsolete and will be removed from a future version of Octave, please use output_precision instead\n"); - endif - - retval = 20; - -endfunction
--- a/scripts/miscellaneous/dir.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/miscellaneous/dir.m Tue Feb 18 08:01:55 2020 -0500 @@ -224,7 +224,7 @@ %! chdir (orig_dir); %! confirm_recursive_rmdir (false, "local"); %! if (exist (tmp_dir)) -%! rmdir (tmp_dir, "s"); +%! sts = rmdir (tmp_dir, "s"); %! endif %! end_unwind_protect @@ -238,7 +238,7 @@ %! assert (list(1).folder, canonicalize_file_name (tmp_dir)); %! unwind_protect_cleanup %! if (exist (tmp_dir)) -%! rmdir (tmp_dir); +%! sts = rmdir (tmp_dir); %! endif %! end_unwind_protect
--- a/scripts/miscellaneous/isfolder.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/miscellaneous/isfolder.m Tue Feb 18 08:01:55 2020 -0500 @@ -70,8 +70,8 @@ %! addpath (d); %! assert (! isfolder (n)); %! unwind_protect_cleanup -%! try, rmdir (tmp); end_try_catch -%! try, rmpath (d); end_try_catch +%! sts = rmdir (tmp); +%! rmpath (d); %! end_unwind_protect ## Test input validation
--- a/scripts/miscellaneous/mkdir.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/miscellaneous/mkdir.m Tue Feb 18 08:01:55 2020 -0500 @@ -112,7 +112,7 @@ %! assert (isfolder (dir)); %! unwind_protect_cleanup %! confirm_recursive_rmdir (false, "local"); -%! rmdir (dir1, "s"); +%! sts = rmdir (dir1, "s"); %! end_unwind_protect %!test <*53031> @@ -125,8 +125,8 @@ %! assert (status); %! assert (isfolder (fullfile (tmp_dir, "subdir"))); %! unwind_protect_cleanup -%! rmdir (fullfile (tmp_dir, "subdir")); -%! rmdir (tmp_dir); +%! sts = rmdir (fullfile (tmp_dir, "subdir")); +%! sts = rmdir (tmp_dir); %! if (isempty (HOME)) %! unsetenv ("HOME"); %! else
--- a/scripts/miscellaneous/run.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/miscellaneous/run.m Tue Feb 18 08:01:55 2020 -0500 @@ -114,7 +114,7 @@ %! assert (_5yVNhWVJWJn47RKnzxPsyb_, 1337); %! unwind_protect_cleanup %! unlink (test_script); -%! rmdir (tmp_dir); +%! sts = rmdir (tmp_dir); %! end_unwind_protect ## Test function file execution @@ -140,7 +140,7 @@ %! assert (tstval2, true); %! unwind_protect_cleanup %! unlink (test_function); -%! rmdir (tmp_dir); +%! sts = rmdir (tmp_dir); %! path (path_orig); %! end_unwind_protect
--- a/scripts/miscellaneous/tar.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/miscellaneous/tar.m Tue Feb 18 08:01:55 2020 -0500 @@ -149,12 +149,8 @@ %! chdir (orig_dir); %! unlink (tarname); %! confirm_recursive_rmdir (false, "local"); -%! if (exist (dirname)) -%! rmdir (dirname, "s"); -%! endif -%! if (exist (outdir)) -%! rmdir (outdir, "s"); -%! endif +%! sts = rmdir (dirname, "s"); +%! sts = rmdir (outdir, "s"); %! end_unwind_protect ## Test input validation
--- a/scripts/miscellaneous/unpack.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/miscellaneous/unpack.m Tue Feb 18 08:01:55 2020 -0500 @@ -372,7 +372,7 @@ %! unlink (filename); %! unlink ([filename ".orig"]); %! confirm_recursive_rmdir (false, "local"); -%! rmdir (dirname, "s"); +%! sts = rmdir (dirname, "s"); %! end_unwind_protect %! unwind_protect_cleanup %! ## Restore environment variables TMPDIR, TMP
--- a/scripts/miscellaneous/zip.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/miscellaneous/zip.m Tue Feb 18 08:01:55 2020 -0500 @@ -130,7 +130,7 @@ %! unlink ([dirname, filesep, basename, ext]); %! unlink (zipfile); %! unlink ([zipfile ".zip"]); -%! rmdir (dirname); +%! sts = rmdir (dirname); %! end_unwind_protect ## Test input validation
--- a/scripts/path/pathdef.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/path/pathdef.m Tue Feb 18 08:01:55 2020 -0500 @@ -112,7 +112,7 @@ %! assert (! isempty (strfind (p1, tmp_dir))) %! assert (isempty (strfind (p2, tmp_dir))) %! unwind_protect_cleanup -%! rmdir (tmp_dir); +%! sts = rmdir (tmp_dir); %! path (path_orig); %! end_unwind_protect @@ -128,7 +128,7 @@ %! path_2 = path (); %! assert (path_1, path_2) %! unwind_protect_cleanup -%! rmdir (tmp_dir); +%! sts = rmdir (tmp_dir); %! path (path_orig); %! end_unwind_protect
--- a/scripts/path/savepath.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/path/savepath.m Tue Feb 18 08:01:55 2020 -0500 @@ -230,6 +230,6 @@ %! end_unwind_protect %! unwind_protect_cleanup %! confirm_recursive_rmdir (false, "local"); -%! rmdir (test_dir, "s"); +%! sts = rmdir (test_dir, "s"); %! unlink (fname); %! end_unwind_protect
--- a/scripts/pkg/private/configure_make.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/pkg/private/configure_make.m Tue Feb 18 08:01:55 2020 -0500 @@ -83,7 +83,7 @@ cmd = ["cd '" src "'; " scenv "./configure " flags]; [status, output] = shell (cmd, verbose); if (status != 0) - rmdir (desc.dir, "s"); + sts = rmdir (desc.dir, "s"); disp (output); error ("pkg: error running the configure script for %s.", desc.name); endif @@ -100,7 +100,7 @@ [status, output] = shell (sprintf ("%s make --jobs %i --directory '%s'", scenv, jobs, src), verbose); if (status != 0) - rmdir (desc.dir, "s"); + sts = rmdir (desc.dir, "s"); disp (output); error ("pkg: error running 'make' for the %s package.", desc.name); endif
--- a/scripts/pkg/private/install.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/pkg/private/install.m Tue Feb 18 08:01:55 2020 -0500 @@ -145,7 +145,7 @@ catch ## Something went wrong, delete tmpdirs. for i = 1:length (tmpdirs) - rmdir (tmpdirs{i}, "s"); + sts = rmdir (tmpdirs{i}, "s"); endfor rethrow (lasterror ()); end_try_catch @@ -199,7 +199,7 @@ catch ## Something went wrong, delete tmpdirs. for i = 1:length (tmpdirs) - rmdir (tmpdirs{i}, "s"); + sts = rmdir (tmpdirs{i}, "s"); endfor rethrow (lasterror ()); end_try_catch @@ -218,7 +218,7 @@ catch ## Something went wrong, delete tmpdirs. for i = 1:length (tmpdirs) - rmdir (tmpdirs{i}, "s"); + sts = rmdir (tmpdirs{i}, "s"); endfor rethrow (lasterror ()); end_try_catch @@ -237,11 +237,11 @@ catch ## Something went wrong, delete tmpdirs. for i = 1:length (tmpdirs) - rmdir (tmpdirs{i}, "s"); + sts = rmdir (tmpdirs{i}, "s"); endfor for i = 1:length (descriptions) - rmdir (descriptions{i}.dir, "s"); - rmdir (getarchdir (descriptions{i}), "s"); + sts = rmdir (descriptions{i}.dir, "s"); + sts = rmdir (getarchdir (descriptions{i}), "s"); endfor rethrow (lasterror ()); end_try_catch @@ -252,8 +252,8 @@ if (dirempty (descriptions{i}.dir, {"packinfo", "doc"}) && dirempty (getarchdir (descriptions{i}))) warning ("package %s is empty\n", descriptions{i}.name); - rmdir (descriptions{i}.dir, "s"); - rmdir (getarchdir (descriptions{i}), "s"); + sts = rmdir (descriptions{i}.dir, "s"); + sts = rmdir (getarchdir (descriptions{i}), "s"); descriptions(i) = []; endif endfor @@ -282,10 +282,10 @@ catch ## Something went wrong, delete tmpdirs. for i = 1:length (tmpdirs) - rmdir (tmpdirs{i}, "s"); + sts = rmdir (tmpdirs{i}, "s"); endfor for i = 1:length (descriptions) - rmdir (descriptions{i}.dir, "s"); + sts = rmdir (descriptions{i}.dir, "s"); endfor if (global_install) printf ("error: couldn't append to %s\n", global_list); @@ -376,7 +376,7 @@ if (! isfolder (inst_dir)) [status, msg] = mkdir (inst_dir); if (status != 1) - rmdir (desc.dir, "s"); + sts = rmdir (desc.dir, "s"); error ("the 'inst' directory did not exist and could not be created: %s", msg); endif @@ -450,7 +450,7 @@ endif [status, output] = copyfile (archindependent, instdir); if (status != 1) - rmdir (desc.dir, "s"); + sts = rmdir (desc.dir, "s"); error ("Couldn't copy files from 'src' to 'inst': %s", output); endif endif @@ -465,7 +465,7 @@ endif [status, output] = copyfile (archdependent, archdir); if (status != 1) - rmdir (desc.dir, "s"); + sts = rmdir (desc.dir, "s"); error ("Couldn't copy files from 'src' to 'inst': %s", output); endif endif @@ -517,7 +517,7 @@ if (! dirempty (instdir)) [status, output] = copyfile (fullfile (instdir, "*"), desc.dir); if (status != 1) - rmdir (desc.dir, "s"); + sts = rmdir (desc.dir, "s"); error ("couldn't copy files to the installation directory"); endif if (isfolder (fullfile (desc.dir, getarch ())) @@ -532,39 +532,39 @@ if (! isfolder (octm3)) [status, output] = mkdir (octm3); if (status != 1) - rmdir (desc.dir, "s"); + sts = rmdir (desc.dir, "s"); error ("couldn't create installation directory %s : %s", octm3, output); endif endif [status, output] = mkdir (octm2); if (status != 1) - rmdir (desc.dir, "s"); + sts = rmdir (desc.dir, "s"); error ("couldn't create installation directory %s : %s", octm2, output); endif endif [status, output] = mkdir (octm1); if (status != 1) - rmdir (desc.dir, "s"); + sts = rmdir (desc.dir, "s"); error ("couldn't create installation directory %s : %s", octm1, output); endif endif [status, output] = mkdir (octfiledir); if (status != 1) - rmdir (desc.dir, "s"); + sts = rmdir (desc.dir, "s"); error ("couldn't create installation directory %s : %s", octfiledir, output); endif endif [status, output] = movefile (fullfile (desc.dir, getarch (), "*"), octfiledir); - rmdir (fullfile (desc.dir, getarch ()), "s"); + sts = rmdir (fullfile (desc.dir, getarch ()), "s"); if (status != 1) - rmdir (desc.dir, "s"); - rmdir (octfiledir, "s"); + sts = rmdir (desc.dir, "s"); + sts = rmdir (octfiledir, "s"); error ("couldn't copy files to the installation directory"); endif endif @@ -575,8 +575,8 @@ packinfo = fullfile (desc.dir, "packinfo"); [status, msg] = mkdir (packinfo); if (status != 1) - rmdir (desc.dir, "s"); - rmdir (octfiledir, "s"); + sts = rmdir (desc.dir, "s"); + sts = rmdir (octfiledir, "s"); error ("couldn't create packinfo directory: %s", msg); endif @@ -596,8 +596,8 @@ write_index (desc, fullfile (packdir, "inst"), fullfile (packinfo, "INDEX"), global_install); catch - rmdir (desc.dir, "s"); - rmdir (octfiledir, "s"); + sts = rmdir (desc.dir, "s"); + sts = rmdir (octfiledir, "s"); rethrow (lasterror ()); end_try_catch endif @@ -629,8 +629,8 @@ else [status, output] = copyfile (filepath, packinfo); if (status != 1) - rmdir (desc.dir, "s"); - rmdir (octfiledir, "s"); + sts = rmdir (desc.dir, "s"); + sts = rmdir (octfiledir, "s"); error ("Couldn't copy %s file: %s", filename, output); endif endif @@ -801,8 +801,8 @@ cd (wd); catch cd (wd); - rmdir (desc.dir, "s"); - rmdir (getarchdir (desc), "s"); + sts = rmdir (desc.dir, "s"); + sts = rmdir (getarchdir (desc), "s"); rethrow (lasterror ()); end_try_catch endif
--- a/scripts/pkg/private/uninstall.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/pkg/private/uninstall.m Tue Feb 18 08:01:55 2020 -0500 @@ -122,6 +122,11 @@ endif endif if (isfolder (desc.dir)) + ## FIXME: If first call to rmdir fails, then error() will + ## stop further processing of getarchdir & archprefix. + ## If this is, in fact, correct, then calls should + ## just be shortened to rmdir (...) and let rmdir() + ## report failure and reason for failure. [status, msg] = rmdir (desc.dir, "s"); if (status != 1 && isfolder (desc.dir)) error ("couldn't delete directory %s: %s", desc.dir, msg); @@ -131,7 +136,7 @@ error ("couldn't delete directory %s: %s", getarchdir (desc), msg); endif if (dirempty (desc.archprefix)) - rmdir (desc.archprefix, "s"); + sts = rmdir (desc.archprefix, "s"); endif else warning ("directory %s previously lost", desc.dir);
--- a/scripts/prefs/getpref.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/prefs/getpref.m Tue Feb 18 08:01:55 2020 -0500 @@ -151,9 +151,7 @@ %! %! unwind_protect_cleanup %! unlink (fullfile (tmp_home, ".octave_prefs")); -%! if (isfolder (tmp_home)) -%! rmdir (tmp_home); -%! endif +%! sts = rmdir (tmp_home); %! if (isempty (HOME)) %! unsetenv ("HOME"); %! else
--- a/scripts/prefs/setpref.m Mon Feb 17 17:00:44 2020 -0500 +++ b/scripts/prefs/setpref.m Tue Feb 18 08:01:55 2020 -0500 @@ -96,9 +96,7 @@ %! "size mismatch for PREF and VAL"); %! unwind_protect_cleanup %! unlink (fullfile (tmp_home, ".octave_prefs")); -%! if (isfolder (tmp_home)) -%! rmdir (tmp_home); -%! endif +%! sts = rmdir (tmp_home); %! if (isempty (HOME)) %! unsetenv ("HOME"); %! else
--- a/test/deprecate-props.tst Mon Feb 17 17:00:44 2020 -0500 +++ b/test/deprecate-props.tst Tue Feb 18 08:01:55 2020 -0500 @@ -37,25 +37,3 @@ %! endif %! endif %!endfunction - -## text/uicontrol/uipanel/uibuttongroup/uitable "oblique" value for -## "fontangle" property was deprecated in 5.0, remove from version 7: -## * remove "oblique" options in graphics.in.h, QtHandlesUtils.cc, -## and ft-text-renderer.cc -## * remove warnings from update_fontangle in graphics.in.h -%!test -%! hf = figure ("visible", "off"); -%! unwind_protect -%! ht = text (); -%! testprop (ht, "fontangle", "7.0", "oblique"); -%! hui = uicontrol (); -%! testprop (hui, "fontangle", "7.0", "oblique"); -%! hui = uipanel (); -%! testprop (hui, "fontangle", "7.0", "oblique"); -%! hui = uibuttongroup (); -%! testprop (hui, "fontangle", "7.0", "oblique"); -%! hui = uitable (); -%! testprop (hui, "fontangle", "7.0", "oblique"); -%! unwind_protect_cleanup -%! close (hf); -%! end_unwind_protect
--- a/test/pkg/pkg.tst Mon Feb 17 17:00:44 2020 -0500 +++ b/test/pkg/pkg.tst Tue Feb 18 08:01:55 2020 -0500 @@ -31,6 +31,11 @@ %!shared old_prefix, old_archprefix, old_local_list, old_global_list, prefix, restorecfg, restorecache, restoreglobalcache, rmtmpdir, mfile_pkg_name, mfile_pkg_tgz +%!function test_cleanup (prefix) +%! confirm_recursive_rmdir (0, "local"); +%! sts = rmdir (prefix, "s"); +%!endfunction + %!testif HAVE_Z %! ## Do all tests in a temporary directory %! [old_prefix, old_archprefix] = pkg ("prefix"); @@ -48,7 +53,7 @@ %! pkg ("prefix", prefix, prefix); %! pkg ("local_list", fullfile (prefix, "octave_packages")); %! pkg ("global_list", fullfile (prefix, "octave_packages")); -%! rmtmpdir = @onCleanup (@() confirm_recursive_rmdir (0, "local") && rmdir (prefix, "s")); +%! rmtmpdir = @onCleanup (@() test_cleanup (prefix)); %! %! ## Create tar.gz file packages of testing directories in prefix directory %! mfile_pkg_name = {"mfile_basic_test", "mfile_minimal_test"};
--- a/test/publish/publish.tst Mon Feb 17 17:00:44 2020 -0500 +++ b/test/publish/publish.tst Tue Feb 18 08:01:55 2020 -0500 @@ -49,7 +49,7 @@ %! publish (fname{1}, opts); %! endfor %! confirm_recursive_rmdir (false, "local"); -%! rmdir (tmpDir, "s"); +%! sts = rmdir (tmpDir, "s"); %! unwind_protect_cleanup %! set (0, "defaultfigurevisible", visibility); %! graphics_toolkit (toolkit); @@ -81,7 +81,7 @@ %! str1 = fileread ("test_script.m"); %! str2 = grabcode (fullfile (tmpDir, "test_script.html")); %! confirm_recursive_rmdir (false, "local"); -%! rmdir (tmpDir, "s"); +%! sts = rmdir (tmpDir, "s"); %! ## Canonicalize strings %! str1 = strjoin (deblank (strsplit (str1, "\n")), "\n"); %! str2 = strjoin (deblank (strsplit (str2, "\n")), "\n");
--- a/test/system.tst Mon Feb 17 17:00:44 2020 -0500 +++ b/test/system.tst Tue Feb 18 08:01:55 2020 -0500 @@ -104,7 +104,7 @@ %!test %! crr = confirm_recursive_rmdir (); %! confirm_recursive_rmdir (0); -%! assert (!rmdir ("foo", "s")); +%! assert (! rmdir ("foo", "s")); %! confirm_recursive_rmdir (crr); %!test