Require month names to be spelled out as English words, so that single
authorBen Pfaff <blp@gnu.org>
Fri, 7 Mar 2008 05:28:29 +0000 (05:28 +0000)
committerBen Pfaff <blp@gnu.org>
Fri, 7 Mar 2008 05:28:29 +0000 (05:28 +0000)
characters that happen to be Roman numerals don't get detected as
months.  Thanks to John Darrington for reporting this bug.

src/data/ChangeLog
src/data/format-guesser.c
tests/formats/format-guesser.sh

index bde3036092fb2a4a4307d55bd748fbf5f7b42bfa..f209233b1bbc0db32ed065a7d8465bf7c426eba3 100644 (file)
@@ -1,3 +1,10 @@
+2008-03-06  Ben Pfaff  <blp@gnu.org>
+
+       * format-guesser.c (syntax): Require month names to be spelled out
+       as English words, so that single characters that happen to be
+       Roman numerals don't get detected as months.  Thanks to John
+       Darrington for reporting this bug.
+
 2008-03-04  Ben Pfaff  <blp@gnu.org>
 
        Patch #6441.  Reviewed by John Darrington.
index 78af8dfa269ed3ee70ff35782799cdddcc973d93..26c917b824ce77733409ecb27885fd7d7d0e55eb 100644 (file)
@@ -135,8 +135,13 @@ static struct date_syntax syntax[] =
     /* www */
     { FMT_WKDAY, 1, {DT_WEEKDAY} },
 
-    /* mmm */
-    { FMT_MONTH, 1, {DT_MONTH} },
+    /* mmm
+
+       We require a spelled-out English month so that
+       single-character Roman numerals like "i" and "x" don't get
+       detected as months.  The latter is particularly common in
+       the password field of /etc/passwd-like files. */
+    { FMT_MONTH, 1, {DT_ENGLISH_MONTH} },
   };
 
 /* Number of recognized date syntax formats. */
index 37bd2bcc0a273d7696567f10f0b3571b15aa20f0..ce98b1266bcfbea282b4dd396932d164fd83be1f 100755 (executable)
@@ -94,6 +94,7 @@ sed -ne 's/#.*//;/^[  ]*$/!p' > $TEMPDIR/test-list <<'EOF'
 
 # Date and time formats.
 "01-OCT-1978" => DATE11
+"01-x-1978" => EDATE9          # Roman numeral for month.
 "01-13-99" => ADATE8
 "1-13-99" => ADATE7 (ADATE8)
 "13-01-99" => EDATE8
@@ -135,20 +136,10 @@ sed -ne 's/#.*//;/^[      ]*$/!p' > $TEMPDIR/test-list <<'EOF'
 "jan" => MONTH3
 "Feb" => MONTH3
 "MAR" => MONTH3
-"i" => MONTH1 (MONTH3)
-"ii" => MONTH2 (MONTH3)
-"iii" => MONTH3
-"iiii" => A4
-"iv" => MONTH2 (MONTH3)
-"v" => MONTH1 (MONTH3)
-"vi" => MONTH2 (MONTH3)
-"vii" => MONTH3
-"viii" => MONTH4
-"ix" => MONTH2 (MONTH3)
-"viiii" => A5
-"x" => MONTH1 (MONTH3)
-"xi" => MONTH2 (MONTH3)
-"xii" => MONTH3
+"i" => A1                      # Not detected as MONTH format.
+"v" => A1
+"ix" => A2
+"x" => A1
 "january" => MONTH7
 "janaury" => MONTH7
 "february" => MONTH8