;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
+;;; Commentary:
+
;;; Code:
(require 'octave-mod)
:group 'octave-inferior)
(defcustom inferior-octave-prompt
- "\\(^octave\\(\\|.bin\\)\\(:[0-9]+\\)?\\|^debug\\|^\\)>+ "
+ "\\(^octave\\(\\|.bin\\)\\(-[.0-9]+\\)?\\(:[0-9]+\\)?\\|^debug\\|^\\)>+ "
"*Regexp to match prompts for the inferior Octave process."
:type 'regexp
:group 'octave-inferior)
file)
:group 'octave-inferior)
-(defcustom inferior-octave-startup-args '("-i")
+(defcustom inferior-octave-startup-args nil
"*List of command line arguments for the inferior Octave process.
For example, for suppressing the startup message and using `traditional'
mode, set this to (\"-q\" \"--traditional\")."
;; Could certainly do more font locking in inferior Octave ...
"Additional expressions to highlight in Inferior Octave mode.")
+
+;;; Compatibility functions
+(if (not (fboundp 'comint-line-beginning-position))
+ ;; comint-line-beginning-position is defined in Emacs 21
+ (defun comint-line-beginning-position ()
+ "Returns the buffer position of the beginning of the line, after any prompt.
+The prompt is assumed to be any text at the beginning of the line matching
+the regular expression `comint-prompt-regexp', a buffer local variable."
+ (save-excursion (comint-bol nil) (point))))
+
+
(defvar inferior-octave-output-list nil)
(defvar inferior-octave-output-string nil)
(defvar inferior-octave-receive-in-progress nil)
"Non-nil means that `inferior-octave-complete' is impossible.")
(defvar inferior-octave-dynamic-complete-functions
- '(inferior-octave-complete comint-dynamic-complete-filename)
+ '(inferior-octave-complete comint-dynamic-complete-filename)
"List of functions called to perform completion for inferior Octave.
This variable is used to initialize `comint-dynamic-complete-functions'
in the Inferior Octave buffer.")
(use-local-map inferior-octave-mode-map)
(set-syntax-table inferior-octave-mode-syntax-table)
- (make-local-variable 'comment-start)
+ (make-local-variable 'comment-start)
(setq comment-start octave-comment-start)
(make-local-variable 'comment-end)
(setq comment-end "")
(make-local-variable 'comment-column)
- (setq comment-column 32)
+ (setq comment-column 32)
(make-local-variable 'comment-start-skip)
(setq comment-start-skip octave-comment-start-skip)
(substring inferior-octave-buffer 1 -1)
inferior-octave-buffer
inferior-octave-program
- inferior-octave-startup-args)))
+ (append (list "-i" "--no-line-editing")
+ inferior-octave-startup-args))))
(set-process-filter proc 'inferior-octave-output-digest)
(setq comint-ptyp process-connection-type
inferior-octave-process proc
(setq commands
(list "page_screen_output = 0;\n"
(if (not (string-equal
- inferior-octave-output-string ">> "))
+ inferior-octave-output-string ">> "))
"PS1=\"\\\\s> \";\n")
(if (file-exists-p file)
(format "source (\"%s\");\n" file))))
is NOT available with versions of Octave prior to 2.0."
(interactive)
(let* ((end (point))
- (command (save-excursion
- (skip-syntax-backward "w_")
- (and (looking-at comint-prompt-regexp)
- (goto-char (match-end 0)))
- (buffer-substring-no-properties (point) end)))
+ (command
+ (save-excursion
+ (skip-syntax-backward "w_" (comint-line-beginning-position))
+ (buffer-substring-no-properties (point) end)))
(proc (get-buffer-process inferior-octave-buffer))
(filter (process-filter proc)))
(cond (inferior-octave-complete-impossible
(provide 'octave-inf)
+;;; arch-tag: bdce0395-24d1-4bb4-bfba-6fb1eeb1a660
;;; octave-inf.el ends here