/[emacs]/emacs/lisp/dired.el
ViewVC logotype

Diff of /emacs/lisp/dired.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.328 by rfrancoise, Sat Sep 24 23:26:28 2005 UTC revision 1.329 by albinus, Sun Oct 23 12:17:27 2005 UTC
# Line 842  BEG..END is the line where the file info Line 842  BEG..END is the line where the file info
842    ;; line, the alignment if this line w.r.t the rest is messed up because    ;; line, the alignment if this line w.r.t the rest is messed up because
843    ;; the fields of that one line will generally be smaller.    ;; the fields of that one line will generally be smaller.
844    ;;    ;;
845    ;; To work around this problem, we here add spaces to try and re-align the    ;; To work around this problem, we here add spaces to try and
846    ;; fields as needed.  Since this is purely aesthetic, it is of utmost    ;; re-align the fields as needed.  Since this is purely aesthetic,
847    ;; importance that it doesn't mess up anything like    ;; it is of utmost importance that it doesn't mess up anything like
848    ;; `dired-move-to-filename'.  To this end, we limit ourselves to adding    ;; `dired-move-to-filename'.  To this end, we limit ourselves to
849    ;; spaces only, and to only add them at places where there was already at    ;; adding spaces only, and to only add them at places where there
850    ;; least one space.  This way, as long as `dired-move-to-filename-regexp'    ;; was already at least one space.  This way, as long as
851    ;; always matches spaces with "*" or "+", we know we haven't made anything    ;; `directory-listing-before-filename-regexp' always matches spaces
852    ;; worse.  There is one spot where the exact number of spaces is    ;; with "*" or "+", we know we haven't made anything worse.  There
853    ;; important, which is just before the actual filename, so we refrain from    ;; is one spot where the exact number of spaces is important, which
854    ;; adding spaces there (and within the filename as well, of course).    ;; is just before the actual filename, so we refrain from adding
855      ;; spaces there (and within the filename as well, of course).
856    (save-excursion    (save-excursion
857      (let (file file-col other other-col)      (let (file file-col other other-col)
858        ;; Check the there is indeed a file, and that there is anoter adjacent        ;; Check the there is indeed a file, and that there is anoter adjacent
# Line 953  If HDR is non-nil, insert a header line Line 954  If HDR is non-nil, insert a header line
954          (setq switches (concat "--dired " switches)))          (setq switches (concat "--dired " switches)))
955      ;; We used to specify the C locale here, to force English month names;      ;; We used to specify the C locale here, to force English month names;
956      ;; but this should not be necessary any more,      ;; but this should not be necessary any more,
957      ;; with the new value of dired-move-to-filename-regexp.      ;; with the new value of `directory-listing-before-filename-regexp'.
958      (if file-list      (if file-list
959          (dolist (f file-list)          (dolist (f file-list)
960            (let ((beg (point)))            (let ((beg (point)))
# Line 1837  DIR must be a directory name, not a file Line 1838  DIR must be a directory name, not a file
1838    
1839  ;;; Functions for finding the file name in a dired buffer line.  ;;; Functions for finding the file name in a dired buffer line.
1840    
 (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.")  
   
1841  (defvar dired-permission-flags-regexp  (defvar dired-permission-flags-regexp
1842    "\\([^ ]\\)[-r][-w]\\([^ ]\\)[-r][-w]\\([^ ]\\)[-r][-w]\\([^ ]\\)"    "\\([^ ]\\)[-r][-w]\\([^ ]\\)[-r][-w]\\([^ ]\\)[-r][-w]\\([^ ]\\)"
1843    "Regular expression to match the permission flags in `ls -l'.")    "Regular expression to match the permission flags in `ls -l'.")
# Line 1898  Return the position of the beginning of Line 1855  Return the position of the beginning of
1855      (cond      (cond
1856       ((and change (< change eol))       ((and change (< change eol))
1857        (goto-char change))        (goto-char change))
1858       ((re-search-forward dired-move-to-filename-regexp eol t)       ((re-search-forward directory-listing-before-filename-regexp eol t)
1859        (goto-char (match-end 0)))        (goto-char (match-end 0)))
1860       ((re-search-forward dired-permission-flags-regexp eol t)       ((re-search-forward dired-permission-flags-regexp eol t)
1861        ;; Ha!  There *is* a file.  Our regexp-from-hell just failed to find it.        ;; Ha!  There *is* a file.  Our regexp-from-hell just failed to find it.
1862        (if raise-error        (if raise-error
1863            (error "Unrecognized line!  Check dired-move-to-filename-regexp"))            (error "Unrecognized line!  Check directory-listing-before-filename-regexp"))
1864        (beginning-of-line)        (beginning-of-line)
1865        nil)        nil)
1866       (raise-error       (raise-error

Legend:
Removed from v.1.328  
changed lines
  Added in v.1.329

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26