diff libinterp/corefcn/toplev.cc @ 22089:c2c668b3051b

use classes for octave application and interpreter * main-cli.cc (main): Simplify using class objects. * main-gui.cc (main): Likeiwse. * octave.h, octave.cc (octave::cmdline_options, octave::application, octave::cli_application, octave::embedded_application, octave::interpreter): New classes. Replace ordinary functions and static/global data with objects. Access global application data through application object. * octave-gui.h, octave-gui.cc (octave::gui_application): New class. Replace ordinary functions and static/global data with objects. * main-window.cc (main_window::m_app_context): New data member. (main_window::main_window): Pass application object instead of start_gui flag. (main_window::construct_octave_qt_link): Pass m_app_context to octave_qt_link constructor. * octave-interpreter.h, octave-interpreter.cc (octave_interpreter::m_app_context, octave_interpreter::m_exit_status): New data members. (octave_interpreter::execute): Use class object to start interpreter. Save exit status. * octave-qt-link.h, octave-qt-link.cc (octave_qt_link::m_app_context): New data member. (octave_qt_link::do_set_default_prompts): Make prompt settings conditional on whether the GUI is running. * input.h, input.cc (interactive, forced_interactive): Delete global data. * dirfns.cc, error.cc, input.cc, oct-stream.cc, pager.cc, sighandlers.cc, sysdep.cc, toplev.cc, lex.ll: Access interactive and forced_interactive through global application object.
author John W. Eaton <jwe@octave.org>
date Sun, 10 Jul 2016 07:15:21 -0400
parents 6db928d06b07
children 0f6fc2ec3b1a
line wrap: on
line diff
--- a/libinterp/corefcn/toplev.cc	Mon Jul 11 13:45:12 2016 -0400
+++ b/libinterp/corefcn/toplev.cc	Sun Jul 10 07:15:21 2016 -0400
@@ -65,6 +65,7 @@
 #include "input.h"
 #include "lex.h"
 #include "load-save.h"
+#include "octave.h"
 #include "octave-link.h"
 #include "oct-hist.h"
 #include "oct-map.h"
@@ -685,7 +686,7 @@
 
   // The big loop.
 
-  octave_lexer *lxr = (interactive
+  octave_lexer *lxr = (octave::application::interactive ()
                        ? new octave_lexer ()
                        : new octave_lexer (stdin));
 
@@ -713,7 +714,7 @@
 
                   octave_quit ();
 
-                  if (! interactive)
+                  if (! octave::application::interactive ())
                     {
                       bool quit = (tree_return_command::returning
                                    || tree_break_command::breaking);
@@ -745,7 +746,7 @@
             return exit_status;
 
           // Required newline when the user does Ctrl+C at the prompt.
-          if (interactive)
+          if (octave::application::interactive ())
             octave_stdout << "\n";
         }
       catch (const index_exception& e)
@@ -763,7 +764,7 @@
           if (! stack_trace.empty ())
             std::cerr << stack_trace;
 
-          if (interactive)
+          if (octave::application::interactive ())
             recover_from_exception ();
           else
             {
@@ -790,7 +791,7 @@
     }
   while (retval == 0);
 
-  if (interactive)
+  if (octave::application::interactive ())
     octave_stdout << "\n";
 
   if (retval == EOF)
@@ -863,7 +864,7 @@
 
       OCTAVE_SAFE_CALL (flush_octave_stdout, ());
 
-      if (! quitting_gracefully && interactive)
+      if (! quitting_gracefully && octave::application::interactive ())
         {
           octave_stdout << "\n";