changeset 28380:548556e78bdf

make --traditional option easily accessible to the interpreter * interpreter.h, interpreter.cc (interpreter::m_traditional): New data member. (interpreter::traditional): New functions. (F__traditional__): New function.
author John W. Eaton <jwe@octave.org>
date Fri, 29 May 2020 15:08:48 -0400
parents e5b76489b1f2
children cdeaa66309ad
files libinterp/corefcn/interpreter.cc libinterp/corefcn/interpreter.h
diffstat 2 files changed, 24 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/interpreter.cc	Fri May 29 10:57:04 2020 -0400
+++ b/libinterp/corefcn/interpreter.cc	Fri May 29 15:08:48 2020 -0400
@@ -295,6 +295,15 @@
   return retval;
 }
 
+DEFMETHOD (__traditional__, interp, , ,
+           doc: /* -*- texinfo -*-
+@deftypefn {} {} __traditional__ ()
+Undocumented internal function.
+@end deftypefn */)
+{
+  return ovl (interp.traditional ());
+}
+
 namespace octave
 {
   temporary_file_list::~temporary_file_list (void)
@@ -463,6 +472,7 @@
       m_read_site_files (true),
       m_read_init_files (m_app_context != nullptr),
       m_verbose (false),
+      m_traditional (false),
       m_inhibit_startup_message (false),
       m_load_path_initialized (false),
       m_history_initialized (false),
@@ -513,7 +523,6 @@
       m_display_info.initialize ();
 
     bool line_editing = false;
-    bool traditional = false;
 
     if (m_app_context)
       {
@@ -565,7 +574,7 @@
             && ! options.forced_line_editing ())
           line_editing = false;
 
-        traditional = options.traditional ();
+        m_traditional = options.traditional ();
 
         // FIXME: if possible, perform the following actions directly
         // instead of using the interpreter-level functions.
@@ -625,7 +634,7 @@
     // This should be done before initializing the load path because
     // some PKG_ADD files might need --traditional behavior.
 
-    if (traditional)
+    if (m_traditional)
       maximum_braindamage ();
 
     octave_interpreter_ready = true;
--- a/libinterp/corefcn/interpreter.h	Fri May 29 10:57:04 2020 -0400
+++ b/libinterp/corefcn/interpreter.h	Fri May 29 15:08:48 2020 -0400
@@ -180,6 +180,16 @@
       m_verbose = flag;
     }
 
+    void traditional (bool flag)
+    {
+      m_traditional = flag;
+    }
+
+    bool traditional (void) const
+    {
+      return m_traditional;
+    }
+
     void inhibit_startup_message (bool flag)
     {
       m_inhibit_startup_message = flag;
@@ -552,6 +562,8 @@
 
     bool m_verbose;
 
+    bool m_traditional;
+
     bool m_inhibit_startup_message;
 
     bool m_load_path_initialized;