Mercurial > hg > octave-lyh
diff gui/src/octave-gui.cc @ 15137:16a6b0a6855d gui
GUI: support for octave arguments and integrate with run-octave.
* src/octave.h (octave_initialize_interpreter, octave_execute_interpreter):
New functions.
(octave_cmdline_argc, octave_cmdline_argv, octave_embedded): New variables.
* src/octave.cc (octave_cmdline_argc, octave_cmdline_argv, octave_embedded):
New variables.
(octave_initialize_interpreter, octave_execute_interpreter): New functions.
(octave_main): Rewrite using them.
* run-octave.in (octave_executable): New variable.
(-gui): New option flag.
* gui/src/octave-adapter/octave-main-thread.cc (octave_main_thread::run):
Use octave_execute_interpreter.
* gui/src/octave-gui.cc (dissociate_terminal): New function.
(main): Use it. Also use octave_initialize_interpreter.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sun, 05 Aug 2012 16:15:58 -0400 |
parents | d02b229ce693 |
children | bfc220d1de67 |
line wrap: on
line diff
--- a/gui/src/octave-gui.cc +++ b/gui/src/octave-gui.cc @@ -22,36 +22,43 @@ #include "resource-manager.h" #include "main-window.h" -int -main (int argc, char *argv[]) +// Dissociate from the controlling terminal, if any. + +static void +dissociate_terminal (void) { - /* dissociate from the controlling terminal, if any */ +#if ! defined (Q_OS_WIN32) || defined (Q_OS_CYGWIN) + pid_t pid = fork (); - pid_t pid = fork (); if (pid < 0) { - //fprintf (stderr, "fork failed\n"); - return 1; + std::cerr << "fork failed!" << std::endl;; + exit (1); } else if (pid == 0) { - /* child */ - //fprintf (stderr, "in child, calling setsid ()\n"); + // Child. if (setsid () < 0) { - //fprintf (stderr, "setsid error\n"); - return 1; + std::cerr << "setsid error" << std::endl; + exit (1); } } else - { - /* parent */ - //fprintf (stderr, "in parent, exiting\n"); - exit (0); - } + exit (0); +#endif +} + +int +main (int argc, char *argv[]) +{ + octave_initialize_interpreter (argc, argv, 0); + + dissociate_terminal (); QApplication application (argc, argv); + while (true) { if (resource_manager::instance ()->is_first_run ())