defvar. Replaces `dired-move-to-filename-regexp' from dired.el.
* dired.el (dired-move-to-filename-regexp): Removed. All
occurences replaced by `directory-listing-before-filename-regexp'.
* dired-x.el, locate.el, vc.el: Replace
`dired-move-to-filename-regexp' by
`directory-listing-before-filename-regexp'. In vc.el it is
overwritten locally; maybe this can be handled in files.el too.
* net/ange-ftp.el (ange-ftp-date-regexp): Removed. All occurences
replaced by `directory-listing-before-filename-regexp'.
* faq.texi (Bugs and problems): Replace
`dired-move-to-filename-regexp' by
`directory-listing-before-filename-regexp'.
+2005-10-23 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.el (directory-listing-before-filename-regexp): New
+ defvar. Replaces `dired-move-to-filename-regexp' from dired.el.
+
+ * dired.el (dired-move-to-filename-regexp): Removed. All
+ occurences replaced by `directory-listing-before-filename-regexp'.
+
+ * dired-x.el, locate.el, vc.el: Replace
+ `dired-move-to-filename-regexp' by
+ `directory-listing-before-filename-regexp'. In vc.el it is
+ overwritten locally; maybe this can be handled in files.el too.
+
+ * net/ange-ftp.el (ange-ftp-date-regexp): Removed. All occurences
+ replaced by `directory-listing-before-filename-regexp'.
+
2005-10-23 Andreas Schwab <schwab@suse.de>
* font-lock.el (lisp-font-lock-keywords-2): Add eval-at-startup
;; Karsten Wenger <kw@cis.uni-muenchen.de> fixed uid.
(setq uid (buffer-substring (+ (point) 1)
(progn (forward-word 1) (point))))
- (re-search-forward dired-move-to-filename-regexp)
+ (re-search-forward directory-listing-before-filename-regexp)
(goto-char (match-beginning 1))
(forward-char -1)
(setq size (string-to-number (buffer-substring (save-excursion
;; line, the alignment if this line w.r.t the rest is messed up because
;; the fields of that one line will generally be smaller.
;;
- ;; To work around this problem, we here add spaces to try and re-align the
- ;; fields as needed. Since this is purely aesthetic, it is of utmost
- ;; importance that it doesn't mess up anything like
- ;; `dired-move-to-filename'. To this end, we limit ourselves to adding
- ;; spaces only, and to only add them at places where there was already at
- ;; least one space. This way, as long as `dired-move-to-filename-regexp'
- ;; always matches spaces with "*" or "+", we know we haven't made anything
- ;; worse. There is one spot where the exact number of spaces is
- ;; important, which is just before the actual filename, so we refrain from
- ;; adding spaces there (and within the filename as well, of course).
+ ;; To work around this problem, we here add spaces to try and
+ ;; re-align the fields as needed. Since this is purely aesthetic,
+ ;; it is of utmost importance that it doesn't mess up anything like
+ ;; `dired-move-to-filename'. To this end, we limit ourselves to
+ ;; adding spaces only, and to only add them at places where there
+ ;; was already at least one space. This way, as long as
+ ;; `directory-listing-before-filename-regexp' always matches spaces
+ ;; with "*" or "+", we know we haven't made anything worse. There
+ ;; is one spot where the exact number of spaces is important, which
+ ;; is just before the actual filename, so we refrain from adding
+ ;; spaces there (and within the filename as well, of course).
(save-excursion
(let (file file-col other other-col)
;; Check the there is indeed a file, and that there is anoter adjacent
(setq switches (concat "--dired " switches)))
;; We used to specify the C locale here, to force English month names;
;; but this should not be necessary any more,
- ;; with the new value of dired-move-to-filename-regexp.
+ ;; with the new value of `directory-listing-before-filename-regexp'.
(if file-list
(dolist (f file-list)
(let ((beg (point)))
\f
;;; Functions for finding the file name in a dired buffer line.
-(defvar dired-move-to-filename-regexp
- (let* ((l "\\([A-Za-z]\\|[^\0-\177]\\)")
- (l-or-quote "\\([A-Za-z']\\|[^\0-\177]\\)")
- ;; In some locales, month abbreviations are as short as 2 letters,
- ;; and they can be followed by ".".
- ;; In Breton, a month name can include a quote character.
- (month (concat l-or-quote l-or-quote "+\\.?"))
- (s " ")
- (yyyy "[0-9][0-9][0-9][0-9]")
- (dd "[ 0-3][0-9]")
- (HH:MM "[ 0-2][0-9][:.][0-5][0-9]")
- (seconds "[0-6][0-9]\\([.,][0-9]+\\)?")
- (zone "[-+][0-2][0-9][0-5][0-9]")
- (iso-mm-dd "[01][0-9]-[0-3][0-9]")
- (iso-time (concat HH:MM "\\(:" seconds "\\( ?" zone "\\)?\\)?"))
- (iso (concat "\\(\\(" yyyy "-\\)?" iso-mm-dd "[ T]" iso-time
- "\\|" yyyy "-" iso-mm-dd "\\)"))
- (western (concat "\\(" month s "+" dd "\\|" dd "\\.?" s month "\\)"
- s "+"
- "\\(" HH:MM "\\|" yyyy "\\)"))
- (western-comma (concat month s "+" dd "," s "+" yyyy))
- ;; Japanese MS-Windows ls-lisp has one-digit months, and
- ;; omits the Kanji characters after month and day-of-month.
- ;; On Mac OS X 10.3, the date format in East Asian locales is
- ;; day-of-month digits followed by month digits.
- (mm "[ 0-1]?[0-9]")
- (east-asian
- (concat "\\(" mm l "?" s dd l "?" s "+"
- "\\|" dd s mm s "+" "\\)"
- "\\(" HH:MM "\\|" yyyy l "?" "\\)")))
- ;; The "[0-9]" below requires the previous column to end in a digit.
- ;; This avoids recognizing `1 may 1997' as a date in the line:
- ;; -r--r--r-- 1 may 1997 1168 Oct 19 16:49 README
- ;; The "[BkKMGTPEZY]?" below supports "ls -alh" output.
- ;; The ".*" below finds the last match if there are multiple matches.
- ;; This avoids recognizing `jservice 10 1024' as a date in the line:
- ;; drwxr-xr-x 3 jservice 10 1024 Jul 2 1997 esg-host
- (concat ".*[0-9][BkKMGTPEZY]?" s
- "\\(" western "\\|" western-comma "\\|" east-asian "\\|" iso "\\)"
- s "+"))
- "Regular expression to match up to the file name in a directory listing.
-The default value is designed to recognize dates and times
-regardless of the language.")
-
(defvar dired-permission-flags-regexp
"\\([^ ]\\)[-r][-w]\\([^ ]\\)[-r][-w]\\([^ ]\\)[-r][-w]\\([^ ]\\)"
"Regular expression to match the permission flags in `ls -l'.")
(cond
((and change (< change eol))
(goto-char change))
- ((re-search-forward dired-move-to-filename-regexp eol t)
+ ((re-search-forward directory-listing-before-filename-regexp eol t)
(goto-char (match-end 0)))
((re-search-forward dired-permission-flags-regexp eol t)
;; Ha! There *is* a file. Our regexp-from-hell just failed to find it.
(if raise-error
- (error "Unrecognized line! Check dired-move-to-filename-regexp"))
+ (error "Unrecognized line! Check directory-listing-before-filename-regexp"))
(beginning-of-line)
nil)
(raise-error
(forward-word -1)
(buffer-substring (point) end)))))))))
+;; The following expression replaces `dired-move-to-filename-regexp'.
+(defvar directory-listing-before-filename-regexp
+ (let* ((l "\\([A-Za-z]\\|[^\0-\177]\\)")
+ (l-or-quote "\\([A-Za-z']\\|[^\0-\177]\\)")
+ ;; In some locales, month abbreviations are as short as 2 letters,
+ ;; and they can be followed by ".".
+ ;; In Breton, a month name can include a quote character.
+ (month (concat l-or-quote l-or-quote "+\\.?"))
+ (s " ")
+ (yyyy "[0-9][0-9][0-9][0-9]")
+ (dd "[ 0-3][0-9]")
+ (HH:MM "[ 0-2][0-9][:.][0-5][0-9]")
+ (seconds "[0-6][0-9]\\([.,][0-9]+\\)?")
+ (zone "[-+][0-2][0-9][0-5][0-9]")
+ (iso-mm-dd "[01][0-9]-[0-3][0-9]")
+ (iso-time (concat HH:MM "\\(:" seconds "\\( ?" zone "\\)?\\)?"))
+ (iso (concat "\\(\\(" yyyy "-\\)?" iso-mm-dd "[ T]" iso-time
+ "\\|" yyyy "-" iso-mm-dd "\\)"))
+ (western (concat "\\(" month s "+" dd "\\|" dd "\\.?" s month "\\)"
+ s "+"
+ "\\(" HH:MM "\\|" yyyy "\\)"))
+ (western-comma (concat month s "+" dd "," s "+" yyyy))
+ ;; Japanese MS-Windows ls-lisp has one-digit months, and
+ ;; omits the Kanji characters after month and day-of-month.
+ ;; On Mac OS X 10.3, the date format in East Asian locales is
+ ;; day-of-month digits followed by month digits.
+ (mm "[ 0-1]?[0-9]")
+ (east-asian
+ (concat "\\(" mm l "?" s dd l "?" s "+"
+ "\\|" dd s mm s "+" "\\)"
+ "\\(" HH:MM "\\|" yyyy l "?" "\\)")))
+ ;; The "[0-9]" below requires the previous column to end in a digit.
+ ;; This avoids recognizing `1 may 1997' as a date in the line:
+ ;; -r--r--r-- 1 may 1997 1168 Oct 19 16:49 README
+
+ ;; The "[BkKMGTPEZY]?" below supports "ls -alh" output.
+ ;; The ".*" below finds the last match if there are multiple matches.
+ ;; This avoids recognizing `jservice 10 1024' as a date in the line:
+ ;; drwxr-xr-x 3 jservice 10 1024 Jul 2 1997 esg-host
+
+ ;; vc dired listings provide the state or blanks between file
+ ;; permissions and date. The state is always surrounded by
+ ;; parantheses:
+ ;; -rw-r--r-- (modified) 2005-10-22 21:25 files.el
+ ;; This is not supported yet.
+ (concat ".*[0-9][BkKMGTPEZY]?" s
+ "\\(" western "\\|" western-comma "\\|" east-asian "\\|" iso "\\)"
+ s "+"))
+ "Regular expression to match up to the file name in a directory listing.
+The default value is designed to recognize dates and times
+regardless of the language.")
(defvar insert-directory-ls-version 'unknown)
(set (make-local-variable 'dired-directory) "/")
(set (make-local-variable 'dired-subdir-switches) locate-ls-subdir-switches)
(setq dired-switches-alist nil)
- (make-local-variable 'dired-move-to-filename-regexp)
+ (make-local-variable 'directory-listing-before-filename-regexp)
;; This should support both Unix and Windoze style names
- (setq dired-move-to-filename-regexp
+ (setq directory-listing-before-filename-regexp
(concat "^."
(make-string (1- locate-filename-indentation) ?\ )
"\\(/\\|[A-Za-z]:\\)\\|"
- (default-value 'dired-move-to-filename-regexp)))
+ (default-value 'directory-listing-before-filename-regexp)))
(make-local-variable 'dired-actual-switches)
(setq dired-actual-switches "")
(make-local-variable 'dired-permission-flags-regexp)
;;;; Directory information caching support.
;;;; ------------------------------------------------------------
-(defconst ange-ftp-date-regexp
- (let* ((l "\\([A-Za-z]\\|[^\0-\177]\\)")
- ;; In some locales, month abbreviations are as short as 2 letters,
- ;; and they can be padded on the right with spaces.
- ;; weiand: changed: month ends with . or , or .,
-;;old (month (concat l l "+ *"))
- (month (concat l l "+[.]?,? *"))
- ;; Recognize any non-ASCII character.
- ;; The purpose is to match a Kanji character.
- (k "[^\0-\177]")
- (s " ")
- (mm "[ 0-1][0-9]")
- ;; weiand: changed: day ends with .
-;;old (dd "[ 0-3][0-9]")
- (dd "[ 0-3][0-9][.]?")
- (western (concat "\\(" month s dd "\\|" dd s month "\\)"))
- (japanese (concat mm k s dd k)))
- ;; Require the previous column to end in a digit.
- ;; This avoids recognizing `1 may 1997' as a date in the line:
- ;; -r--r--r-- 1 may 1997 1168 Oct 19 16:49 README
- ;; albinus:
- ;; Require also the following column to start in a digit.
- ;; This avoids recognizing `kfs 10' as a date in the line:
- ;; -rw------- 1 kfs 10 May 27 2003 .autorun.lck
-;; (concat "[0-9]" s "\\(" western "\\|" japanese "\\)" s))
- (concat "[0-9]" s "\\(" western "\\|" japanese "\\)" s "+[0-9]"))
- "Regular expression to match up to the column before the file name in a
-directory listing. This regular expression is designed to recognize dates
-regardless of the language.")
-
(defvar ange-ftp-add-file-entry-alist nil
"Alist saying how to add file entries on certain OS types.
Association list of pairs \( TYPE \. FUNC \), where FUNC
;;Extract the filename from the current line of a dired-like listing.
`(let ((eol (progn (end-of-line) (point))))
(beginning-of-line)
- (if (re-search-forward ange-ftp-date-regexp eol t)
- (progn
- (skip-chars-forward " ")
- (skip-chars-forward "^ " eol)
- (skip-chars-forward " " eol)
- ;; We bomb on filenames starting with a space.
- (buffer-substring (point) eol)))))
+ (if (re-search-forward directory-listing-before-filename-regexp eol t)
+ (buffer-substring (point) eol))))
;; This deals with the F switch. Should also do something about
;; unquoting names obtained with the SysV b switch and the GNU Q
;; (3) The twilight zone.
;; We'll assume (1) for now.
nil)
- ((re-search-forward ange-ftp-date-regexp nil t)
+ ((re-search-forward directory-listing-before-filename-regexp nil t)
(beginning-of-line)
(ange-ftp-ls-parser switches))
((re-search-forward "^[^ \n\t]+ +\\([0-9]+\\|-\\|=\\) " nil t)
(let ((tbl (make-hash-table :test 'equal)))
(goto-char (point-min))
(save-match-data
- (while (re-search-forward ange-ftp-date-regexp nil t)
+ (while (re-search-forward directory-listing-before-filename-regexp nil t)
(end-of-line)
(skip-chars-backward " ")
(let ((end (point)))
;; when vc-dired-mode-map is initialized.
(set-keymap-parent vc-dired-mode-map dired-mode-map)
(add-hook 'dired-after-readin-hook 'vc-dired-hook nil t)
- ;; The following is slightly modified from dired.el,
+ ;; The following is slightly modified from files.el,
;; because file lines look a bit different in vc-dired-mode
;; (the column before the date does not end in a digit).
- (set (make-local-variable 'dired-move-to-filename-regexp)
+ (set (make-local-variable 'directory-listing-before-filename-regexp)
(let* ((l "\\([A-Za-z]\\|[^\0-\177]\\)")
;; In some locales, month abbreviations are as short as 2 letters,
;; and they can be followed by ".".
+2005-10-23 Michael Albinus <michael.albinus@gmx.de>
+
+ * faq.texi (Bugs and problems): Replace
+ `dired-move-to-filename-regexp' by
+ `directory-listing-before-filename-regexp'.
+
2005-10-22 Eli Zaretskii <eliz@gnu.org>
* newsticker.texi (UPDATED): Set value.
be done by setting the locale. See your OS manual for more information.
The second approach involves changing the regular expression used by
-dired, @code{dired-move-to-filename-regexp}.
+dired, @code{directory-listing-before-filename-regexp}.
@c ------------------------------------------------------------
@node Compiling and installing Emacs, Finding Emacs and related packages, Bugs and problems, Top
However, in the specific case of @kbd{C-h} and @key{DEL}, you should
toggle @code{normal-erase-is-backspace-mode} instead of calling
-@code{keyboard-translate}. @inforef{DEL Does Not Delete, DEL Does Not Delete,
+@code{keyboard-translate}. @inforef{DEL Does Not Delete, DEL Does Not Delete,
emacs}.
Keyboard translations are not the same as key bindings in keymaps.