[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bug#443439: emacs: run-octave captures the shell directory tracker
From: |
Francesco Potorti` |
Subject: |
Re: Bug#443439: emacs: run-octave captures the shell directory tracker |
Date: |
Fri, 21 Sep 2007 12:29:05 +0200 |
Shell mode is unusable together with octave inferior mode, because it
often loses the notion of current directory. Appended is a patch.
Apparently there are two problems.
The facts: shell mode adds a directory tracker to comint input filters,
but only locally:
| comint-input-filter-functions is a variable defined in `comint.el'.
| Its value is
| (shell-directory-tracker t)
|
| Permanently local in buffer *shell*; global value is nil
However, octave-inf mode changes it also globally, and in fact, after
running M-x run-octave RET, one gets this in the shell buffer:
| comint-input-filter-functions is a variable defined in `comint.el'.
| Its value is
| (shell-directory-tracker t)
|
| Permanently local in buffer *shell*; global value is
| (inferior-octave-directory-tracker)
My interpretation:
The first problem is that inferior-octave-mode sets
comint-input-filter-functions globally rather than locally only.
The second problem is that shell-mode uses the global value of
comint-input-filter-functions rather than the local one.
This patch solves (or hides?) the first problem and removes the
symptoms. The second problem, if I diagnosed it correctly, is more
serious and I will not touch upon it.
2007-09-21 Francesco Potortì <pot@gnu.org>
* progmodes/octave-inf.el (inferior-octave-mode): make local the
comint-input-filter-functions variable before setting it.
--- /usr/share/emacs/22.1/lisp/progmodes/octave-inf.el~ 2007-01-21
04:20:44.000000000 +0100
+++ /usr/share/emacs/22.1/lisp/progmodes/octave-inf.el 2007-09-21
12:11:09.000000000 +0200
@@ -153,8 +153,9 @@ Entry to this mode successively runs the
(setq comint-input-ring-file-name
(or (getenv "OCTAVE_HISTFILE") "~/.octave_hist")
- comint-input-ring-size (or (getenv "OCTAVE_HISTSIZE") 1024)
- comint-input-filter-functions '(inferior-octave-directory-tracker))
+ comint-input-ring-size (or (getenv "OCTAVE_HISTSIZE") 1024))
+ (set (make-local-variable 'comint-input-filter-functions)
+ '(inferior-octave-directory-tracker))
(set (make-local-variable 'comint-dynamic-complete-functions)
inferior-octave-dynamic-complete-functions)
(comint-read-input-ring t)
If this patch is good, I can install it in the Emacs CVS.
--
Francesco Potortì (ricercatore) Voice: +39 050 315 3058 (op.2111)
ISTI - Area della ricerca CNR Fax: +39 050 315 2040
via G. Moruzzi 1, I-56124 Pisa Email: Potorti@isti.cnr.it
Web: http://fly.isti.cnr.it/ Key: fly.isti.cnr.it/public.key
- emacs: run-octave captures the shell directory tracker, Francesco Potorti`, 2007/09/21
- Re: Bug#443439: emacs: run-octave captures the shell directory tracker,
Francesco Potorti` <=
- Re: Bug#443439: emacs: run-octave captures the shell directory tracker, Andreas Schwab, 2007/09/21
- Re: Bug#443439: emacs: run-octave captures the shell directory tracker, Francesco Potorti`, 2007/09/21
- Re: Bug#443439: emacs: run-octave captures the shell directory tracker, John W. Eaton, 2007/09/21
- Message not available
- Message not available
- Re: Bug#443439: emacs: run-octave captures the shell directory tracker, Francesco Potorti`, 2007/09/21
- Re: Bug#443439: emacs: run-octave captures the shell directory tracker, Andreas Schwab, 2007/09/21
- Re: Bug#443439: emacs: run-octave captures the shell directory tracker, Glenn Morris, 2007/09/22
- Re: Bug#443439: emacs: run-octave captures the shell directory tracker, Francesco Potorti`, 2007/09/22