diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2006-10-27 14:39:43 +0000 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2006-10-27 14:39:43 +0000 |
commit | d32f600dfcda95e50f6966d38a1d9c239902fb85 (patch) | |
tree | 1f22f0fc2d4764daa001b19ffc4bf1eb50dd4000 /lisp/progmodes/octave-inf.el | |
parent | 04a623aac6c05b968557c441bae5b0eb3871940a (diff) | |
download | emacs-d32f600dfcda95e50f6966d38a1d9c239902fb85.tar.gz |
* progmodes/octave-inf.el (inferior-octave-has-built-in-variables):
New defvar.
(inferior-octave-resync-dirs): Check to see whether Octave has
built-in variables and set inferior-octave-has-built-in-variables.
Check inferior-octave-has-built-in-variables to decide whether to
send commands that set built-in variables or call functions to
change Octave's behavior.
Send "disp (pwd ())" to Octave instead of just "pwd".
(inferior-octave-startup): Send "more off" to Octave instead of
"page_screen_output = 0".
Diffstat (limited to 'lisp/progmodes/octave-inf.el')
-rw-r--r-- | lisp/progmodes/octave-inf.el | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/lisp/progmodes/octave-inf.el b/lisp/progmodes/octave-inf.el index 863f972086e..0f20626c9b9 100644 --- a/lisp/progmodes/octave-inf.el +++ b/lisp/progmodes/octave-inf.el @@ -113,6 +113,9 @@ the regular expression `comint-prompt-regexp', a buffer local variable." (defvar inferior-octave-complete-impossible nil "Non-nil means that `inferior-octave-complete' is impossible.") +(defvar inferior-octave-has-built-in-variables nil + "Non-nil means that Octave has built-in variables.") + (defvar inferior-octave-dynamic-complete-functions '(inferior-octave-complete comint-dynamic-complete-filename) "List of functions called to perform completion for inferior Octave. @@ -218,11 +221,20 @@ startup file, `~/.emacs-octave'." 'identity inferior-octave-output-list "\n") "\n")))) + ;; Find out whether Octave has built-in variables. + (inferior-octave-send-list-and-digest + (list "exist \"LOADPATH\"\n")) + (setq inferior-octave-has-built-in-variables + (string-match "101$" (car inferior-octave-output-list))) + ;; An empty secondary prompt, as e.g. obtained by '--braindead', ;; means trouble. (inferior-octave-send-list-and-digest (list "PS2\n")) - (if (string-match "^PS2 = *$" (car inferior-octave-output-list)) - (inferior-octave-send-list-and-digest (list "PS2 = \"> \"\n"))) + (if (string-match "\\(PS2\\|ans\\) = *$" (car inferior-octave-output-list)) + (inferior-octave-send-list-and-digest + (list (if inferior-octave-has-built-in-variables + "PS2 = \"> \"\n" + "PS2 (\"> \");\n")))) ;; O.k., now we are ready for the Inferior Octave startup commands. (let* (commands @@ -230,10 +242,12 @@ startup file, `~/.emacs-octave'." (file (or inferior-octave-startup-file (concat "~/.emacs-" program)))) (setq commands - (list "page_screen_output = 0;\n" + (list "more off;\n" (if (not (string-equal inferior-octave-output-string ">> ")) - "PS1=\"\\\\s> \";\n") + (if inferior-octave-has-built-in-variables + "PS1=\"\\\\s> \";\n" + "PS1 (\"\\\\s> \");\n")) (if (file-exists-p file) (format "source (\"%s\");\n" file)))) (inferior-octave-send-list-and-digest commands)) @@ -383,7 +397,7 @@ Use \\[inferior-octave-resync-dirs] to resync if Emacs gets confused." This command queries the inferior Octave process about its current directory and makes this the current buffer's default directory." (interactive) - (inferior-octave-send-list-and-digest '("pwd\n")) + (inferior-octave-send-list-and-digest '("disp (pwd ())\n")) (cd (car inferior-octave-output-list))) ;;; provide ourself |