38 #include <sys/select.h>
39 #include <sys/types.h>
85 #define SHELL_PATH "/bin/sh"
120 std::string parent_fcn_name = m_fcn->parent_fcn_name ();
122 if (print_subfn && ! parent_fcn_name.empty ())
125 retval += m_fcn->name ();
128 retval =
"<unknown>";
181 while (p !=
cs.begin ())
207 while (p !=
cs.begin ())
239 size_t k =
cs.size ();
259 curr_user_frame = retval - curr_user_frame - 1;
271 while (p !=
cs.begin ())
299 while (p !=
cs.begin ())
318 "column",
"scope",
"context", 0
328 std::list<octave_call_stack::stack_frame>
332 std::list<octave_call_stack::stack_frame> retval;
336 size_t nframes = nskip <= user_code_frames ? user_code_frames - nskip : 0;
339 curr_user_frame = nframes - curr_user_frame - 1;
354 retval.push_back (elt);
365 bool print_subfn)
const
367 std::list<octave_call_stack::stack_frame> frames
370 size_t nframes = frames.size ();
383 for (std::list<octave_call_stack::stack_frame>::const_iterator p = frames.begin ();
384 p != frames.end (); p++)
391 name(k) = elt.
fcn_name (print_subfn);
418 <<
" at line " << elt.
m_line
444 if ((incr < 0 && xframe == 0) || (incr > 0 && xframe ==
cs.size () - 1))
469 std::ostringstream buf;
472 buf <<
"stopped in " << f->
name ()
473 <<
" at line " << elt.
m_line << std::endl;
475 buf <<
"at top level" << std::endl;
500 bool skipped =
false;
504 xframe =
cs[xframe].m_prev;
577 :
new octave_lexer (stdin));
593 retval = parser.
run ();
639 catch (octave_interrupt_exception)
646 catch (octave_execution_exception)
649 std::cerr <<
"error: unhandled execution exception -- trying to return to prompt"
652 catch (std::bad_alloc)
655 std::cerr <<
"error: out of memory -- trying to return to prompt"
676 static bool deja_vu =
false;
680 while (! octave_atexit_functions.empty ())
682 std::string fcn = octave_atexit_functions.front ();
684 octave_atexit_functions.pop_front ();
779 gnulib::sleep (86400);
785 (*octave_exit) (status);
791 @deftypefn {Built-in Function} {} exit\n\
792 @deftypefnx {Built-in Function} {} exit (@var{status})\n\
793 @deftypefnx {Built-in Function} {} quit\n\
794 @deftypefnx {Built-in Function} {} quit (@var{status})\n\
795 Exit the current Octave session.\n\
797 If the optional integer value @var{status} is supplied, pass that value to\n\
798 the operating system as Octave's exit status. The default value is zero.\n\
800 When exiting, Octave will attempt to run the m-file @file{finish.m} if it\n\
801 exists. User commands to save the workspace or clean up temporary files\n\
802 may be placed in that file. Alternatively, another m-file may be scheduled\n\
803 to run using @code{atexit}.\n\
816 error (
"quit: not supported in embedded mode");
819 if (args.length () > 0)
821 int tmp = args(0).nint_value ();
850 @deftypefn {Built-in Function} {} warranty ()\n\
851 Describe the conditions for copying and distributing Octave.\n\
858 GNU Octave is free software; you can redistribute it and/or modify\n\
859 it under the terms of the GNU General Public License as published by\n\
860 the Free Software Foundation; either version 3 of the License, or\n\
861 (at your option) any later version.\n\
863 GNU Octave is distributed in the hope that it will be useful,\n\
864 but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
865 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
866 GNU General Public License for more details.\n\
868 You should have received a copy of the GNU General Public License\n\
869 along with this program. If not, see <http://www.gnu.org/licenses/>.\n\
882 #if defined (HAVE_SELECT)
890 retval = gnulib::select (FD_SETSIZE, &set, 0, 0, 0);
914 std::ostringstream output_buf;
924 if (! cmd->eof () && errno == EAGAIN)
936 int cmd_status = cmd->
close ();
943 retval(1) = output_buf.str ();
944 retval(0) = cmd_status;
947 error (
"unable to start subprocess for '%s'", cmd_str.c_str ());
954 DEFUN (system, args, nargout,
956 @deftypefn {Built-in Function} {} system (\"@var{string}\")\n\
957 @deftypefnx {Built-in Function} {} system (\"@var{string}\", @var{return_output})\n\
958 @deftypefnx {Built-in Function} {} system (\"@var{string}\", @var{return_output}, @var{type})\n\
959 @deftypefnx {Built-in Function} {[@var{status}, @var{output}] =} system (@dots{})\n\
960 Execute a shell command specified by @var{string}.\n\
962 If the optional argument @var{type} is @qcode{\"async\"}, the process is\n\
963 started in the background and the process ID of the child process is\n\
964 returned immediately. Otherwise, the child process is started and Octave\n\
965 waits until it exits. If the @var{type} argument is omitted, it defaults to\n\
966 the value @qcode{\"sync\"}.\n\
968 If @var{system} is called with one or more output arguments, or if the\n\
969 optional argument @var{return_output} is true and the subprocess is started\n\
970 synchronously, then the output from the command is returned as a variable.\n\
971 Otherwise, if the subprocess is executed synchronously, its output is sent\n\
972 to the standard output. To send the output of a command executed with\n\
973 @code{system} through the pager, use a command like\n\
977 [output, text] = system (\"cmd\");\n\
986 printf (\"%s\\n\", nthargout (2, \"system\", \"cmd\"));\n\
989 The @code{system} function can return two values. The first is the\n\
990 exit status of the command and the second is any output from the\n\
991 command that was written to the standard output stream. For example,\n\
994 [status, output] = system (\"echo foo; exit 2\");\n\
998 will set the variable @code{output} to the string @samp{foo}, and the\n\
999 variable @code{status} to the integer @samp{2}.\n\
1001 For commands run asynchronously, @var{status} is the process id of the\n\
1002 command shell that is started to run the command.\n\
1003 @seealso{unix, dos}\n\
1010 int nargin = args.length ();
1012 if (nargin > 0 && nargin < 4)
1014 bool return_output = (nargin == 1 && nargout > 1);
1020 if (args(2).is_string ())
1022 std::string type_str = args(2).string_value ();
1024 if (type_str ==
"sync")
1026 else if (type_str ==
"async")
1030 error (
"system: TYPE must be \"sync\" or \"async\"");
1036 error (
"system: TYPE must be a string");
1043 return_output = args(1).is_true ();
1047 error (
"system: RETURN_OUTPUT must be boolean value true or false");
1052 if (return_output && type ==
et_async)
1054 error (
"system: can't return output from commands run asynchronously");
1058 std::string cmd_str = args(0).string_value ();
1062 #if defined (__WIN32__) && ! defined (__CYGWIN__)
1065 cmd_str =
"\"" + cmd_str +
"\"";
1072 pid_t pid = fork ();
1075 error (
"system: fork failed -- can't create child process");
1081 execl (
SHELL_PATH,
"sh",
"-c", cmd_str.c_str (),
1082 static_cast<void *
> (0));
1088 #elif defined (__WIN32__)
1090 PROCESS_INFORMATION pi;
1091 ZeroMemory (&si,
sizeof (si));
1092 ZeroMemory (&pi,
sizeof (pi));
1094 strcpy (xcmd_str, cmd_str.c_str ());
1096 if (! CreateProcess (0, xcmd_str, 0, 0, FALSE, 0, 0, 0, &si, &pi))
1097 error (
"system: CreateProcess failed -- can't create child process");
1100 retval(0) = pi.dwProcessId;
1101 CloseHandle (pi.hProcess);
1102 CloseHandle (pi.hThread);
1105 error (
"asynchronous system calls are not supported");
1108 else if (return_output)
1112 int status = system (cmd_str.c_str ());
1126 error (
"system: expecting string as first argument");
1149 octave_atexit_functions.push_front (fname);
1157 for (std::list<std::string>::iterator p = octave_atexit_functions.begin ();
1158 p != octave_atexit_functions.end (); p++)
1162 octave_atexit_functions.erase (p);
1172 DEFUN (atexit, args, nargout,
1174 @deftypefn {Built-in Function} {} atexit (@var{fcn})\n\
1175 @deftypefnx {Built-in Function} {} atexit (@var{fcn}, @var{flag})\n\
1176 Register a function to be called when Octave exits.\n\
1182 function last_words ()\n\
1183 disp (\"Bye bye\");\n\
1185 atexit (\"last_words\");\n\
1190 will print the message @qcode{\"Bye bye\"} when Octave exits.\n\
1192 The additional argument @var{flag} will register or unregister @var{fcn}\n\
1193 from the list of functions to be called when Octave exits. If @var{flag} is\n\
1194 true, the function is registered, and if @var{flag} is false, it is\n\
1195 unregistered. For example, after registering the function @code{last_words}\n\
1199 atexit (\"last_words\", false);\n\
1203 will remove the function from the list and Octave will not call\n\
1204 @code{last_words} when it exits.\n\
1206 Note that @code{atexit} only removes the first occurrence of a function\n\
1207 from the list, so if a function was placed in the list multiple times with\n\
1208 @code{atexit}, it must also be removed from the list multiple times.\n\
1214 int nargin = args.
length ();
1216 if (nargin == 1 || nargin == 2)
1218 if (args(0).is_string ())
1220 std::string
arg = args(0).string_value ();
1222 bool add_mode =
true;
1226 add_mode = args(1).bool_value ();
1229 error (
"atexit: FLAG argument must be a logical value");
1246 error (
"atexit: FCN argument must be a string");
1254 DEFUN (octave_config_info, args, ,
1256 @deftypefn {Built-in Function} {} octave_config_info ()\n\
1257 @deftypefnx {Built-in Function} {} octave_config_info (@var{option})\n\
1258 Return a structure containing configuration and installation information for\n\
1261 If @var{option} is a string, return the configuration information for the\n\
1262 specified option.\n\
1264 @seealso{computer}\n\
1269 #if defined (ENABLE_DYNAMIC_LINKING)
1270 bool octave_supports_dynamic_linking =
true;
1272 bool octave_supports_dynamic_linking =
false;
1275 static bool initialized =
false;
1278 struct conf_info_struct
1285 static const conf_info_struct conf_info[] =
1475 m.
assign (
"float_format",
1478 m.
assign (
"words_big_endian",
1481 m.
assign (
"words_little_endian",
1490 const conf_info_struct& elt = conf_info[i++];
1492 const char *key = elt.key;
1505 bool unix_system =
true;
1506 bool mac_system =
false;
1507 bool windows_system =
false;
1510 windows_system =
true;
1511 #if !defined (__CYGWIN__)
1512 unix_system =
false;
1516 #if defined (OCTAVE_USE_OS_X_API)
1527 int nargin = args.length ();
1531 std::string
arg = args(0).string_value ();
1540 error (
"octave_config_info: no info for '%s'", arg.c_str ());
1545 error (
"octave_config_info: invalid parameter '%s'", arg.c_str ());
1548 else if (nargin == 0)
1566 #if defined (__GNUG__) && defined (DEBUG_NEW_DELETE)
1568 int debug_new_delete = 0;
1570 typedef void (*vfp)(void);
1571 extern vfp __new_handler;
1574 __builtin_new (
size_t sz)
1584 (*__new_handler) ();
1588 if (debug_new_delete)
1589 std::cerr <<
"__builtin_new: " << p << std::endl;
1595 __builtin_delete (
void *ptr)
1597 if (debug_new_delete)
1598 std::cerr <<
"__builtin_delete: " << ptr << std::endl;
static void close_all_figures(void)
static std::list< std::string > octave_atexit_functions
#define OCTAVE_SAFE_CALL(F, ARGS)
#define OCTAVE_CONF_TERM_LIBS
#define OCTAVE_CONF_CAMD_LDFLAGS
volatile sig_atomic_t octave_signal_caught
static bool ignoring_entries(void)
#define OCTAVE_FCNFILEDIR
#define OCTAVE_CONF_FLTK_CPPFLAGS
static void unload_all_toolkits(void)
#define OCTAVE_CONF_CAMD_CPPFLAGS
const Cell & contents(const_iterator p) const
bool is_empty(void) const
#define OCTAVE_CONF_COLAMD_CPPFLAGS
#define OCTAVE_CONF_PTHREAD_CFLAGS
#define OCTAVE_CONF_WARN_CFLAGS
bool isfield(const std::string &name) const
#define OCTAVE_CONF_LLVM_LDFLAGS
void octave_restore_signal_mask(void)
#define OCTAVE_CONF_QT_LIBS
#define OCTAVE_CONF_CCOLAMD_LIBS
std::string fcn_name(bool print_subfn=true) const
void(* octave_interrupt_hook)(void)=0
static std::string float_format_as_string(float_format)
static bool at_top_level(void)
#define OCTAVE_CONF_QHULL_CPPFLAGS
#define OCTAVE_CONF_X11_LIBS
#define OCTAVE_CONF_COLAMD_LDFLAGS
#define OCTAVE_LOCALVEROCTFILEDIR
#define OCTAVE_CONF_OPENGL_LIBS
void raw_mode(bool on, bool wait)
void do_push(octave_function *fcn, symbol_table::scope_id scope, symbol_table::context_id context)
#define OCTAVE_CONF_CPPFLAGS
static std::string subst_octave_home(const std::string &s)
#define OCTAVE_CONF_QHULL_LDFLAGS
#define OCTAVE_CONF_OCT_LINK_DEPS
void recover_from_exception(void)
OCTINTERP_API void print_usage(void)
void octave_save_signal_mask(void)
static void restore_terminal_state(void)
#define OCTAVE_LOCALFCNFILEDIR
octave_idx_type length(void) const
#define OCTAVE_CONF_CURL_LDFLAGS
void accept(tree_walker &tw)
const octave_value & contents(const_iterator p) const
#define OCTAVE_CONF_SH_LDFLAGS
#define OCTAVE_CONF_OCT_LINK_OPTS
#define OCTAVE_CONF_OSMESA_CPPFLAGS
#define OCTAVE_CONF_READLINE_LIBS
#define OCTAVE_CONF_PCRE_LIBS
int do_caller_user_code_column(void) const
#define OCTAVE_CONF_MAGICK_CPPFLAGS
#define OCTAVE_CONF_LIBFLAGS
static bool ifexited(int status)
#define OCTAVE_CONF_ALL_CFLAGS
#define OCTAVE_LOCALSTARTUPFILEDIR
#define OCTAVE_CONF_SH_LD
static void process_events(bool disable=false)
void octave_throw_interrupt_exception(void)
#define OCTAVE_CONF_ARPACK_LDFLAGS
#define OCTAVE_CONF_LLVM_CPPFLAGS
#define OCTAVE_CONF_LIBEXT
virtual bool is_user_code(void) const
std::list< octave_call_stack::stack_frame > do_backtrace_frames(size_t nskip, octave_idx_type &curr_user_frame) const
#define DEFUN(name, args_name, nargout_name, doc)
#define OCTAVE_LOCALARCHLIBDIR
void error(const char *fmt,...)
octave_interrupt_handler octave_catch_interrupts(void)
#define OCTAVE_CONF_MAGICK_LIBS
std::string name(void) const
octave_value_list feval(const std::string &name, const octave_value_list &args, int nargout)
std::string fcn_file_name(void) const
#define OCTAVE_CONF_FONTCONFIG_LIBS
void(* octave_bad_alloc_hook)(void)=0
#define OCTAVE_CONF_SHLEXT
#define OCTAVE_STARTUPFILEDIR
#define OCTAVE_OCTTESTSDIR
bool do_all_scripts(void) const
#define OCTAVE_OCTFILEDIR
#define OCTAVE_CONF_LD_CXX
#define OCTAVE_API_VERSION
#define OCTAVE_ARCHLIBDIR
#define OCTAVE_CONF_UMFPACK_CPPFLAGS
static const char * bt_fieldnames[]
#define OCTAVE_CONF_OSMESA_LDFLAGS
#define OCTAVE_CONF_SONAME_FLAGS
#define OCTAVE_CONF_CURL_CPPFLAGS
#define OCTAVE_CONF_config_opts
void sysdep_cleanup(void)
#define OCTAVE_CONF_Z_CPPFLAGS
#define OCTAVE_CONF_ALL_CXXFLAGS
static OCTAVE_API void clear(void)
#define OCTAVE_CANONICAL_HOST_TYPE
#define OCTAVE_CONF_Z_LDFLAGS
#define OCTAVE_CONF_HDF5_LDFLAGS
#define OCTAVE_CONF_QRUPDATE_CPPFLAGS
#define OCTAVE_CONF_LEXLIB
#define OCTAVE_CONF_GLPK_LIBS
#define OCTAVE_CONF_OCTAVE_LINK_OPTS
static void create_instance(void)
#define OCTAVE_CONF_AMD_CPPFLAGS
#define OCTAVE_CONF_GNUPLOT
#define OCTAVE_CONF_GCC_VERSION
void cleanup_tmp_files(void)
#define OCTAVE_DATAROOTDIR
#define OCTAVE_CONF_CCOLAMD_CPPFLAGS
This class gets nodes and searchs inside of 'info files'.
static scope_id top_scope(void)
#define OCTAVE_CONF_DL_LD
static void clean_up_and_save(const std::string &=std::string(), int=-1)
#define OCTAVE_CONF_FPICFLAG
#define OCTAVE_CONF_GLPK_LDFLAGS
#define DEFALIAS(alias, name)
#define OCTAVE_CONF_RDYNAMIC_FLAG
std::deque< stack_frame > cs
#define OCTAVE_CONF_SHARED_LIBS
static bool exit(int status)
#define OCTAVE_CONF_LAPACK_LIBS
void do_goto_caller_frame(void)
#define OCTAVE_CONF_QHULL_LIBS
F77_RET_T const double const double * f
void add_fcn(void(*fcn)(void))
#define OCTAVE_DEFAULT_PAGER
#define OCTAVE_CONF_XTRA_CFLAGS
#define OCTAVE_CONF_PCRE_CPPFLAGS
#define OCTAVE_CONF_QT_CPPFLAGS
#define OCTAVE_CONF_AMD_LIBS
std::deque< stack_frame >::const_iterator const_iterator
static llvm::LLVMContext & context
void octave_history_write_timestamp(void)
#define OCTAVE_CONF_STATIC_LIBS
#define OCTAVE_CONF_CHOLMOD_LIBS
#define OCTAVE_CONF_CFLAGS
#define OCTAVE_CONF_PTHREAD_LIBS
int do_current_column(void) const
bool do_goto_frame(size_t n, bool verbose)
#define OCTAVE_CONF_FFTW3_LIBS
#define OCTAVE_CONF_LIBOCTAVE
#define OCTAVE_CONF_OCTAVE_LINK_DEPS
#define OCTAVE_CONF_FLTK_LDFLAGS
static bool words_little_endian(void)
int do_caller_user_code_line(void) const
sig_atomic_t octave_exception_state
#define OCTAVE_INCLUDEDIR
#define OCTAVE_CONF_FLTK_LIBS
#define OCTAVE_CONF_OSMESA_LIBS
static void cleanup(void)
#define OCTAVE_CONF_SHLEXT_VER
#define OCTAVE_CONF_FONTCONFIG_CPPFLAGS
#define OCTAVE_CONF_CXSPARSE_LDFLAGS
octave_scalar_map octave_config_features(void)
#define OCTAVE_CONF_AMD_LDFLAGS
#define panic_impossible()
#define OCTAVE_CONF_HDF5_LIBS
void clean_up_and_exit(int status, bool safe_to_return)
void reset_error_handler(void)
sig_atomic_t octave_interrupt_state
#define OCTAVE_CONF_F77_FLOAT_STORE_FLAG
static void reset_debug_state(void)
#define OCTAVE_CONF_RANLIB
static void remove(pid_t pid)
virtual bool is_user_script(void) const
#define OCTAVE_CONF_XTRA_CXXFLAGS
static bool words_big_endian(void)
#define OCTAVE_CONF_LIBOCTINTERP
#define OCTAVE_CONF_LLVM_LIBS
#define OCTAVE_CONF_ALL_LDFLAGS
#define OCTAVE_LOCALAPIFCNFILEDIR
#define OCTAVE_LOCALOCTFILEDIR
#define OCTAVE_CONF_WARN_CXXFLAGS
octave_map do_backtrace(size_t nskip, octave_idx_type &curr_user_frame, bool print_subfn) const
symbol_table::scope_id m_scope
sig_atomic_t octave_interrupt_immediately
#define OCTAVE_LOCALVERARCHLIBDIR
tree_evaluator * current_evaluator
size_t do_num_user_code_frames(octave_idx_type &curr_user_frame) const
#define OCTAVE_CONF_CARBON_LIBS
#define OCTAVE_CONF_FFLAGS
#define OCTAVE_CONF_QRUPDATE_LIBS
void octave_signal_handler(void)
#define OCTAVE_CONF_CXXFLAGS
octave_base_lexer & lexer
#define OCTAVE_CONF_FT2_CPPFLAGS
bool do_goto_frame_relative(int n, bool verbose)
#define OCTAVE_OCTDATADIR
#define OCTAVE_CONF_CPICFLAG
#define OCTAVE_LOCALAPIOCTFILEDIR
#define OCTAVE_CONF_Z_LIBS
#define OCTAVE_CONF_YFLAGS
virtual std::string fcn_file_name(void) const
void(* octave_signal_hook)(void)=0
bool octave_remove_atexit_function(const std::string &fname)
static const octave_fields bt_fields(bt_fieldnames)
static octave_value_list run_command_and_return_output(const std::string &cmd_str)
static bool confirm_shutdown(void)
#define OCTAVE_CONF_MAGICK_LDFLAGS
#define OCTAVE_CONF_DL_LIBS
static float_format native_float_format(void)
#define OCTAVE_CONF_CCOLAMD_LDFLAGS
#define OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS
#define OCTAVE_CONF_FLIBS
void octave_add_atexit_function(const std::string &fname)
#define OCTAVE_EXEC_PREFIX
#define OCTAVE_CONF_DL_LDFLAGS
#define OCTAVE_CONF_FFTW3F_CPPFLAGS
void octave_finalize_hdf5(void)
#define OCTAVE_CONF_CHOLMOD_CPPFLAGS
#define OCTAVE_CONF_FFTW3F_LDFLAGS
void assign(const std::string &k, const octave_value &val)
#define OCTAVE_CONF_GLPK_CPPFLAGS
#define OCTAVE_CONF_CXSPARSE_LIBS
#define OCTAVE_CONF_COLAMD_LIBS
#define OCTAVE_CONF_CHOLMOD_LDFLAGS
#define OCTAVE_CONF_CXSPARSE_CPPFLAGS
#define OCTAVE_CONF_FFTW3_LDFLAGS
#define OCTAVE_CONF_FFTW3F_LIBS
#define OCTAVE_CONF_HDF5_CPPFLAGS
tree_statement_list * stmt_list
#define OCTAVE_CONF_UMFPACK_LDFLAGS
#define OCTAVE_LOCAL_BUFFER(T, buf, size)
#define OCTAVE_CONF_USE_64_BIT_IDX_T
std::string octave_name_version_and_copyright(void)
#define OCTAVE_CONF_LD_STATIC_FLAG
static int exitstatus(int status)
#define OCTAVE_CONF_GXX_VERSION
#define OCTAVE_CONF_ALL_FFLAGS
#define OCTAVE_CONF_BLAS_LIBS
#define OCTAVE_CONF_QT_LDFLAGS
#define OCTAVE_CONF_QRUPDATE_LDFLAGS
#define OCTAVE_CONF_X11_INCFLAGS
static void do_octave_atexit(void)
#define OCTAVE_OCTINCLUDEDIR
#define OCTAVE_LOCALAPIARCHLIBDIR
static octave_map empty_backtrace(void)
static octave_call_stack * instance
#define OCTAVE_CONF_CXXPICFLAG
#define OCTAVE_CONF_ENABLE_DYNAMIC_LINKING
#define OCTAVE_CONF_LFLAGS
#define OCTAVE_LIBEXECDIR
#define OCTAVE_CONF_F77_INTEGER_8_FLAG
#define OCTAVE_CONF_LDFLAGS
static void increment_current_command_number(void)
void clear_mex_functions(void)
#define OCTAVE_CONF_EXEEXT
#define OCTAVE_CONF_CURL_LIBS
#define OCTAVE_CONF_FFTW3_CPPFLAGS
int do_current_line(void) const
octave_user_code * do_caller_user_code(size_t nskip) const
#define OCTAVE_CONF_ARPACK_CPPFLAGS
std::deque< stack_frame >::const_reverse_iterator const_reverse_iterator
bool octave_interpreter_ready
int file_number(void) const
static void cleanup_instance(void)
static int wait_for_input(int fid)
symbol_table::context_id m_context
#define OCTAVE_LOCALVERFCNFILEDIR
static void set_scope_and_context(scope_id scope, context_id context)
#define OCTAVE_CONF_CXXCPP
#define OCTAVE_CONF_UMFPACK_LIBS
void do_goto_base_frame(void)
#define OCTAVE_CONF_FT2_LIBS
#define OCTAVE_CONF_CAMD_LIBS
#define OCTAVE_CONF_ARPACK_LIBS
#define OCTAVE_CONF_ARFLAGS