diff options
author | Juanma Barranquero <lekktu@gmail.com> | 2003-06-12 22:20:49 +0000 |
---|---|---|
committer | Juanma Barranquero <lekktu@gmail.com> | 2003-06-12 22:20:49 +0000 |
commit | 6ed020c8386a672048dda4ed80ee23c75cb20424 (patch) | |
tree | cade116b8eb468efea485c4077db89677fc27b6f /lisp/shell.el | |
parent | b80263be1b94458dfbfdd2a23438a7888fcd4312 (diff) | |
download | emacs-6ed020c8386a672048dda4ed80ee23c75cb20424.tar.gz |
(shell-command-separator-regexp): New variable.
(shell-directory-tracker): Make regexp used for skipping to next command
correspond to one used for command itself.
Diffstat (limited to 'lisp/shell.el')
-rw-r--r-- | lisp/shell.el | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lisp/shell.el b/lisp/shell.el index 9905fde3712..fdf80cba220 100644 --- a/lisp/shell.el +++ b/lisp/shell.el @@ -202,6 +202,12 @@ This is used for directory tracking and does not do a perfect job." :type 'regexp :group 'shell) +(defcustom shell-command-separator-regexp "[;&|\n \t]*" + "*Regexp to match a single command within a pipeline. +This is used for directory tracking and does not do a perfect job." + :type 'regexp + :group 'shell) + (defcustom shell-completion-execonly t "*If non-nil, use executable files only for completion candidates. This mirrors the optional behavior of tcsh. @@ -608,7 +614,9 @@ Environment variables are expanded, see function `substitute-in-file-name'." (if shell-dirtrackp ;; We fail gracefully if we think the command will fail in the shell. (condition-case chdir-failure - (let ((start (progn (string-match "^[; \t]*" str) ; skip whitespace + (let ((start (progn (string-match + (concat "^" shell-command-separator-regexp) + str) ; skip whitespace (match-end 0))) end cmd arg1) (while (string-match shell-command-regexp str start) @@ -634,7 +642,9 @@ Environment variables are expanded, see function `substitute-in-file-name'." "\\)\\($\\|[ \t]\\)") cmd)) (shell-process-cd (comint-substitute-in-file-name cmd)))) - (setq start (progn (string-match "[; \t]*" str end) ; skip again + (setq start (progn (string-match shell-command-separator-regexp + str end) + ;; skip again (match-end 0))))) (error "Couldn't cd")))) |