]> code.delx.au - gnu-emacs/commitdiff
* progmodes/octave-inf.el (inferior-octave-has-built-in-variables):
authorChong Yidong <cyd@stupidchicken.com>
Fri, 27 Oct 2006 14:39:43 +0000 (14:39 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Fri, 27 Oct 2006 14:39:43 +0000 (14:39 +0000)
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".

lisp/ChangeLog
lisp/progmodes/octave-inf.el

index ad36d29542c19741a0e6691bd2905a2adde0b81d..661a54aa4cb05fc347df4c5860fb5bcb10757926 100644 (file)
@@ -1,3 +1,16 @@
+2006-10-26  John W. Eaton  <jwe@octave.org>
+
+       * 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".
+
 2006-10-26  Chong Yidong  <cyd@stupidchicken.com>
 
        * emacs-lisp/cl-indent.el (lisp-indent-259): Indent nil's in the
index 863f972086efa3a65f93626c3791777d3342aa93..0f20626c9b942fef091b481b31cc24a635aaeaf4 100644 (file)
@@ -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