diff options
author | John Wiegley <johnw@newartisans.com> | 2004-05-08 12:39:01 +0000 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2004-05-08 12:39:01 +0000 |
commit | 4403b1e1e066dd85757aecacc115bc3d221f4c93 (patch) | |
tree | 95f98003dae1f1b67959623727d42a0dfa44089a /lisp/eshell | |
parent | db2814522c9d78489c9dd2fa2fee128d71e2ad44 (diff) | |
download | emacs-4403b1e1e066dd85757aecacc115bc3d221f4c93.tar.gz |
2004-05-08 John Wiegley <johnw@newartisans.com>
* 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.
Diffstat (limited to 'lisp/eshell')
-rw-r--r-- | lisp/eshell/em-glob.el | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el index 24447c3e66d..c84962e66b0 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 |