-;;; em-glob.el --- extended file name globbing
+;;; em-glob.el --- extended file name globbing -*- lexical-binding:t -*-
-;; Copyright (C) 1999-2011 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
;;; Code:
-(eval-when-compile (require 'eshell))
(require 'esh-util)
+(eval-when-compile (require 'eshell))
;;;###autoload
-(eshell-defgroup eshell-glob nil
+(progn
+(defgroup eshell-glob nil
"This module provides extended globbing syntax, similar what is used
by zsh for filename generation."
:tag "Extended filename globbing"
- :group 'eshell-module)
+ :group 'eshell-module))
;;; User Variables:
-(defcustom eshell-glob-load-hook '(eshell-glob-initialize)
+(defcustom eshell-glob-load-hook nil
"A list of functions to run when `eshell-glob' is loaded."
+ :version "24.1" ; removed eshell-glob-initialize
:type 'hook
:group 'eshell-glob)
(defcustom eshell-error-if-no-glob nil
"If non-nil, it is an error for a glob pattern not to match.
- This mimcs the behavior of zsh if non-nil, but bash if nil."
+ This mimics the behavior of zsh if non-nil, but bash if nil."
:type 'boolean
:group 'eshell-glob)
"*" "+")) (+ pos 2))
(cons "*" (1+ pos))))))
"An alist for translation of extended globbing characters."
- :type '(repeat (cons character (choice regexp function)))
+ :type '(alist :key-type character
+ :value-type (choice string function))
:group 'eshell-glob)
;;; Functions:
;; if this is a glob pattern than needs to be expanded, then it
;; will need to expand each member of the resulting glob list
(add-to-list 'eshell-current-modifiers
- '(lambda (list)
- (if (listp list)
- (mapcar 'expand-file-name list)
- (expand-file-name list)))))
+ (lambda (list)
+ (if (listp list)
+ (mapcar 'expand-file-name list)
+ (expand-file-name list)))))
(add-to-list 'eshell-current-modifiers 'eshell-extended-glob))
(defun eshell-parse-glob-chars ()
(goto-char (1+ end))))))))))
(defvar eshell-glob-chars-regexp nil)
+(defvar eshell-glob-matches)
+(defvar message-shown)
(defun eshell-glob-regexp (pattern)
"Convert glob-pattern PATTERN to a regular expression.
(error "No matches found: %s" glob)
glob))))
-(defvar eshell-glob-matches)
-(defvar message-shown)
-
;; FIXME does this really need to abuse eshell-glob-matches, message-shown?
(defun eshell-glob-entries (path globs &optional recurse-p)
"Glob the entries in PATHS, possibly recursing if RECURSE-P is non-nil."