emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

dired-move-to-filename-regexp and Chinese (was: dired-do-toggle)


From: Paul Eggert
Subject: dired-move-to-filename-regexp and Chinese (was: dired-do-toggle)
Date: Sun, 4 Nov 2001 21:27:26 -0800 (PST)

> From: "Stefan Monnier" <monnier+gnu/address@hidden>
> Date: Sun, 04 Nov 2001 18:27:54 -0500
> 
> The bug-report I replied to mentioned a Chinese output where the
> column-number supposedly isn't constant ;-(

Yes, come to think of it, large files will cause the file-size column
to grow anyway.  Please forget my "ls -dl /////" suggestion.

It sounds like you're talking about Yong Lu's vague bug report
<http://mail.gnu.org/pipermail/bug-gnu-emacs/2001-November/008054.html>
I've written to him to ask for more details.  Possibly this is
a problem that your idea wouldn't work with either, as Mingw could
be generating lines in nonstandard format.

This reminds me of the patch I sent to emacs-pretest-bug on April 5,
which wasn't acted on because I mistakenly proposed replacing [A-Za-z]
with [[:alpha:]].  However, that patch fixed some other bugs in this
area, notably the confusion between ASCII letters and non-ASCII
characters, and it's possible that the patch will fix Yong Lu's
problem as well.

Here is that patch again, this time without the controversial
[[:alpha:]] part, and updated for Emacs 21.1.  Any objections to the
patch this time?

2001-11-04  Paul Eggert  <address@hidden>

        * dired.el (dired-move-to-filename-regexp):
        Do not distinguish between ASCII letters and non-ASCII characters.
        Don't allow comma between month name and day of month, and clean
        up the code that checks for trailing period and comma.
        Remove now-obsolete comments, and add more commentary about
        Japanese dates.
        Always gobble up trailing spaces, instead of doing it only sometimes.

*** dired.el    Fri Sep 21 09:41:58 2001
--- /net/knick/home/eggert/junk/dired.el        Sun Nov  4 21:18:42 2001
*************** DIR must be a directory name, not a file
*** 1505,1540 ****
  (defvar dired-move-to-filename-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 potentially 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]")
!        ;; (k "[^\x00-\x7f\x80-\xff]")
         (s " ")
         (yyyy "[0-9][0-9][0-9][0-9]")
!        (mm "[ 0-1]?[0-9]")
! ;;old  (dd "[ 0-3][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 "\\)"
!          ;; weiand: changed: year potentially unaligned
! ;;old                   s "\\(" HH:MM "\\|" s yyyy "\\|" yyyy s "\\)"))
!                         s "\\(" HH:MM
!                                 "\\|" yyyy s s "?"
!                                 "\\|" s "?" yyyy
!                            "\\)"))
         (japanese
!         (concat mm k "?" s dd k "?" s "+"
!                 "\\(" HH:MM "\\|" yyyy k "?" "\\)")))
         ;; 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
--- 1505,1532 ----
  (defvar dired-move-to-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 "." and padded on the right by spaces.
!        (month (concat l l "+\\.? *"))
         (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 " +" dd "\\|" dd "\\.? " month "\\)"
!                  ",? +"
!                  "\\(" HH:MM "\\|" yyyy "\\)"))
!        ;; Japanese MS-Windows ls-lisp has one-digit months, and
!        ;; omits the Kanji characters after month and day-of-month.
!        (mm "[ 0-1]?[0-9]")
         (japanese
!         (concat mm l "?" s dd l "?" 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
*************** DIR must be a directory name, not a file
*** 1543,1549 ****
         ;; 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][kMGTPEZY]?" 
!           s "\\(" western "\\|" japanese "\\|" 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.")
--- 1535,1541 ----
         ;; 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][kMGTPEZY]?" 
!           s "\\(" western "\\|" japanese "\\|" 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.")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]