2013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
+ * 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 <rgm@gnu.org>
2013-09-10 Stefan Monnier <monnier@iro.umontreal.ca>
* 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.
;; 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:
(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)
(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))))))
(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)
(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)