From 303829ba8bab38208aa4adb20dedea95481b38b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=BCtzel?= <65065102+mmuetzel@users.noreply.github.com> Date: Wed, 20 Oct 2021 08:40:55 +0200 Subject: [PATCH] Restore compatibility with Octave 6.x or newer The implementation of `legend` was completely overhauled for Octave 6.x. Implementation details have changed. The new code still uses undocumented implementation details that might change in the future. But I don't know of a documented way to get that information. See also this bug reported on Octave's bug tracker: https://savannah.gnu.org/bugs/?61352 --- src/matlab2tikz.m | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/matlab2tikz.m b/src/matlab2tikz.m index 45d28c0d..7fe7e690 100755 --- a/src/matlab2tikz.m +++ b/src/matlab2tikz.m @@ -1132,9 +1132,14 @@ case guitypes() switch getEnvironment() case 'Octave' - % See set(hlegend, "deletefcn", {@deletelegend2, ca, [], [], t1, hplots}); in legend.m - delfun = get(legendHandle,'deletefcn'); - entries = delfun{6}; + if isappdata(legendHandle,'__peer_objects__') + % Octave version 6.x or newer with refactored legend + entries = getappdata(legendHandle,'__peer_objects__') + else + % See set(hlegend, "deletefcn", {@deletelegend2, ca, [], [], t1, hplots}); in legend.m + delfun = get(legendHandle,'deletefcn'); + entries = delfun{6}; + end % Bubble-up legend entry properties from child to hggroup root % for guessable objects