summaryrefslogtreecommitdiff
path: root/lisp/eshell
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/eshell')
-rw-r--r--lisp/eshell/em-hist.el19
-rw-r--r--lisp/eshell/em-ls.el14
-rw-r--r--lisp/eshell/em-tramp.el6
-rw-r--r--lisp/eshell/em-unix.el11
-rw-r--r--lisp/eshell/esh-ext.el2
-rw-r--r--lisp/eshell/esh-mode.el7
-rw-r--r--lisp/eshell/esh-proc.el2
-rw-r--r--lisp/eshell/esh-var.el2
-rw-r--r--lisp/eshell/eshell.el4
9 files changed, 35 insertions, 32 deletions
diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el
index 198b1d017c4..067c5ea7ff2 100644
--- a/lisp/eshell/em-hist.el
+++ b/lisp/eshell/em-hist.el
@@ -119,15 +119,14 @@ If set to t, history will always be saved, silently."
(const :tag "Always save" t))
:group 'eshell-hist)
-(defcustom eshell-input-filter
- (function
- (lambda (str)
- (not (string-match "\\`\\s-*\\'" str))))
+(defcustom eshell-input-filter 'eshell-input-filter-default
"Predicate for filtering additions to input history.
Takes one argument, the input. If non-nil, the input may be saved on
the input history list. Default is to save anything that isn't all
whitespace."
- :type 'function
+ :type '(radio (function-item eshell-input-filter-default)
+ (function-item eshell-input-filter-initial-space)
+ (function :tag "Other function"))
:group 'eshell-hist)
(put 'eshell-input-filter 'risky-local-variable t)
@@ -206,6 +205,16 @@ element, regardless of any text on the command line. In that case,
;;; Functions:
+(defun eshell-input-filter-default (input)
+ "Do not add blank input to input history.
+Returns non-nil if INPUT is blank."
+ (not (string-match "\\`\\s-*\\'" input)))
+
+(defun eshell-input-filter-initial-space (input)
+ "Do not add input beginning with empty space to history.
+Returns nil if INPUT is prepended by blank space, otherwise non-nil."
+ (not (string-match-p "\\`\\s-+" input)))
+
(defun eshell-hist-initialize ()
"Initialize the history management code for one Eshell buffer."
(add-hook 'eshell-expand-input-functions
diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el
index cf6609ff729..8616dd2479b 100644
--- a/lisp/eshell/em-ls.el
+++ b/lisp/eshell/em-ls.el
@@ -101,46 +101,36 @@ faster and conserves more memory."
(((class color) (background dark)) (:foreground "SkyBlue" :weight bold))
(t (:weight bold)))
"The face used for highlighting directories.")
-(define-obsolete-face-alias 'eshell-ls-directory-face
- 'eshell-ls-directory "22.1")
(defface eshell-ls-symlink
'((((class color) (background light)) (:foreground "Dark Cyan" :weight bold))
(((class color) (background dark)) (:foreground "Cyan" :weight bold)))
"The face used for highlighting symbolic links.")
-(define-obsolete-face-alias 'eshell-ls-symlink-face 'eshell-ls-symlink "22.1")
(defface eshell-ls-executable
'((((class color) (background light)) (:foreground "ForestGreen" :weight bold))
(((class color) (background dark)) (:foreground "Green" :weight bold)))
"The face used for highlighting executables (not directories, though).")
-(define-obsolete-face-alias 'eshell-ls-executable-face
- 'eshell-ls-executable "22.1")
(defface eshell-ls-readonly
'((((class color) (background light)) (:foreground "Brown"))
(((class color) (background dark)) (:foreground "Pink")))
"The face used for highlighting read-only files.")
-(define-obsolete-face-alias 'eshell-ls-readonly-face 'eshell-ls-readonly "22.1")
(defface eshell-ls-unreadable
'((((class color) (background light)) (:foreground "Grey30"))
(((class color) (background dark)) (:foreground "DarkGrey")))
"The face used for highlighting unreadable files.")
-(define-obsolete-face-alias 'eshell-ls-unreadable-face
- 'eshell-ls-unreadable "22.1")
(defface eshell-ls-special
'((((class color) (background light)) (:foreground "Magenta" :weight bold))
(((class color) (background dark)) (:foreground "Magenta" :weight bold)))
"The face used for highlighting non-regular files.")
-(define-obsolete-face-alias 'eshell-ls-special-face 'eshell-ls-special "22.1")
(defface eshell-ls-missing
'((((class color) (background light)) (:foreground "Red" :weight bold))
(((class color) (background dark)) (:foreground "Red" :weight bold)))
"The face used for highlighting non-existent file names.")
-(define-obsolete-face-alias 'eshell-ls-missing-face 'eshell-ls-missing "22.1")
(defcustom eshell-ls-archive-regexp
(concat "\\.\\(t\\(a[rz]\\|gz\\)\\|arj\\|lzh\\|"
@@ -155,7 +145,6 @@ files."
'((((class color) (background light)) (:foreground "Orchid" :weight bold))
(((class color) (background dark)) (:foreground "Orchid" :weight bold)))
"The face used for highlighting archived and compressed file names.")
-(define-obsolete-face-alias 'eshell-ls-archive-face 'eshell-ls-archive "22.1")
(defcustom eshell-ls-backup-regexp
"\\(\\`\\.?#\\|\\(\\.bak\\|~\\)\\'\\)"
@@ -166,7 +155,6 @@ files."
'((((class color) (background light)) (:foreground "OrangeRed"))
(((class color) (background dark)) (:foreground "LightSalmon")))
"The face used for highlighting backup file names.")
-(define-obsolete-face-alias 'eshell-ls-backup-face 'eshell-ls-backup "22.1")
(defcustom eshell-ls-product-regexp
"\\.\\(elc\\|o\\(bj\\)?\\|a\\|lib\\|res\\)\\'"
@@ -179,7 +167,6 @@ ought to be recreatable if they are deleted."
'((((class color) (background light)) (:foreground "OrangeRed"))
(((class color) (background dark)) (:foreground "LightSalmon")))
"The face used for highlighting files that are build products.")
-(define-obsolete-face-alias 'eshell-ls-product-face 'eshell-ls-product "22.1")
(defcustom eshell-ls-clutter-regexp
"\\(^texput\\.log\\|^core\\)\\'"
@@ -192,7 +179,6 @@ really need to stick around for very long."
'((((class color) (background light)) (:foreground "OrangeRed" :weight bold))
(((class color) (background dark)) (:foreground "OrangeRed" :weight bold)))
"The face used for highlighting junk file names.")
-(define-obsolete-face-alias 'eshell-ls-clutter-face 'eshell-ls-clutter "22.1")
(defsubst eshell-ls-filetype-p (attrs type)
"Test whether ATTRS specifies a directory."
diff --git a/lisp/eshell/em-tramp.el b/lisp/eshell/em-tramp.el
index 9105c482b38..3eff20d1a1b 100644
--- a/lisp/eshell/em-tramp.el
+++ b/lisp/eshell/em-tramp.el
@@ -72,8 +72,7 @@ Become another USER during a login session.")
(let ((user "root")
(host (or (file-remote-p default-directory 'host)
"localhost"))
- (dir (or (file-remote-p default-directory 'localname)
- (expand-file-name default-directory)))
+ (dir (file-local-name (expand-file-name default-directory)))
(prefix (file-remote-p default-directory)))
(dolist (arg args)
(if (string-equal arg "-") (setq login t) (setq user arg)))
@@ -111,8 +110,7 @@ Execute a COMMAND as the superuser or another USER.")
(let ((user (or user "root"))
(host (or (file-remote-p default-directory 'host)
"localhost"))
- (dir (or (file-remote-p default-directory 'localname)
- (expand-file-name default-directory)))
+ (dir (file-local-name (expand-file-name default-directory)))
(prefix (file-remote-p default-directory)))
;; `eshell-eval-using-options' reads options of COMMAND.
(while (and (stringp (car orig-args))
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el
index c27c18c52ba..e40dbded60b 100644
--- a/lisp/eshell/em-unix.el
+++ b/lisp/eshell/em-unix.el
@@ -748,7 +748,12 @@ external command."
(cmd (progn
(set-text-properties 0 (length args)
'(invisible t) args)
- (format "%s -n %s" command args)))
+ (format "%s -n %s"
+ (pcase command
+ ("egrep" "grep -E")
+ ("fgrep" "grep -F")
+ (x x))
+ args)))
compilation-scroll-output)
(grep cmd)))))
@@ -757,11 +762,11 @@ external command."
(eshell-grep "grep" args t))
(defun eshell/egrep (&rest args)
- "Use Emacs grep facility instead of calling external egrep."
+ "Use Emacs grep facility instead of calling external grep -E."
(eshell-grep "egrep" args t))
(defun eshell/fgrep (&rest args)
- "Use Emacs grep facility instead of calling external fgrep."
+ "Use Emacs grep facility instead of calling external grep -F."
(eshell-grep "fgrep" args t))
(defun eshell/agrep (&rest args)
diff --git a/lisp/eshell/esh-ext.el b/lisp/eshell/esh-ext.el
index ca62d0cf8b0..4d658cd718e 100644
--- a/lisp/eshell/esh-ext.el
+++ b/lisp/eshell/esh-ext.el
@@ -203,7 +203,7 @@ all the output from the remote command, and sends it all at once,
causing the user to wonder if anything's really going on..."
(let ((outbuf (generate-new-buffer " *eshell remote output*"))
(errbuf (generate-new-buffer " *eshell remote error*"))
- (command (or (file-remote-p command 'localname) command))
+ (command (file-local-name command))
(exitcode 1))
(unwind-protect
(progn
diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el
index 14964f9aab8..e687fd2dcbd 100644
--- a/lisp/eshell/esh-mode.el
+++ b/lisp/eshell/esh-mode.el
@@ -296,7 +296,7 @@ and the hook `eshell-exit-hook'."
(run-hooks 'eshell-exit-hook))
;;;###autoload
-(define-derived-mode eshell-mode fundamental-mode "EShell"
+(define-derived-mode eshell-mode fundamental-mode "Eshell"
"Emacs shell interactive mode."
(setq-local eshell-mode t)
@@ -380,6 +380,11 @@ and the hook `eshell-exit-hook'."
(make-local-variable 'eshell-modules-list)
(setq eshell-modules-list modules-list))
+ ;; This is to avoid making the paragraph base direction
+ ;; right-to-left if the first word just happens to start with a
+ ;; strong R2L character.
+ (setq bidi-paragraph-direction 'left-to-right)
+
;; load extension modules into memory. This will cause any global
;; variables they define to be visible, since some of the core
;; modules sometimes take advantage of their functionality if used.
diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el
index 8c6bad089c5..21680df765d 100644
--- a/lisp/eshell/esh-proc.el
+++ b/lisp/eshell/esh-proc.el
@@ -279,7 +279,7 @@ See `eshell-needs-pipe'."
(let ((process-connection-type
(unless (eshell-needs-pipe-p command)
process-connection-type))
- (command (or (file-remote-p command 'localname) command)))
+ (command (file-local-name command)))
(apply 'start-file-process
(file-name-nondirectory command) nil
;; `start-process' can't deal with relative filenames.
diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el
index 7213ad70e84..5915efbac1e 100644
--- a/lisp/eshell/esh-var.el
+++ b/lisp/eshell/esh-var.el
@@ -530,7 +530,7 @@ Integers imply a direct index, and names, an associate lookup using
For example, to retrieve the second element of a user's record in
'/etc/passwd', the variable reference would look like:
- ${egrep johnw /etc/passwd}[: 2]"
+ ${grep johnw /etc/passwd}[: 2]"
(while indices
(let ((refs (car indices)))
(when (stringp value)
diff --git a/lisp/eshell/eshell.el b/lisp/eshell/eshell.el
index 8b21730ef33..54281a72c7a 100644
--- a/lisp/eshell/eshell.el
+++ b/lisp/eshell/eshell.el
@@ -308,9 +308,9 @@ With prefix ARG, insert output into the current buffer at point."
(eshell-parse-command command))))
intr
(bufname (if (and proc (listp proc))
- "*EShell Async Command Output*"
+ "*Eshell Async Command Output*"
(setq intr t)
- "*EShell Command Output*")))
+ "*Eshell Command Output*")))
(if (buffer-live-p (get-buffer bufname))
(kill-buffer bufname))
(rename-buffer bufname)