Subject: bug#3987 closed by Eli Zaretskii <[email-masked]> (Re: bug#3987: 23.1; Rmail summary missing dates when case-fold-search is nil)

From: [email-masked] (Emacs bug Tracking System)
Date: Sat, 01 Aug 2009 08:30:10 +0000

This is an automatic notification regarding your bug report
which was filed against the emacs package:

#3987: 23.1; Rmail summary missing dates when case-fold-search is nil

It has been closed by Eli Zaretskii <[email-masked]>.

Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Eli Zaretskii <[email-masked]> by
replying to this email.

-- 
3987: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3987
Emacs Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#3987: 23.1; Rmail summary missing dates when case-fold-search is nil
From: Eli Zaretskii <[email-masked]>
To: [email-masked], [email-masked]
Date: Sat, 01 Aug 2009 11:23:04 +0300

> Date: Thu, 30 Jul 2009 20:01:07 -0400
> From: Christopher Neufeld <[email-masked]>
> From: Christopher Neufeld <[email-masked]>
> Cc: 
> 
> Some time between 23.0.60 and 23.1, a minor annoyance was introduced into
> rmail.  When case-fold-search is nil, the dates in the rmail summary are
> all rendered as "??????".

Fixed with this change:

  2009-08-01  Eli Zaretskii  <[email-masked]>

	  * mail/rmailsum.el (rmail-header-summary): Ignore letter-case of
	  month names.  (Bug#3987)

  Index: lisp/mail/rmailsum.el
  ===================================================================
  RCS file: /cvsroot/emacs/emacs/lisp/mail/rmailsum.el,v
  retrieving revision 1.179
  diff -u -r1.179 rmailsum.el
  --- lisp/mail/rmailsum.el	4 Apr 2009 14:21:49 -0000	1.179
  +++ lisp/mail/rmailsum.el	1 Aug 2009 08:19:26 -0000
  @@ -518,16 +518,19 @@
      (concat (save-excursion
	       (if (not (re-search-forward "^Date:" nil t))
		   "      "
  -	       (cond ((re-search-forward "\\([^0-9:]\\)\\([0-3]?[0-9]\\)\\([- \t_]+\\)\\([adfjmnos][aceopu][bcglnprtvy]\\)"
  -		       (line-end-position) t)
  +	       ;; Match month names case-insensitively
  +	       (cond ((let ((case-fold-search t))
  +			(re-search-forward "\\([^0-9:]\\)\\([0-3]?[0-9]\\)\\([- \t_]+\\)\\([adfjmnos][aceopu][bcglnprtvy]\\)"
  +					   (line-end-position) t))
			(format "%2d-%3s"
				(string-to-number (buffer-substring
						   (match-beginning 2)
						   (match-end 2)))
				(buffer-substring
				 (match-beginning 4) (match-end 4))))
  -		     ((re-search-forward "\\([^a-z]\\)\\([adfjmnos][acepou][bcglnprtvy]\\)\\([-a-z \t_]*\\)\\([0-9][0-9]?\\)"
  -		       (line-end-position) t)
  +		     ((let ((case-fold-search t))
  +			(re-search-forward "\\([^a-z]\\)\\([adfjmnos][acepou][bcglnprtvy]\\)\\([-a-z \t_]*\\)\\([0-9][0-9]?\\)"
  +					   (line-end-position) t))
			(format "%2d-%3s"
				(string-to-number (buffer-substring
						   (match-beginning 4)

Subject: 23.1; Rmail summary missing dates when case-fold-search is nil
From: Christopher Neufeld <[email-masked]>
To: [email-masked]
Date: Thu, 30 Jul 2009 20:01:07 -0400

In GNU Emacs 23.1.1 (x86_64-unknown-linux-gnu, X toolkit)
 of 2009-07-30 on londo.cneufeld.ca
configured using `configure  '--prefix=/usr' '--with-x' '--with-xpm' '--with-jpeg' '--with-tiff' '--with-gif' '--with-png' '--enable-font-backend' '--with-xft' '--with-freetype' '--with-x-toolkit=lucid''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: nil
  value of $XMODIFIERS: nil
  locale-coding-system: nil
  default-enable-multibyte-characters: t

Major mode: RMAIL

Minor modes in effect:
  pc-selection-mode: t
  display-time-mode: t
  tooltip-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Loading rmailout...done
Loading sendmail...done
Loading mailalias...done
Loading supercite...done
Loading delsel...done
Loading pc-select...done
Counting messages...done
(No new mail has arrived)
0 new messages read
Computing summary lines...done

Some time between 23.0.60 and 23.1, a minor annoyance was introduced into
rmail.  When case-fold-search is nil, the dates in the rmail summary are
all rendered as "??????".

This is because of the regular expression in rmailsum.el at line 529.  A
string such as "May" doesn't match the regular expression:
[adfjmnos][acepou][bcglnprtvy]

because the capital letter doesn't match when case-fold-search is nil.

The easy work-around is to turn on case-fold-search, but it would be nice
to fix it properly, so that rmail works no matter what the user-set value
is.  It may also be useful to do a quick scan of the .el files to see if
there are other cases where a nil value of case-fold-search might break
some modes or behaviours.

-- 
 Christopher Neufeld
 Home page:  http://www.cneufeld.ca/neufeld
 "Don't edit reality for the sake of simplicity"