From 4403b1e1e066dd85757aecacc115bc3d221f4c93 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sat, 8 May 2004 12:39:01 +0000 Subject: 2004-05-08 John Wiegley * eshell/em-glob.el (eshell-glob-initialize): Move initialization of `eshell-glob-chars-regexp' into `eshell-glob-regexp', so that function can be used outside of eshell buffers. (eshell-glob-regexp): Initialize `eshell-glob-chars-regexp' here. --- lisp/eshell/em-glob.el | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'lisp/eshell') diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el index 24447c3e66..c84962e66b 100644 --- a/lisp/eshell/em-glob.el +++ b/lisp/eshell/em-glob.el @@ -122,10 +122,6 @@ This option slows down recursive glob processing by quite a bit." :type '(repeat (cons character (choice regexp function))) :group 'eshell-glob) -;;; Internal Variables: - -(defvar eshell-glob-chars-regexp nil) - ;;; Functions: (defun eshell-glob-initialize () @@ -134,8 +130,6 @@ This option slows down recursive glob processing by quite a bit." (when (boundp 'eshell-special-chars-outside-quoting) (set (make-local-variable 'eshell-special-chars-outside-quoting) (append eshell-glob-chars-list eshell-special-chars-outside-quoting))) - (set (make-local-variable 'eshell-glob-chars-regexp) - (format "[%s]+" (apply 'string eshell-glob-chars-list))) (add-hook 'eshell-parse-argument-hook 'eshell-parse-glob-chars t t) (add-hook 'eshell-pre-rewrite-command-hook 'eshell-no-command-globbing nil t)) @@ -184,6 +178,8 @@ interpretation." (buffer-substring-no-properties (1- (point)) (1+ end)) (goto-char (1+ end)))))))))) +(defvar eshell-glob-chars-regexp nil) + (defun eshell-glob-regexp (pattern) "Convert glob-pattern PATTERN to a regular expression. The basic syntax is: @@ -204,8 +200,11 @@ set to true, then these characters will match themselves in the resulting regular expression." (let ((matched-in-pattern 0) ; How much of PATTERN handled regexp) - (while (string-match eshell-glob-chars-regexp - pattern matched-in-pattern) + (while (string-match + (or eshell-glob-chars-regexp + (set (make-local-variable 'eshell-glob-chars-regexp) + (format "[%s]+" (apply 'string eshell-glob-chars-list)))) + pattern matched-in-pattern) (let* ((op-begin (match-beginning 0)) (op-char (aref pattern op-begin))) (setq regexp -- cgit v1.2.3