From: Stefan Monnier Date: Wed, 11 Sep 2013 16:00:37 +0000 (-0400) Subject: * lisp/eshell/esh-mode.el (eshell-mode-syntax-table): Fix up initialization. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1662^2~33 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=656bd483888ec1620eafdb4037f65af8fe0276ef;p=emacs.git * lisp/eshell/esh-mode.el (eshell-mode-syntax-table): Fix up initialization. (eshell-self-insert-command, eshell-send-invisible): Remove unused argument. (eshell-handle-control-codes): Remove unused var `orig'. Avoid delete-backward-char. Fixes: debbugs:15338 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f5c4ee1b19e..7a79110f4a0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,12 @@ 2013-09-11 Stefan Monnier + * eshell/esh-mode.el (eshell-mode-syntax-table): Fix up initialization + (bug#15338). + (eshell-self-insert-command, eshell-send-invisible): Remove + unused argument. + (eshell-handle-control-codes): Remove unused var `orig'. + Avoid delete-backward-char. + * files.el (set-auto-mode): Simplify a bit further. 2013-09-11 Glenn Morris @@ -74,7 +81,7 @@ 2013-09-10 Stefan Monnier * simple.el: Use set-temporary-overlay-map for universal-argument. - (universal-argument-map): Don't use default-bindings. + (universal-argument-map): Don't use default-bindings (bug#15317). Bind switch-frame explicitly. Replace universal-argument-minus with a conditional binding. (universal-argument-num-events, saved-overriding-map): Remove. diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index 0d32dae7ddb..54a36428d58 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -267,19 +267,20 @@ This is used by `eshell-watch-for-password-prompt'." ;; All non-word multibyte characters should be `symbol'. (map-char-table (if (featurep 'xemacs) - (lambda (key val) + (lambda (key _val) (and (characterp key) (>= (char-int key) 256) (/= (char-syntax key) ?w) (modify-syntax-entry key "_ " st))) - (lambda (key val) + (lambda (key _val) (and (if (consp key) (and (>= (car key) 128) (/= (char-syntax (car key)) ?w)) (and (>= key 256) (/= (char-syntax key) ?w))) (modify-syntax-entry key "_ " st)))) - (standard-syntax-table)))) + (standard-syntax-table)) + st)) ;;; User Functions: @@ -451,8 +452,8 @@ and the hook `eshell-exit-hook'." (add-hook 'pre-command-hook 'eshell-intercept-commands t t) (message "Sending subprocess input directly"))) -(defun eshell-self-insert-command (N) - (interactive "i") +(defun eshell-self-insert-command () + (interactive) (process-send-string (eshell-interactive-process) (char-to-string (if (symbolp last-command-event) @@ -925,10 +926,10 @@ a key." (custom-add-option 'eshell-output-filter-functions 'eshell-truncate-buffer) -(defun eshell-send-invisible (str) +(defun eshell-send-invisible () "Read a string without echoing. Then send it to the process running in the current buffer." - (interactive "P") ; Defeat snooping via C-x ESC ESC + (interactive) ; Don't pass str as argument, to avoid snooping via C-x ESC ESC (let ((str (read-passwd (format "%s Password: " (process-name (eshell-interactive-process)))))) @@ -950,7 +951,7 @@ This function could be in the list `eshell-output-filter-functions'." (beginning-of-line) (if (re-search-forward eshell-password-prompt-regexp eshell-last-output-end t) - (eshell-send-invisible nil))))) + (eshell-send-invisible))))) (custom-add-option 'eshell-output-filter-functions 'eshell-watch-for-password-prompt) @@ -958,32 +959,30 @@ This function could be in the list `eshell-output-filter-functions'." (defun eshell-handle-control-codes () "Act properly when certain control codes are seen." (save-excursion - (let ((orig (point))) - (goto-char eshell-last-output-block-begin) - (unless (eolp) - (beginning-of-line)) - (while (< (point) eshell-last-output-end) - (let ((char (char-after))) - (cond - ((eq char ?\r) - (if (< (1+ (point)) eshell-last-output-end) - (if (memq (char-after (1+ (point))) - '(?\n ?\r)) - (delete-char 1) - (let ((end (1+ (point)))) - (beginning-of-line) - (delete-region (point) end))) - (add-text-properties (point) (1+ (point)) - '(invisible t)) - (forward-char))) - ((eq char ?\a) - (delete-char 1) - (beep)) - ((eq char ?\C-h) - (delete-backward-char 1) - (delete-char 1)) - (t - (forward-char)))))))) + (goto-char eshell-last-output-block-begin) + (unless (eolp) + (beginning-of-line)) + (while (< (point) eshell-last-output-end) + (let ((char (char-after))) + (cond + ((eq char ?\r) + (if (< (1+ (point)) eshell-last-output-end) + (if (memq (char-after (1+ (point))) + '(?\n ?\r)) + (delete-char 1) + (let ((end (1+ (point)))) + (beginning-of-line) + (delete-region (point) end))) + (add-text-properties (point) (1+ (point)) + '(invisible t)) + (forward-char))) + ((eq char ?\a) + (delete-char 1) + (beep)) + ((eq char ?\C-h) + (delete-region (1- (point)) (1+ (point)))) + (t + (forward-char))))))) (custom-add-option 'eshell-output-filter-functions 'eshell-handle-control-codes)