From help-octave-request at bevo dot che dot wisc dot edu Thu Oct 19 00:04:18 1995 Subject: Can't interrupt Octave, and some sugestions. From: Joao Cardoso To: help-octave at bevo dot che dot wisc dot edu Date: Thu, 19 Oct 1995 06:04:08 +0100 (MET) Hi, I can't interrupt processing in octave. The first time I hit the DEL key, sending a SIGINT, everything goes OK; however, the second and subsequent times, it does not work. If I am really in trouble I must generate a core dump (CTRL-\). I thing that this behaviour is caused by way that signals are handled in octave. In most octave sources the `signal' interface is used, while in other places, `info' and `readline', `sigaction' is used, which causes conflits. The man pages say to not mix both interfaces. Even after purging _POSIX_SOURCE from `info' and `readline', I still have one reference to `sigaction'... Not to speak in sigprocmask and similar... Will this be corrected in the next release? (OK, I don't ask when will it be issued :) Another (related?) problem is how to put a process in the background using octave's `system'. A SIGCHLD signal handler is not setup, I generate lots of `defunct' process. It seems that: I noticed system("emacs > /dev/tty &") does work! (Rick Niles says.) By the way, I found that many questions asked here are already answered in octave's www, http://bevo.che.wisc.edu/octave.html. A very good and usefull work! Thanks! Still another question: How to disable the builtins? Could't first the .m files be scanned and if none if found, only then the builtins would be called? In this way, one could personalize some items, and eventually modify/correct others. An example is the gnuplot `set' command. I want to use _my_ own, and still use all my software that already uses the builtin `set'. An alias, perhaps? A suggestion: I have lots of data files organized in subdirectories, and I have create in .octaverc a variable called DATADIR, which 'points' to the top of the subdirectories tree using the LOADPATH syntax. I then use: file = file_in_path (DATADIR,"waveform.data"); cmd = sprintf("load %s", file); eval(cmd); and I don't have to worry where the file actualy is. Couldn't this be the default behaviour for load? I think it is nice... Another question: why doesn't pause() works if octave in invoked non- -interactively? (Exactly because this, will you answer!). I have just tried to put a `#!/usr/local/bin/octave -q' on top of a .m file, and invoking the .m file directly, and pause(10) didn't work. And at last: why the name octave? (excuse my ignorance). Thanks, Joao