Mercurial > emacs
changeset 15465:d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
author | Noah Friedman <friedman@splode.com> |
---|---|
date | Thu, 20 Jun 1996 17:30:41 +0000 |
parents | 230bc36941bf |
children | 5affe3230dfb |
files | lisp/rlogin.el |
diffstat | 1 files changed, 19 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/rlogin.el Thu Jun 20 17:26:00 1996 +0000 +++ b/lisp/rlogin.el Thu Jun 20 17:30:41 1996 +0000 @@ -23,7 +23,7 @@ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. -;; $Id: rlogin.el,v 1.32 1996/05/08 00:52:30 friedman Exp rms $ +;; $Id: rlogin.el,v 1.33 1996/06/14 21:30:41 rms Exp friedman $ ;;; Commentary: @@ -187,7 +187,12 @@ ;; comint-output-filter-functions is just like a hook, except that the ;; functions in that list are passed arguments. add-hook serves well ;; enough for modifying it. - (add-hook 'comint-output-filter-functions 'rlogin-carriage-filter) + ;; comint-output-filter-functions should already have a + ;; permanent-local property, at least in emacs 19.27 or later. + (if (fboundp 'make-local-hook) + (make-local-hook 'comint-output-filter-functions) + (make-local-variable 'comint-output-filter-functions)) + (add-hook 'comint-output-filter-functions 'ftelnet-carriage-filter) (rlogin-mode) @@ -196,17 +201,18 @@ (make-local-variable 'rlogin-remote-user) (setq rlogin-remote-user user) - (cond - ((eq rlogin-directory-tracking-mode t) - ;; Do this here, rather than calling the tracking mode function, to - ;; avoid a gratuitous resync check; the default should be the - ;; user's home directory, be it local or remote. - (setq comint-file-name-prefix - (concat "/" rlogin-remote-user "@" rlogin-host ":")) - (cd-absolute comint-file-name-prefix)) - ((null rlogin-directory-tracking-mode)) - (t - (cd-absolute (concat comint-file-name-prefix "~/")))))))) + (condition-case () + (cond ((eq rlogin-directory-tracking-mode t) + ;; Do this here, rather than calling the tracking mode + ;; function, to avoid a gratuitous resync check; the default + ;; should be the user's home directory, be it local or remote. + (setq comint-file-name-prefix + (concat "/" rlogin-remote-user "@" rlogin-host ":")) + (cd-absolute comint-file-name-prefix)) + ((null rlogin-directory-tracking-mode)) + (t + (cd-absolute (concat comint-file-name-prefix "~/")))) + (error nil)))))) (defun rlogin-mode () "Set major-mode for rlogin sessions.