[Bug: 21.5-b28] XEmacs dired didn't work with FreeBSD ls

Mats Lidell matsl at xemacs.org
Tue Oct 2 16:31:28 EDT 2007


>>>>> It's me FKtPp wrote:

It's me FKtPp> Yes, I am using zh_CN.UTF-8 as my current LANG.

If you feel adventurous you could try this patch against latest dired
in CVS.  It works fine with my locale. LANG=sv_SE.UTF-8

----------------------------------------------------------------------
Index: dired.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/dired/dired.el,v
retrieving revision 1.8
diff -u -r1.8 dired.el
--- dired.el	9 Apr 2005 14:26:25 -0000	1.8
+++ dired.el	2 Oct 2007 20:26:08 -0000
@@ -799,32 +799,39 @@
 (defvar dired-re-dot "^.* \\.\\.?/?$")	; with -F, might end in `/'
 ;; . and .. files
 
+;; From FSF files.el. Extracted from directory-listing-before-filename-regexp.
 (defconst dired-re-month-and-time
   (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 padded on the right with spaces.
-	 ;; weiand: changed: month ends potentially with . or , or .,
-	 ;;old	 (month (concat l l "+ *"))
-	 (month (concat l l "+[.]?,? *"))
-	 (date "[ 0-3][0-9]\\.?")
-	 (time "[ 012][0-9]:[0-6][0-9]")
-	 (year (concat
-		"\\("
-		;; year on IRIX, NeXT, SunOS, ULTRIX, Apollo, HP-UX, A/UX
-		" ?[12][90][0-9][0-9] ?"
-		"\\|"
-		;; year on AIX
-		"[12][90][0-9][0-9]  "
-		"\\)"))
-	 (month-date (concat "\\(" month " " date "\\)"))
-	 (date-month (concat "\\(" date " " month "\\)"))
-	 (iso-date "\\([0-9]+-[0-9]+-[0-9]+\\)"))
-    (concat " "
-	    "\\("  date-month "\\|" month-date "\\|" iso-date "\\)"
-	    " "
-	    "\\(" time "\\|" year "\\)"
-	    " "))
-  "Regular expression matching from the date to the filename.
+	 ;; 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 "?" "\\)")))
+    (concat "\\(" western "\\|" western-comma "\\|" east-asian "\\|" iso "\\)" s "+"))
+    "Regular expression matching from the date to the filename.
 This regexp MUST match all the way to first character of the filename.")
 
 (defvar dired-subdir-regexp
----------------------------------------------------------------------

Yours
-- 
%% Mats



More information about the XEmacs-Beta mailing list