changeset 31480:1bbcaa97b2dd stable

adapt to rl_completer_word_break_characters being declared const * cmd-edit.cc (gnu_readline::do_completer_word_break_hook): Return copy of string returned from octave_rl_get_completer_word_break_characters. * oct-rl-edit.h, oct-rl-edit.c (octave_rl_get_completer_word_break_characters): Declare return value as "const char *", not "char *", to match change in readline declaration of rl_completer_word_break_characters.
author John W. Eaton <jwe@octave.org>
date Sat, 19 Nov 2022 00:01:26 -0500
parents ef7418c5df8a
children cfa938be2999 864d29fb932b
files liboctave/util/cmd-edit.cc liboctave/util/oct-rl-edit.c liboctave/util/oct-rl-edit.h
diffstat 3 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/util/cmd-edit.cc	Fri Nov 18 23:50:41 2022 -0500
+++ b/liboctave/util/cmd-edit.cc	Sat Nov 19 00:01:26 2022 -0500
@@ -582,9 +582,16 @@
       }
     else
       {
+        static char *word_break_chars = nullptr;
+
         ::octave_rl_set_completer_quote_characters ("");
 
-        return octave_rl_get_completer_word_break_characters ();
+        free (word_break_chars);
+
+        word_break_chars
+          = octave_strdup_wrapper (octave_rl_get_completer_word_break_characters ());
+
+        return word_break_chars;
       }
   }
 
--- a/liboctave/util/oct-rl-edit.c	Fri Nov 18 23:50:41 2022 -0500
+++ b/liboctave/util/oct-rl-edit.c	Sat Nov 19 00:01:26 2022 -0500
@@ -307,7 +307,7 @@
   rl_completer_word_break_characters = ss;
 }
 
-char *
+const char *
 octave_rl_get_completer_word_break_characters (void)
 {
   return rl_completer_word_break_characters;
--- a/liboctave/util/oct-rl-edit.h	Fri Nov 18 23:50:41 2022 -0500
+++ b/liboctave/util/oct-rl-edit.h	Sat Nov 19 00:01:26 2022 -0500
@@ -129,7 +129,7 @@
 
 extern void octave_rl_set_completer_word_break_characters (const char *);
 
-extern char * octave_rl_get_completer_word_break_characters (void);
+extern const char * octave_rl_get_completer_word_break_characters (void);
 
 extern void octave_rl_set_completion_word_break_hook (rl_completion_hook_fcn_ptr);