changeset 112092:c343ad0f54f7

Small mail-utils fix for bug 7760. * lisp/mail/mail-utils.el (mail-mbox-from): Handle From: headers with multiple addresses.
author Glenn Morris <rgm@gnu.org>
date Sat, 01 Jan 2011 18:35:23 -0800
parents ee29e7a182bf
children f8b430cb91a7
files lisp/ChangeLog lisp/mail/mail-utils.el
diffstat 2 files changed, 20 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Dec 31 21:17:53 2010 +0100
+++ b/lisp/ChangeLog	Sat Jan 01 18:35:23 2011 -0800
@@ -1,3 +1,8 @@
+2011-01-02  Glenn Morris  <rgm@gnu.org>
+
+	* mail/mail-utils.el (mail-mbox-from): Handle From: headers with
+	multiple addresses.  (Bug#7760)
+
 2010-12-31  Michael Albinus  <michael.albinus@gmx.de>
 
 	* net/tramp.el (tramp-methods): Add recursive options to "scpc",
@@ -12324,7 +12329,7 @@
 ;; coding: utf-8
 ;; End:
 
-    Copyright (C) 2009, 2010  Free Software Foundation, Inc.
+  Copyright (C) 2009, 2010, 2011  Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
--- a/lisp/mail/mail-utils.el	Fri Dec 31 21:17:53 2010 +0100
+++ b/lisp/mail/mail-utils.el	Sat Jan 01 18:35:23 2011 -0800
@@ -1,7 +1,7 @@
 ;;; mail-utils.el --- utility functions used both by rmail and rnews
 
 ;; Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-;;   2009, 2010  Free Software Foundation, Inc.
+;;   2009, 2010, 2011  Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: mail, news
@@ -398,13 +398,19 @@
 (defun mail-mbox-from ()
   "Return an mbox \"From \" line for the current message.
 The buffer should be narrowed to just the header."
-  (let ((from (or (mail-fetch-field "from")
-		  (mail-fetch-field "really-from")
-		  (mail-fetch-field "sender")
-		  (mail-fetch-field "return-path")
-		  "unknown"))
-	(date (mail-fetch-field "date")))
-    (format "From %s %s\n" (mail-strip-quoted-names from)
+  (let* ((from (mail-strip-quoted-names (or (mail-fetch-field "from")
+					    (mail-fetch-field "really-from")
+					    (mail-fetch-field "sender")
+					    (mail-fetch-field "return-path")
+					    "unknown")))
+	 (date (mail-fetch-field "date"))
+	 ;; A From: header can contain multiple addresses, a "From "
+	 ;; line must contain only one.  (Bug#7760)
+	 ;; See eg RFC 5322, 3.6.2. Originator Fields.
+	 (end (string-match "[ \t]*[,\n]" from)))
+    (format "From %s %s\n" (if end
+			       (substring from 0 end)
+			     from)
 	    (or (and date
 		     (ignore-errors
 		      (current-time-string (date-to-time date))))