From 6ed020c8386a672048dda4ed80ee23c75cb20424 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Thu, 12 Jun 2003 22:20:49 +0000 Subject: [PATCH] (shell-command-separator-regexp): New variable. (shell-directory-tracker): Make regexp used for skipping to next command correspond to one used for command itself. --- lisp/shell.el | 14 ++++++++++++-- 1 file 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")))) -- 2.39.5