From ea69dc5baccd25ac2c6d25e6ab68804ec13a511d Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 11 Dec 1997 06:58:17 +0000 Subject: [PATCH] (ange-ftp-date-regexp): Fix the problem with misparsing `-r--r--r-- 1 may 1997' by requiring a digit before the date. --- lisp/ange-ftp.el | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lisp/ange-ftp.el b/lisp/ange-ftp.el index 8b09c7f45e7..0d395dd0402 100644 --- a/lisp/ange-ftp.el +++ b/lisp/ange-ftp.el @@ -2512,15 +2512,23 @@ away in the internal cache." (defconst ange-ftp-date-regexp (let* ((l "[A-Za-z\xa0-\xff]") + ;; In some locales, month abbreviations are as short as 2 letters, + ;; and they can be padded on the right with spaces. + (month (concat l l "+ *")) + ;; Recognize any non-ISO-8859 character. + ;; The purpose is to match a Kanji character. (k "[^\x00-\xff]") (s " ") (mm "[ 0-1][0-9]") (dd "[ 0-3][0-9]") - (western (concat "\\(" l l "+ +" dd "\\|" dd s l l "+" "\\)")) + (western (concat "\\(" month s dd "\\|" dd s month "\\)")) (japanese (concat mm k s dd k))) - (concat s "\\(" western "\\|" japanese "\\)" s)) - "Regular expression to recognize the date in a directory listing. -This regular expression is designed to recognize dates + ;; 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 + (concat "[0-9]" s "\\(" western "\\|" japanese "\\)" s)) + "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 -- 2.39.2