Changes committed gnus/lisp (31 files)

"Katsumi Yamaoka" <[email protected]> Wed, 09 Sep 2009 11:31:36 +0200
Newsgroups gmane.emacs.gnus.commits
Message-ID <[email protected]>
Modified: ChangeLog dig.el ecomplete.el gnus-art.el gnus-cite.el
          gnus-delay.el gnus-msg.el gnus-picon.el gnus-salt.el
          gnus-srvr.el gnus-sum.el gnus-util.el gnus.el imap.el lpath.el
          message.el mm-util.el nnheader.el nnimap.el nnir.el nnmail.el
          nnrss.el nnspool.el parse-time.el qp.el rfc2047.el sieve-mode.el
          spam.el time-date.el utf7.el yenc.el

Synch with the Emacs trunk.
===========================
2009-09-09  Katsumi Yamaoka  <[email protected]>

	* time-date.el (autoload): Expand define-obsolete-function-alias into
	defalias and make-obsolete for old Emacsen that Gnus supports.
	(with-no-warnings): Define it for old Emacsen.
	(time-to-seconds): Don't use (featurep 'xemacs) to check if float-time
	is available.
	(time-to-number-of-days): Don't use (featurep 'xemacs) to check if
	float-time is available; suppress compile warning for time-to-seconds.

	* gnus-util.el (gnus-float-time): Alias to float-time if it exists.

	* ecomplete.el (with-no-warnings): Define it for old Emacsen.
	(ecomplete-add-item): Don't use (featurep 'xemacs) to check if
	float-time is available; suppress compile warning for time-to-seconds.

	* lpath.el: Fbind time-to-seconds for Emacs 21.; fbind float-time for
	XEmacs.

2009-09-04  Glenn Morris  <[email protected]>

	* qp.el (quoted-printable-encode-string): Use mm-enable-multibyte, or
	mm-disable-multibyte, rather than default-enable-multibyte-characters.
	* utf7.el (utf7-encode, utf7-decode): Use mm-with-multibyte-buffer, or
	mm-with-unibyte-buffer, rather than default-enable-multibyte-characters.
	* mm-util.el (mm-with-unibyte-current-buffer)
	(mm-find-buffer-file-coding-system):
	* yenc.el (yenc-decode-region): Use default-value rather than
	default-enable-multibyte-characters.

2009-09-03  Glenn Morris  <[email protected]>

	* mm-util.el (mm-emacs-mule, mm-default-multibyte-p):
	* rfc2047.el (rfc2047-encode-message-header): Use default-value rather
	than default-enable-multibyte-characters.

2009-09-02  Glenn Morris  <[email protected]>

	* gnus-util.el (gnus-float-time): New function.
	* gnus-delay.el (gnus-delay-article):
	* gnus-sum.el (gnus-thread-latest-date):
	* gnus-util.el (gnus-user-date): Use gnus-float-time.
	* nnspool.el (nnspool-request-newgroups):
	Use gnus-float-time rather than time-to-seconds.
	* ecomplete.el (ecomplete-add-item): In Emacs, use float-time.

	* gnus-art.el (gnus-signature-face, gnus-header-from-face)
	(gnus-header-subject-face, gnus-header-newsgroups-face)
	(gnus-header-name-face, gnus-header-content-face):
	* gnus-cite.el (gnus-cite-attribution-face, gnus-cite-face-1)
	(gnus-cite-face-2, gnus-cite-face-3, gnus-cite-face-4)
	(gnus-cite-face-5, gnus-cite-face-6, gnus-cite-face-7)
	(gnus-cite-face-8, gnus-cite-face-9, gnus-cite-face-10)
	(gnus-cite-face-11):
	* gnus-picon.el (gnus-picon-xbm-face, gnus-picon-face):
	* gnus-srvr.el (gnus-server-agent-face, gnus-server-opened-face)
	(gnus-server-closed-face, gnus-server-denied-face)
	(gnus-server-offline-face):
	* gnus.el (gnus-group-news-1-face, gnus-group-news-1-empty-face)
	(gnus-group-news-2-face, gnus-group-news-2-empty-face)
	(gnus-group-news-3-face, gnus-group-news-3-empty-face)
	(gnus-group-news-4-face, gnus-group-news-4-empty-face)
	(gnus-group-news-5-face, gnus-group-news-5-empty-face)
	(gnus-group-news-6-face, gnus-group-news-6-empty-face)
	(gnus-group-news-low-face, gnus-group-news-low-empty-face)
	(gnus-group-mail-1-face, gnus-group-mail-1-empty-face)
	(gnus-group-mail-2-face, gnus-group-mail-2-empty-face)
	(gnus-group-mail-3-face, gnus-group-mail-3-empty-face)
	(gnus-group-mail-low-face, gnus-group-mail-low-empty-face)
	(gnus-summary-selected-face, gnus-summary-cancelled-face)
	(gnus-summary-high-ticked-face, gnus-summary-low-ticked-face)
	(gnus-summary-normal-ticked-face, gnus-summary-high-ancient-face)
	(gnus-summary-low-ancient-face, gnus-summary-normal-ancient-face)
	(gnus-summary-high-undownloaded-face)
	(gnus-summary-low-undownloaded-face)
	(gnus-summary-normal-undownloaded-face)
	(gnus-summary-high-unread-face, gnus-summary-low-unread-face)
	(gnus-summary-normal-unread-face, gnus-summary-high-read-face)
	(gnus-summary-low-read-face, gnus-summary-normal-read-face)
	(gnus-splash-face):
	* message.el (message-header-to-face, message-header-cc-face)
	(message-header-subject-face, message-header-newsgroups-face)
	(message-header-other-face, message-header-name-face)
	(message-header-xheader-face, message-separator-face)
	(message-cited-text-face, message-mml-face):
	* sieve-mode.el (sieve-control-commands-face)
	(sieve-action-commands-face, sieve-test-commands-face)
	(sieve-tagged-arguments-face):
	* spam.el (spam-face):
	Mark face aliases with "-face" in the name as obsolete.

2009-09-01  Glenn Morris  <[email protected]>

	* gnus-salt.el (gnus-pick-mouse-pick-region): Use forward-line rather
	than goto-line.

2009-08-30  Stefan Monnier  <[email protected]>

	* imap.el (imap-send-command): Simplify.
	(imap-wait-for-tag): point-max -> buffer-size.

2009-08-29  Stefan Monnier  <[email protected]>

	* spam.el (spam-ifile-path, spam-bogofilter-path, spam-sa-learn-path)
	(spam-ifile-database-path, spam-bsfilter-path, spam-spamassassin-path):
	* nnmail.el (nnmail-spool-file, nnmail-fix-eudora-headers):
	* nnir.el (nnir-swish-e-index-file):
	* gnus-sum.el (gnus-summary-delete-marked-as-read)
	(gnus-summary-delete-marked-with, gnus-summary-mark-as-unread-forward)
	(gnus-summary-mark-as-unread-backward, gnus-summary-mark-as-unread):
	* gnus-msg.el (gnus-inews-mark-gcc-as-read):
	* gnus-art.el (gnus-article-hide-pgp-hook, gnus-treat-strip-pgp)
	(gnus-treat-display-xface): Add Emacs version of obsolescence.

2009-08-28  Stefan Monnier  <[email protected]>

	* nnheader.el (nnheader-find-file-noselect):
	* mm-util.el (mm-insert-file-contents):
	Use (default-value 'major-mode) instead of default-major-mode.

2009-08-27  Stefan Monnier  <[email protected]>

	* nnrss.el (nnrss-request-article): Avoid default-fill-column.

2009-08-25  Glenn Morris  <[email protected]>

	* nnir.el (top-level): Don't require cl at run-time.
	(nnir-run-waissearch, nnir-run-swish-e, nnir-run-hyrex):
	Replace cl-function substitute with gnus-replace-in-string.
	(nnir-run-waissearch, nnir-run-swish++, nnir-run-swish-e)
	(nnir-run-hyrex, nnir-run-namazu): Replace cl-function sort* with sort.
	(nnir-run-find-grep): Replace cl-functions find-if and subseq with
	simplified expansions.

2009-08-25  Kevin Ryde  <[email protected]>

	* dig.el (dig): Add autoload cookie.

2009-08-22  Glenn Morris  <[email protected]>

	* gnus-art.el (gnus-button-patch): Use forward-line rather than
	goto-line.


Index: ChangeLog
diff -u gnus/lisp/ChangeLog:7.2011 gnus/lisp/ChangeLog:7.2012
--- ChangeLog:7.2011	Wed Sep  9 05:05:25 2009
+++ ChangeLog	Wed Sep  9 11:31:35 2009
@@ -1,3 +1,22 @@
+2009-09-09  Katsumi Yamaoka  <[email protected]>
+
+	* time-date.el (autoload): Expand define-obsolete-function-alias into
+	defalias and make-obsolete for old Emacsen that Gnus supports.
+	(with-no-warnings): Define it for old Emacsen.
+	(time-to-seconds): Don't use (featurep 'xemacs) to check if float-time
+	is available.
+	(time-to-number-of-days): Don't use (featurep 'xemacs) to check if
+	float-time is available; suppress compile warning for time-to-seconds.
+
+	* gnus-util.el (gnus-float-time): Alias to float-time if it exists.
+
+	* ecomplete.el (with-no-warnings): Define it for old Emacsen.
+	(ecomplete-add-item): Don't use (featurep 'xemacs) to check if
+	float-time is available; suppress compile warning for time-to-seconds.
+
+	* lpath.el: Fbind time-to-seconds for Emacs 21.; fbind float-time for
+	XEmacs.
+
 2009-09-09  Teodor Zlatanov  <[email protected]>
 
 	* imap.el (imap-message-map): Docstring fix.
@@ -11,21 +30,145 @@
 	* mml.el (mml-generate-mime-1): Pass encoding defined by a user to
 	mm-encode-buffer.
 
+2009-09-04  Glenn Morris  <[email protected]>
+
+	* qp.el (quoted-printable-encode-string): Use mm-enable-multibyte, or
+	mm-disable-multibyte, rather than default-enable-multibyte-characters.
+	* utf7.el (utf7-encode, utf7-decode): Use mm-with-multibyte-buffer, or
+	mm-with-unibyte-buffer, rather than default-enable-multibyte-characters.
+	* mm-util.el (mm-with-unibyte-current-buffer)
+	(mm-find-buffer-file-coding-system):
+	* yenc.el (yenc-decode-region): Use default-value rather than
+	default-enable-multibyte-characters.
+
+2009-09-03  Glenn Morris  <[email protected]>
+
+	* mm-util.el (mm-emacs-mule, mm-default-multibyte-p):
+	* rfc2047.el (rfc2047-encode-message-header): Use default-value rather
+	than default-enable-multibyte-characters.
+
 2009-09-02  Karl Kleinpaste  <[email protected]>
 
 	* gnus-art.el (gnus-article-read-summary-keys):
 	Fix gnus-buffer-configuration's value temporarily used.
 
+2009-09-02  Glenn Morris  <[email protected]>
+
+	* gnus-util.el (gnus-float-time): New function.
+	* gnus-delay.el (gnus-delay-article):
+	* gnus-sum.el (gnus-thread-latest-date):
+	* gnus-util.el (gnus-user-date): Use gnus-float-time.
+	* nnspool.el (nnspool-request-newgroups):
+	Use gnus-float-time rather than time-to-seconds.
+	* ecomplete.el (ecomplete-add-item): In Emacs, use float-time.
+
+	* gnus-art.el (gnus-signature-face, gnus-header-from-face)
+	(gnus-header-subject-face, gnus-header-newsgroups-face)
+	(gnus-header-name-face, gnus-header-content-face):
+	* gnus-cite.el (gnus-cite-attribution-face, gnus-cite-face-1)
+	(gnus-cite-face-2, gnus-cite-face-3, gnus-cite-face-4)
+	(gnus-cite-face-5, gnus-cite-face-6, gnus-cite-face-7)
+	(gnus-cite-face-8, gnus-cite-face-9, gnus-cite-face-10)
+	(gnus-cite-face-11):
+	* gnus-picon.el (gnus-picon-xbm-face, gnus-picon-face):
+	* gnus-srvr.el (gnus-server-agent-face, gnus-server-opened-face)
+	(gnus-server-closed-face, gnus-server-denied-face)
+	(gnus-server-offline-face):
+	* gnus.el (gnus-group-news-1-face, gnus-group-news-1-empty-face)
+	(gnus-group-news-2-face, gnus-group-news-2-empty-face)
+	(gnus-group-news-3-face, gnus-group-news-3-empty-face)
+	(gnus-group-news-4-face, gnus-group-news-4-empty-face)
+	(gnus-group-news-5-face, gnus-group-news-5-empty-face)
+	(gnus-group-news-6-face, gnus-group-news-6-empty-face)
+	(gnus-group-news-low-face, gnus-group-news-low-empty-face)
+	(gnus-group-mail-1-face, gnus-group-mail-1-empty-face)
+	(gnus-group-mail-2-face, gnus-group-mail-2-empty-face)
+	(gnus-group-mail-3-face, gnus-group-mail-3-empty-face)
+	(gnus-group-mail-low-face, gnus-group-mail-low-empty-face)
+	(gnus-summary-selected-face, gnus-summary-cancelled-face)
+	(gnus-summary-high-ticked-face, gnus-summary-low-ticked-face)
+	(gnus-summary-normal-ticked-face, gnus-summary-high-ancient-face)
+	(gnus-summary-low-ancient-face, gnus-summary-normal-ancient-face)
+	(gnus-summary-high-undownloaded-face)
+	(gnus-summary-low-undownloaded-face)
+	(gnus-summary-normal-undownloaded-face)
+	(gnus-summary-high-unread-face, gnus-summary-low-unread-face)
+	(gnus-summary-normal-unread-face, gnus-summary-high-read-face)
+	(gnus-summary-low-read-face, gnus-summary-normal-read-face)
+	(gnus-splash-face):
+	* message.el (message-header-to-face, message-header-cc-face)
+	(message-header-subject-face, message-header-newsgroups-face)
+	(message-header-other-face, message-header-name-face)
+	(message-header-xheader-face, message-separator-face)
+	(message-cited-text-face, message-mml-face):
+	* sieve-mode.el (sieve-control-commands-face)
+	(sieve-action-commands-face, sieve-test-commands-face)
+	(sieve-tagged-arguments-face):
+	* spam.el (spam-face):
+	Mark face aliases with "-face" in the name as obsolete.
+
+2009-09-01  Glenn Morris  <[email protected]>
+
+	* gnus-salt.el (gnus-pick-mouse-pick-region): Use forward-line rather
+	than goto-line.
+
 2009-08-31  Katsumi Yamaoka  <[email protected]>
 
 	* mml.el (mml-attach-file, mml-attach-buffer, mml-attach-external):
 	Don't move point if the command is invoked inside the message header.
 
+2009-08-30  Stefan Monnier  <[email protected]>
+
+	* imap.el (imap-send-command): Simplify.
+	(imap-wait-for-tag): point-max -> buffer-size.
+
+2009-08-29  Stefan Monnier  <[email protected]>
+
+	* spam.el (spam-ifile-path, spam-bogofilter-path, spam-sa-learn-path)
+	(spam-ifile-database-path, spam-bsfilter-path, spam-spamassassin-path):
+	* nnmail.el (nnmail-spool-file, nnmail-fix-eudora-headers):
+	* nnir.el (nnir-swish-e-index-file):
+	* gnus-sum.el (gnus-summary-delete-marked-as-read)
+	(gnus-summary-delete-marked-with, gnus-summary-mark-as-unread-forward)
+	(gnus-summary-mark-as-unread-backward, gnus-summary-mark-as-unread):
+	* gnus-msg.el (gnus-inews-mark-gcc-as-read):
+	* gnus-art.el (gnus-article-hide-pgp-hook, gnus-treat-strip-pgp)
+	(gnus-treat-display-xface): Add Emacs version of obsolescence.
+
 2009-08-28  Katsumi Yamaoka  <[email protected]>
 
 	* mml.el (mml-attach-file, mml-attach-buffer, mml-attach-external):
 	Don't save excursion.
 
+2009-08-28  Stefan Monnier  <[email protected]>
+
+	* nnheader.el (nnheader-find-file-noselect):
+	* mm-util.el (mm-insert-file-contents):
+	Use (default-value 'major-mode) instead of default-major-mode.
+
+2009-08-27  Stefan Monnier  <[email protected]>
+
+	* nnrss.el (nnrss-request-article): Avoid default-fill-column.
+
+2009-08-25  Glenn Morris  <[email protected]>
+
+	* nnir.el (top-level): Don't require cl at run-time.
+	(nnir-run-waissearch, nnir-run-swish-e, nnir-run-hyrex):
+	Replace cl-function substitute with gnus-replace-in-string.
+	(nnir-run-waissearch, nnir-run-swish++, nnir-run-swish-e)
+	(nnir-run-hyrex, nnir-run-namazu): Replace cl-function sort* with sort.
+	(nnir-run-find-grep): Replace cl-functions find-if and subseq with
+	simplified expansions.
+
+2009-08-25  Kevin Ryde  <[email protected]>
+
+	* dig.el (dig): Add autoload cookie.
+
+2009-08-22  Glenn Morris  <[email protected]>
+
+	* gnus-art.el (gnus-button-patch): Use forward-line rather than
+	goto-line.
+
 2009-08-12  Katsumi Yamaoka  <[email protected]>
 
 	* gnus-group.el (gnus-safe-html-newsgroups): New user option.
Index: dig.el
diff -u gnus/lisp/dig.el:7.14 gnus/lisp/dig.el:7.15
--- dig.el:7.14	Thu Jan 22 08:02:15 2009
+++ dig.el	Wed Sep  9 11:31:35 2009
@@ -159,6 +159,7 @@
   (interactive)
   (kill-buffer (current-buffer)))
 
+;;;###autoload
 (defun dig (domain &optional
 		   query-type query-class query-option dig-option server)
   "Query addresses of a DOMAIN using dig, by calling `dig-invoke'.
Index: ecomplete.el
diff -u gnus/lisp/ecomplete.el:1.22 gnus/lisp/ecomplete.el:1.23
--- ecomplete.el:1.22	Thu Jan 22 08:02:15 2009
+++ ecomplete.el	Wed Sep  9 11:31:35 2009
@@ -27,6 +27,11 @@
 (eval-when-compile
   (require 'cl))
 
+(eval-when-compile
+  (unless (fboundp 'with-no-warnings)
+    (defmacro with-no-warnings (&rest body)
+      `(progn ,@body))))
+
 (defgroup ecomplete nil
   "Electric completion of email addresses and the like."
   :group 'mail)
@@ -56,7 +61,11 @@
 (defun ecomplete-add-item (type key text)
   (let ((elems (assq type ecomplete-database))
 	(now (string-to-number
-	      (format "%.0f" (time-to-seconds (current-time)))))
+	      (format "%.0f" (if (and (fboundp 'float-time)
+				      (subrp (symbol-function 'float-time)))
+				 (float-time)
+			       (with-no-warnings
+				 (time-to-seconds (current-time)))))))
 	entry)
     (unless elems
       (push (setq elems (list type)) ecomplete-database))
Index: gnus-art.el
diff -u gnus/lisp/gnus-art.el:7.294 gnus/lisp/gnus-art.el:7.295
--- gnus-art.el:7.294	Thu Sep  3 01:16:38 2009
+++ gnus-art.el	Wed Sep  9 11:31:35 2009
@@ -727,8 +727,8 @@
   :type '(repeat regexp)
   :group 'gnus-article-various)
 
-(make-obsolete-variable 'gnus-article-hide-pgp-hook
-			"This variable is obsolete in Gnus 5.10.")
+(make-obsolete-variable 'gnus-article-hide-pgp-hook nil
+			"Gnus 5.10 (Emacs-22.1)")
 
 (defface gnus-button
   '((t (:weight bold)))
@@ -766,6 +766,7 @@
   :group 'gnus-article-signature)
 ;; backward-compatibility alias
 (put 'gnus-signature-face 'face-alias 'gnus-signature)
+(put 'gnus-signature-face 'obsolete-face "22.1")
 
 (defface gnus-header-from
   '((((class color)
@@ -781,6 +782,7 @@
   :group 'gnus-article-highlight)
 ;; backward-compatibility alias
 (put 'gnus-header-from-face 'face-alias 'gnus-header-from)
+(put 'gnus-header-from-face 'obsolete-face "22.1")
 
 (defface gnus-header-subject
   '((((class color)
@@ -796,6 +798,7 @@
   :group 'gnus-article-highlight)
 ;; backward-compatibility alias
 (put 'gnus-header-subject-face 'face-alias 'gnus-header-subject)
+(put 'gnus-header-subject-face 'obsolete-face "22.1")
 
 (defface gnus-header-newsgroups
   '((((class color)
@@ -813,6 +816,7 @@
   :group 'gnus-article-highlight)
 ;; backward-compatibility alias
 (put 'gnus-header-newsgroups-face 'face-alias 'gnus-header-newsgroups)
+(put 'gnus-header-newsgroups-face 'obsolete-face "22.1")
 
 (defface gnus-header-name
   '((((class color)
@@ -828,6 +832,7 @@
   :group 'gnus-article-highlight)
 ;; backward-compatibility alias
 (put 'gnus-header-name-face 'face-alias 'gnus-header-name)
+(put 'gnus-header-name-face 'obsolete-face "22.1")
 
 (defface gnus-header-content
   '((((class color)
@@ -842,6 +847,7 @@
   :group 'gnus-article-highlight)
 ;; backward-compatibility alias
 (put 'gnus-header-content-face 'face-alias 'gnus-header-content)
+(put 'gnus-header-content-face 'obsolete-face "22.1")
 
 (defcustom gnus-header-face-alist
   '(("From" nil gnus-header-from)
@@ -1217,8 +1223,8 @@
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-custom)
 
-(make-obsolete-variable 'gnus-treat-strip-pgp
-			"This option is obsolete in Gnus 5.10.")
+(make-obsolete-variable 'gnus-treat-strip-pgp nil
+			"Gnus 5.10 (Emacs 22.1)")
 
 (defcustom gnus-treat-strip-pem nil
   "Strip PEM signatures.
@@ -1409,7 +1415,7 @@
   :type gnus-article-treat-custom)
 
 (make-obsolete-variable 'gnus-treat-display-xface
-			'gnus-treat-display-x-face)
+			'gnus-treat-display-x-face "22.1")
 
 (defcustom gnus-treat-display-x-face
   (and (not noninteractive)
@@ -7925,7 +7931,8 @@
     (unless file
       (error "Couldn't find library %s" library))
     (find-file file)
-    (goto-line (string-to-number line))))
+    (goto-char (point-min))
+    (forward-line (1- (string-to-number line)))))
 
 (defun gnus-button-handle-man (url)
   "Fetch a man page."
Index: gnus-cite.el
diff -u gnus/lisp/gnus-cite.el:7.41 gnus/lisp/gnus-cite.el:7.42
--- gnus-cite.el:7.41	Thu Jan 22 08:02:16 2009
+++ gnus-cite.el	Wed Sep  9 11:31:35 2009
@@ -142,6 +142,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-attribution-face 'face-alias 'gnus-cite-attribution)
+(put 'gnus-cite-attribution-face 'obsolete-face "22.1")
 
 (defcustom gnus-cite-attribution-face 'gnus-cite-attribution
   "Face used for attribution lines.
@@ -162,6 +163,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-1 'face-alias 'gnus-cite-1)
+(put 'gnus-cite-face-1 'obsolete-face "22.1")
 
 (defface gnus-cite-2 '((((class color)
 			 (background dark))
@@ -175,6 +177,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-2 'face-alias 'gnus-cite-2)
+(put 'gnus-cite-face-2 'obsolete-face "22.1")
 
 (defface gnus-cite-3 '((((class color)
 			 (background dark))
@@ -188,6 +191,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-3 'face-alias 'gnus-cite-3)
+(put 'gnus-cite-face-3 'obsolete-face "22.1")
 
 (defface gnus-cite-4 '((((class color)
 			 (background dark))
@@ -201,6 +205,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-4 'face-alias 'gnus-cite-4)
+(put 'gnus-cite-face-4 'obsolete-face "22.1")
 
 (defface gnus-cite-5 '((((class color)
 			 (background dark))
@@ -214,6 +219,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-5 'face-alias 'gnus-cite-5)
+(put 'gnus-cite-face-5 'obsolete-face "22.1")
 
 (defface gnus-cite-6 '((((class color)
 			 (background dark))
@@ -227,6 +233,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-6 'face-alias 'gnus-cite-6)
+(put 'gnus-cite-face-6 'obsolete-face "22.1")
 
 (defface gnus-cite-7 '((((class color)
 			 (background dark))
@@ -240,6 +247,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-7 'face-alias 'gnus-cite-7)
+(put 'gnus-cite-face-7 'obsolete-face "22.1")
 
 (defface gnus-cite-8 '((((class color)
 			 (background dark))
@@ -253,6 +261,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-8 'face-alias 'gnus-cite-8)
+(put 'gnus-cite-face-8 'obsolete-face "22.1")
 
 (defface gnus-cite-9 '((((class color)
 			 (background dark))
@@ -266,6 +275,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-9 'face-alias 'gnus-cite-9)
+(put 'gnus-cite-face-9 'obsolete-face "22.1")
 
 (defface gnus-cite-10 '((((class color)
 			  (background dark))
@@ -279,6 +289,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-10 'face-alias 'gnus-cite-10)
+(put 'gnus-cite-face-10 'obsolete-face "22.1")
 
 (defface gnus-cite-11 '((((class color)
 			  (background dark))
@@ -292,6 +303,7 @@
   :group 'gnus-cite)
 ;; backward-compatibility alias
 (put 'gnus-cite-face-11 'face-alias 'gnus-cite-11)
+(put 'gnus-cite-face-11 'obsolete-face "22.1")
 
 (defcustom gnus-cite-face-list
   '(gnus-cite-1 gnus-cite-2 gnus-cite-3 gnus-cite-4 gnus-cite-5 gnus-cite-6
Index: gnus-delay.el
diff -u gnus/lisp/gnus-delay.el:7.16 gnus/lisp/gnus-delay.el:7.17
--- gnus-delay.el:7.16	Thu Jan 22 08:02:16 2009
+++ gnus-delay.el	Wed Sep  9 11:31:35 2009
@@ -1,6 +1,7 @@
 ;;; gnus-delay.el --- Delayed posting of articles
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+;;   Free Software Foundation, Inc.
 
 ;; Author: Kai Großjohann <[email protected]>
 ;; Keywords: mail, news, extensions
@@ -101,10 +102,10 @@
 	   (aset deadline 1 minute)
 	   (aset deadline 2 hour)
 	   ;; Convert to seconds.
-	   (setq deadline (time-to-seconds (apply 'encode-time
+	   (setq deadline (gnus-float-time (apply 'encode-time
 						  (append deadline nil))))
 	   ;; If this time has passed already, add a day.
-	   (when (< deadline (time-to-seconds (current-time)))
+	   (when (< deadline (gnus-float-time))
 	     (setq deadline (+ 3600 deadline))) ;3600 secs/day
 	   ;; Convert seconds to date header.
 	   (setq deadline (message-make-date
@@ -127,8 +128,7 @@
 		 (t
 		  (setq delay (* num 60))))
 	   (setq deadline (message-make-date
-			   (seconds-to-time (+ (time-to-seconds (current-time))
-					       delay)))))
+			   (seconds-to-time (+ (gnus-float-time) delay)))))
 	  (t (error "Malformed delay `%s'" delay)))
     (message-add-header (format "%s: %s" gnus-delay-header deadline)))
   (set-buffer-modified-p t)
Index: gnus-msg.el
diff -u gnus/lisp/gnus-msg.el:7.72 gnus/lisp/gnus-msg.el:7.73
--- gnus-msg.el:7.72	Thu Jan 22 08:02:16 2009
+++ gnus-msg.el	Wed Sep  9 11:31:35 2009
@@ -149,7 +149,7 @@
   :type 'boolean)
 
 (make-obsolete-variable 'gnus-inews-mark-gcc-as-read
-			'gnus-gcc-mark-as-read)
+			'gnus-gcc-mark-as-read "Emacs 22.1")
 
 (defcustom gnus-gcc-externalize-attachments nil
   "Should local-file attachments be included as external parts in Gcc copies?
Index: gnus-picon.el
diff -u gnus/lisp/gnus-picon.el:7.17 gnus/lisp/gnus-picon.el:7.18
--- gnus-picon.el:7.17	Thu Jan 22 08:02:16 2009
+++ gnus-picon.el	Wed Sep  9 11:31:35 2009
@@ -90,12 +90,14 @@
   :group 'gnus-picon)
 ;; backward-compatibility alias
 (put 'gnus-picon-xbm-face 'face-alias 'gnus-picon-xbm)
+(put 'gnus-picon-xbm-face 'obsolete-face "22.1")
 
 (defface gnus-picon '((t (:foreground "black" :background "white")))
   "Face to show picon in."
   :group 'gnus-picon)
 ;; backward-compatibility alias
 (put 'gnus-picon-face 'face-alias 'gnus-picon)
+(put 'gnus-picon-face 'obsolete-face "22.1")
 
 ;;; Internal variables:
 
Index: gnus-salt.el
diff -u gnus/lisp/gnus-salt.el:7.17 gnus/lisp/gnus-salt.el:7.18
--- gnus-salt.el:7.17	Thu Jan 22 08:02:15 2009
+++ gnus-salt.el	Wed Sep  9 11:31:35 2009
@@ -1,7 +1,7 @@
 ;;; gnus-salt.el --- alternate summary mode interfaces for Gnus
 
-;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
+;;   2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <[email protected]>
 ;; Keywords: news
@@ -273,9 +273,9 @@
 	      (let* ((this-line (1+ (count-lines (point-min) end-point)))
 		     (min-line (min this-line start-line))
 		     (max-line (max this-line start-line)))
-		;; Why not use `forward-line'?  --Stef
 		(while (< min-line max-line)
-		  (goto-line min-line)
+		  (goto-char (point-min))
+		  (forward-line (1- min-line))
 		  (gnus-pick-article)
 		  (setq min-line (1+ min-line)))
 		(setq start-line this-line))
Index: gnus-srvr.el
diff -u gnus/lisp/gnus-srvr.el:7.36 gnus/lisp/gnus-srvr.el:7.37
--- gnus-srvr.el:7.36	Thu Jan 22 08:02:16 2009
+++ gnus-srvr.el	Wed Sep  9 11:31:35 2009
@@ -177,6 +177,7 @@
   :group 'gnus-server-visual)
 ;; backward-compatibility alias
 (put 'gnus-server-agent-face 'face-alias 'gnus-server-agent)
+(put 'gnus-server-agent-face 'obsolete-face "22.1")
 
 (defface gnus-server-opened
   '((((class color) (background light)) (:foreground "Green3" :bold t))
@@ -186,6 +187,7 @@
   :group 'gnus-server-visual)
 ;; backward-compatibility alias
 (put 'gnus-server-opened-face 'face-alias 'gnus-server-opened)
+(put 'gnus-server-opened-face 'obsolete-face "22.1")
 
 (defface gnus-server-closed
   '((((class color) (background light)) (:foreground "Steel Blue" :italic t))
@@ -196,6 +198,7 @@
   :group 'gnus-server-visual)
 ;; backward-compatibility alias
 (put 'gnus-server-closed-face 'face-alias 'gnus-server-closed)
+(put 'gnus-server-closed-face 'obsolete-face "22.1")
 
 (defface gnus-server-denied
   '((((class color) (background light)) (:foreground "Red" :bold t))
@@ -205,6 +208,7 @@
   :group 'gnus-server-visual)
 ;; backward-compatibility alias
 (put 'gnus-server-denied-face 'face-alias 'gnus-server-denied)
+(put 'gnus-server-denied-face 'obsolete-face "22.1")
 
 (defface gnus-server-offline
   '((((class color) (background light)) (:foreground "Orange" :bold t))
@@ -214,6 +218,7 @@
   :group 'gnus-server-visual)
 ;; backward-compatibility alias
 (put 'gnus-server-offline-face 'face-alias 'gnus-server-offline)
+(put 'gnus-server-offline-face 'obsolete-face "22.1")
 
 (defvar gnus-server-font-lock-keywords
   '(("(\\(agent\\))" 1 'gnus-server-agent)
Index: gnus-sum.el
diff -u gnus/lisp/gnus-sum.el:7.239 gnus/lisp/gnus-sum.el:7.240
--- gnus-sum.el:7.239	Wed Aug 12 10:27:50 2009
+++ gnus-sum.el	Wed Sep  9 11:31:35 2009
@@ -5002,7 +5002,7 @@
 	    (lambda (header)
 	      (setq previous-time
 		    (condition-case ()
-			(time-to-seconds (mail-header-parse-date
+			(gnus-float-time (mail-header-parse-date
 					  (mail-header-date header)))
 		      (error previous-time))))
 	    (sort
@@ -8284,7 +8284,7 @@
 
 (defalias 'gnus-summary-delete-marked-as-read 'gnus-summary-limit-to-unread)
 (make-obsolete
- 'gnus-summary-delete-marked-as-read 'gnus-summary-limit-to-unread)
+ 'gnus-summary-delete-marked-as-read 'gnus-summary-limit-to-unread "Emacs 20.4")
 
 (defun gnus-summary-limit-to-unread (&optional all)
   "Limit the summary buffer to articles that are not marked as read.
@@ -8379,7 +8379,7 @@
 
 (defalias 'gnus-summary-delete-marked-with 'gnus-summary-limit-exclude-marks)
 (make-obsolete 'gnus-summary-delete-marked-with
-	       'gnus-summary-limit-exclude-marks)
+	       'gnus-summary-limit-exclude-marks "Emacs 20.4")
 
 (defun gnus-summary-limit-exclude-marks (marks &optional reverse)
   "Exclude articles that are marked with MARKS (e.g. \"DK\").
@@ -10821,7 +10821,7 @@
 (defalias 'gnus-summary-mark-as-unread-forward
   'gnus-summary-tick-article-forward)
 (make-obsolete 'gnus-summary-mark-as-unread-forward
-	       'gnus-summary-tick-article-forward)
+	       'gnus-summary-tick-article-forward "Emacs 20.4")
 (defun gnus-summary-tick-article-forward (n)
   "Tick N articles forwards.
 If N is negative, tick backwards instead.
@@ -10832,7 +10832,7 @@
 (defalias 'gnus-summary-mark-as-unread-backward
   'gnus-summary-tick-article-backward)
 (make-obsolete 'gnus-summary-mark-as-unread-backward
-	       'gnus-summary-tick-article-backward)
+	       'gnus-summary-tick-article-backward "Emacs 20.4")
 (defun gnus-summary-tick-article-backward (n)
   "Tick N articles backwards.
 The difference between N and the number of articles ticked is returned."
@@ -10840,7 +10840,7 @@
   (gnus-summary-mark-forward (- n) gnus-ticked-mark))
 
 (defalias 'gnus-summary-mark-as-unread 'gnus-summary-tick-article)
-(make-obsolete 'gnus-summary-mark-as-unread 'gnus-summary-tick-article)
+(make-obsolete 'gnus-summary-mark-as-unread 'gnus-summary-tick-article "Emacs 20.4")
 (defun gnus-summary-tick-article (&optional article clear-mark)
   "Mark current article as unread.
 Optional 1st argument ARTICLE specifies article number to be marked as unread.
Index: gnus-util.el
diff -u gnus/lisp/gnus-util.el:7.87 gnus/lisp/gnus-util.el:7.88
--- gnus-util.el:7.87	Fri Feb 27 00:35:59 2009
+++ gnus-util.el	Wed Sep  9 11:31:35 2009
@@ -285,6 +285,15 @@
 	(and (= (car fdate) (car date))
 	     (> (nth 1 fdate) (nth 1 date))))))
 
+(eval-and-compile
+  (if (and (fboundp 'float-time)
+	   (subrp (symbol-function 'float-time)))
+      (defalias 'gnus-float-time 'float-time)
+    (defun gnus-float-time (&optional time)
+      "Convert time value TIME to a floating point number.
+TIME defaults to the current time."
+      (with-no-warnings (time-to-seconds (or time (current-time)))))))
+
 ;;; Keymap macros.
 
 (defmacro gnus-local-set-keys (&rest plist)
@@ -443,8 +452,8 @@
 Returns \"  ?  \" if there's bad input or if an other error occurs.
 Input should look like this: \"Sun, 14 Oct 2001 13:34:39 +0200\"."
   (condition-case ()
-      (let* ((messy-date (time-to-seconds (safe-date-to-time messy-date)))
-	     (now (time-to-seconds (current-time)))
+      (let* ((messy-date (gnus-float-time (safe-date-to-time messy-date)))
+	     (now (gnus-float-time))
 	     ;;If we don't find something suitable we'll use this one
 	     (my-format "%b %d '%y"))
 	(let* ((difference (- now messy-date))
Index: gnus.el
diff -u gnus/lisp/gnus.el:7.88 gnus/lisp/gnus.el:7.89
--- gnus.el:7.88	Fri Feb 27 00:35:59 2009
+++ gnus.el	Wed Sep  9 11:31:35 2009
@@ -378,6 +378,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-1-face 'face-alias 'gnus-group-news-1)
+(put 'gnus-group-news-1-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-1-empty
   '((((class color)
@@ -392,6 +393,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-1-empty-face 'face-alias 'gnus-group-news-1-empty)
+(put 'gnus-group-news-1-empty-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-2
   '((((class color)
@@ -406,6 +408,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-2-face 'face-alias 'gnus-group-news-2)
+(put 'gnus-group-news-2-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-2-empty
   '((((class color)
@@ -420,6 +423,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-2-empty-face 'face-alias 'gnus-group-news-2-empty)
+(put 'gnus-group-news-2-empty-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-3
   '((((class color)
@@ -434,6 +438,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-3-face 'face-alias 'gnus-group-news-3)
+(put 'gnus-group-news-3-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-3-empty
   '((((class color)
@@ -448,6 +453,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-3-empty-face 'face-alias 'gnus-group-news-3-empty)
+(put 'gnus-group-news-3-empty-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-4
   '((((class color)
@@ -462,6 +468,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-4-face 'face-alias 'gnus-group-news-4)
+(put 'gnus-group-news-4-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-4-empty
   '((((class color)
@@ -476,6 +483,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-4-empty-face 'face-alias 'gnus-group-news-4-empty)
+(put 'gnus-group-news-4-empty-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-5
   '((((class color)
@@ -490,6 +498,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-5-face 'face-alias 'gnus-group-news-5)
+(put 'gnus-group-news-5-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-5-empty
   '((((class color)
@@ -504,6 +513,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-5-empty-face 'face-alias 'gnus-group-news-5-empty)
+(put 'gnus-group-news-5-empty-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-6
   '((((class color)
@@ -518,6 +528,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-6-face 'face-alias 'gnus-group-news-6)
+(put 'gnus-group-news-6-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-6-empty
   '((((class color)
@@ -532,6 +543,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-6-empty-face 'face-alias 'gnus-group-news-6-empty)
+(put 'gnus-group-news-6-empty-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-low
   '((((class color)
@@ -546,6 +558,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-low-face 'face-alias 'gnus-group-news-low)
+(put 'gnus-group-news-low-face 'obsolete-face "22.1")
 
 (defface gnus-group-news-low-empty
   '((((class color)
@@ -560,6 +573,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-news-low-empty-face 'face-alias 'gnus-group-news-low-empty)
+(put 'gnus-group-news-low-empty-face 'obsolete-face "22.1")
 
 (defface gnus-group-mail-1
   '((((class color)
@@ -574,6 +588,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-mail-1-face 'face-alias 'gnus-group-mail-1)
+(put 'gnus-group-mail-1-face 'obsolete-face "22.1")
 
 (defface gnus-group-mail-1-empty
   '((((class color)
@@ -588,6 +603,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-mail-1-empty-face 'face-alias 'gnus-group-mail-1-empty)
+(put 'gnus-group-mail-1-empty-face 'obsolete-face "22.1")
 
 (defface gnus-group-mail-2
   '((((class color)
@@ -602,6 +618,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-mail-2-face 'face-alias 'gnus-group-mail-2)
+(put 'gnus-group-mail-2-face 'obsolete-face "22.1")
 
 (defface gnus-group-mail-2-empty
   '((((class color)
@@ -616,6 +633,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-mail-2-empty-face 'face-alias 'gnus-group-mail-2-empty)
+(put 'gnus-group-mail-2-empty-face 'obsolete-face "22.1")
 
 (defface gnus-group-mail-3
   '((((class color)
@@ -630,6 +648,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-mail-3-face 'face-alias 'gnus-group-mail-3)
+(put 'gnus-group-mail-3-face 'obsolete-face "22.1")
 
 (defface gnus-group-mail-3-empty
   '((((class color)
@@ -644,6 +663,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-mail-3-empty-face 'face-alias 'gnus-group-mail-3-empty)
+(put 'gnus-group-mail-3-empty-face 'obsolete-face "22.1")
 
 (defface gnus-group-mail-low
   '((((class color)
@@ -658,6 +678,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-mail-low-face 'face-alias 'gnus-group-mail-low)
+(put 'gnus-group-mail-low-face 'obsolete-face "22.1")
 
 (defface gnus-group-mail-low-empty
   '((((class color)
@@ -672,6 +693,7 @@
   :group 'gnus-group)
 ;; backward-compatibility alias
 (put 'gnus-group-mail-low-empty-face 'face-alias 'gnus-group-mail-low-empty)
+(put 'gnus-group-mail-low-empty-face 'obsolete-face "22.1")
 
 ;; Summary mode faces.
 
@@ -680,6 +702,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-selected-face 'face-alias 'gnus-summary-selected)
+(put 'gnus-summary-selected-face 'obsolete-face "22.1")
 
 (defface gnus-summary-cancelled
   '((((class color))
@@ -688,6 +711,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-cancelled-face 'face-alias 'gnus-summary-cancelled)
+(put 'gnus-summary-cancelled-face 'obsolete-face "22.1")
 
 (defface gnus-summary-high-ticked
   '((((class color)
@@ -702,6 +726,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-high-ticked-face 'face-alias 'gnus-summary-high-ticked)
+(put 'gnus-summary-high-ticked-face 'obsolete-face "22.1")
 
 (defface gnus-summary-low-ticked
   '((((class color)
@@ -716,6 +741,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-low-ticked-face 'face-alias 'gnus-summary-low-ticked)
+(put 'gnus-summary-low-ticked-face 'obsolete-face "22.1")
 
 (defface gnus-summary-normal-ticked
   '((((class color)
@@ -730,6 +756,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-normal-ticked-face 'face-alias 'gnus-summary-normal-ticked)
+(put 'gnus-summary-normal-ticked-face 'obsolete-face "22.1")
 
 (defface gnus-summary-high-ancient
   '((((class color)
@@ -744,6 +771,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-high-ancient-face 'face-alias 'gnus-summary-high-ancient)
+(put 'gnus-summary-high-ancient-face 'obsolete-face "22.1")
 
 (defface gnus-summary-low-ancient
   '((((class color)
@@ -758,6 +786,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-low-ancient-face 'face-alias 'gnus-summary-low-ancient)
+(put 'gnus-summary-low-ancient-face 'obsolete-face "22.1")
 
 (defface gnus-summary-normal-ancient
   '((((class color)
@@ -772,6 +801,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-normal-ancient-face 'face-alias 'gnus-summary-normal-ancient)
+(put 'gnus-summary-normal-ancient-face 'obsolete-face "22.1")
 
 (defface gnus-summary-high-undownloaded
    '((((class color)
@@ -784,6 +814,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-high-undownloaded-face 'face-alias 'gnus-summary-high-undownloaded)
+(put 'gnus-summary-high-undownloaded-face 'obsolete-face "22.1")
 
 (defface gnus-summary-low-undownloaded
    '((((class color)
@@ -796,6 +827,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-low-undownloaded-face 'face-alias 'gnus-summary-low-undownloaded)
+(put 'gnus-summary-low-undownloaded-face 'obsolete-face "22.1")
 
 (defface gnus-summary-normal-undownloaded
    '((((class color)
@@ -808,6 +840,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-normal-undownloaded-face 'face-alias 'gnus-summary-normal-undownloaded)
+(put 'gnus-summary-normal-undownloaded-face 'obsolete-face "22.1")
 
 (defface gnus-summary-high-unread
   '((t
@@ -816,6 +849,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-high-unread-face 'face-alias 'gnus-summary-high-unread)
+(put 'gnus-summary-high-unread-face 'obsolete-face "22.1")
 
 (defface gnus-summary-low-unread
   '((t
@@ -824,6 +858,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-low-unread-face 'face-alias 'gnus-summary-low-unread)
+(put 'gnus-summary-low-unread-face 'obsolete-face "22.1")
 
 (defface gnus-summary-normal-unread
   '((t
@@ -832,6 +867,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-normal-unread-face 'face-alias 'gnus-summary-normal-unread)
+(put 'gnus-summary-normal-unread-face 'obsolete-face "22.1")
 
 (defface gnus-summary-high-read
   '((((class color)
@@ -848,6 +884,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-high-read-face 'face-alias 'gnus-summary-high-read)
+(put 'gnus-summary-high-read-face 'obsolete-face "22.1")
 
 (defface gnus-summary-low-read
   '((((class color)
@@ -864,6 +901,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-low-read-face 'face-alias 'gnus-summary-low-read)
+(put 'gnus-summary-low-read-face 'obsolete-face "22.1")
 
 (defface gnus-summary-normal-read
   '((((class color)
@@ -878,6 +916,7 @@
   :group 'gnus-summary)
 ;; backward-compatibility alias
 (put 'gnus-summary-normal-read-face 'face-alias 'gnus-summary-normal-read)
+(put 'gnus-summary-normal-read-face 'obsolete-face "22.1")
 
 
 ;;;
@@ -933,6 +972,7 @@
   :group 'gnus-start)
 ;; backward-compatibility alias
 (put 'gnus-splash-face 'face-alias 'gnus-splash)
+(put 'gnus-splash-face 'obsolete-face "22.1")
 
 (defun gnus-splash ()
   (save-excursion
Index: imap.el
diff -u gnus/lisp/imap.el:7.55 gnus/lisp/imap.el:7.56
--- imap.el:7.55	Wed Sep  9 05:05:40 2009
+++ imap.el	Wed Sep  9 11:31:35 2009
@@ -2004,10 +2004,11 @@
 	       (imap-send-command-1 cmdstr)
 	       (setq cmdstr nil)
 	       (unwind-protect
-		   (if (not (eq (imap-wait-for-tag tag) 'INCOMPLETE))
-		       (setq command nil) ;; abort command if no cont-req
-		     (setq command (cons (funcall cmd imap-continuation)
-					 command)))
+		   (setq command
+			 (if (not (eq (imap-wait-for-tag tag) 'INCOMPLETE))
+			     nil ;; abort command if no cont-req
+			   (cons (funcall cmd imap-continuation)
+				 command)))
 		 (setq imap-continuation nil)))
 	      (t
 	       (error "Unknown command type"))))
@@ -2021,7 +2022,7 @@
       (while (and (null imap-continuation)
 		  (memq (process-status imap-process) '(open run))
 		  (< imap-reached-tag tag))
-	(let ((len (/ (point-max) 1024))
+	(let ((len (/ (buffer-size) 1024))
 	      message-log-max)
 	  (unless (< len 10)
 	    (setq imap-have-messaged t)
Index: lpath.el
diff -u gnus/lisp/lpath.el:7.53 gnus/lisp/lpath.el:7.54
--- lpath.el:7.53	Fri Jul 17 01:19:43 2009
+++ lpath.el	Wed Sep  9 11:31:35 2009
@@ -37,7 +37,7 @@
        make-annotation make-event make-glyph make-network-process map-extents
        message-xmas-redefine put-char-table run-mode-hooks set-extent-property
        set-itimer-function set-keymap-default-binding temp-directory
-       ucs-to-char unicode-precedence-list unicode-to-char
+       time-to-seconds ucs-to-char unicode-precedence-list unicode-to-char
        url-generic-parse-url url-http-file-exists-p
        valid-image-instantiator-format-p vcard-pretty-print
        w3-coding-system-for-mime-charset window-pixel-height
@@ -59,7 +59,7 @@
      display-time-event-handler epg-check-configuration event-click-count
      event-end event-start find-coding-systems-for-charsets
      find-coding-systems-region find-coding-systems-string find-image
-     help-buffer image-size image-type-available-p insert-image
+     float-time help-buffer image-size image-type-available-p insert-image
      mail-abbrevs-setup make-mode-line-mouse-map make-network-process
      mouse-minibuffer-check mouse-movement-p mouse-scroll-subr
      pgg-display-output-buffer posn-point posn-window put-image read-event
Index: message.el
diff -u gnus/lisp/message.el:7.281 gnus/lisp/message.el:7.282
--- message.el:7.281	Fri Feb 27 00:35:58 2009
+++ message.el	Wed Sep  9 11:31:35 2009
@@ -1317,6 +1317,7 @@
   :group 'message-faces)
 ;; backward-compatibility alias
 (put 'message-header-to-face 'face-alias 'message-header-to)
+(put 'message-header-to-face 'obsolete-face "22.1")
 
 (defface message-header-cc
   '((((class color)
@@ -1331,6 +1332,7 @@
   :group 'message-faces)
 ;; backward-compatibility alias
 (put 'message-header-cc-face 'face-alias 'message-header-cc)
+(put 'message-header-cc-face 'obsolete-face "22.1")
 
 (defface message-header-subject
   '((((class color)
@@ -1345,6 +1347,7 @@
   :group 'message-faces)
 ;; backward-compatibility alias
 (put 'message-header-subject-face 'face-alias 'message-header-subject)
+(put 'message-header-subject-face 'obsolete-face "22.1")
 
 (defface message-header-newsgroups
   '((((class color)
@@ -1359,6 +1362,7 @@
   :group 'message-faces)
 ;; backward-compatibility alias
 (put 'message-header-newsgroups-face 'face-alias 'message-header-newsgroups)
+(put 'message-header-newsgroups-face 'obsolete-face "22.1")
 
 (defface message-header-other
   '((((class color)
@@ -1373,6 +1377,7 @@
   :group 'message-faces)
 ;; backward-compatibility alias
 (put 'message-header-other-face 'face-alias 'message-header-other)
+(put 'message-header-other-face 'obsolete-face "22.1")
 
 (defface message-header-name
   '((((class color)
@@ -1387,6 +1392,7 @@
   :group 'message-faces)
 ;; backward-compatibility alias
 (put 'message-header-name-face 'face-alias 'message-header-name)
+(put 'message-header-name-face 'obsolete-face "22.1")
 
 (defface message-header-xheader
   '((((class color)
@@ -1401,6 +1407,7 @@
   :group 'message-faces)
 ;; backward-compatibility alias
 (put 'message-header-xheader-face 'face-alias 'message-header-xheader)
+(put 'message-header-xheader-face 'obsolete-face "22.1")
 
 (defface message-separator
   '((((class color)
@@ -1415,6 +1422,7 @@
   :group 'message-faces)
 ;; backward-compatibility alias
 (put 'message-separator-face 'face-alias 'message-separator)
+(put 'message-separator-face 'obsolete-face "22.1")
 
 (defface message-cited-text
   '((((class color)
@@ -1429,6 +1437,7 @@
   :group 'message-faces)
 ;; backward-compatibility alias
 (put 'message-cited-text-face 'face-alias 'message-cited-text)
+(put 'message-cited-text-face 'obsolete-face "22.1")
 
 (defface message-mml
   '((((class color)
@@ -1443,6 +1452,7 @@
   :group 'message-faces)
 ;; backward-compatibility alias
 (put 'message-mml-face 'face-alias 'message-mml)
+(put 'message-mml-face 'obsolete-face "22.1")
 
 (defun message-font-lock-make-header-matcher (regexp)
   (let ((form
Index: mm-util.el
diff -u gnus/lisp/mm-util.el:7.91 gnus/lisp/mm-util.el:7.92
--- mm-util.el:7.91	Wed Jan 14 01:52:01 2009
+++ mm-util.el	Wed Sep  9 11:31:35 2009
@@ -1,7 +1,7 @@
 ;;; mm-util.el --- Utility functions for Mule and low level things
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+;;   2007, 2008, 2009  Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <[email protected]>
 ;;	MORIOKA Tomohiko <[email protected]>
@@ -900,8 +900,8 @@
 
 (eval-and-compile
   (defvar mm-emacs-mule (and (not (featurep 'xemacs))
-			     (boundp 'default-enable-multibyte-characters)
-			     default-enable-multibyte-characters
+			     (boundp 'enable-multibyte-characters)
+			     (default-value 'enable-multibyte-characters)
 			     (fboundp 'set-buffer-multibyte))
     "True in Emacs with Mule.")
 
@@ -1013,8 +1013,8 @@
   "Return non-nil if the session is multibyte.
 This affects whether coding conversion should be attempted generally."
   (if (featurep 'mule)
-      (if (boundp 'default-enable-multibyte-characters)
-	  default-enable-multibyte-characters
+      (if (boundp 'enable-multibyte-characters)
+	  (default-value 'enable-multibyte-characters)
 	t)))
 
 (defun mm-iso-8859-x-to-15-region (&optional b e)
@@ -1227,7 +1227,7 @@
 
 (defmacro mm-with-unibyte-current-buffer (&rest forms)
   "Evaluate FORMS with current buffer temporarily made unibyte.
-Also bind `default-enable-multibyte-characters' to nil.
+Also bind the default-value of `enable-multibyte-characters' to nil.
 Equivalent to `progn' in XEmacs
 
 NOTE: Use this macro with caution in multibyte buffers (it is not
@@ -1242,12 +1242,12 @@
 	 (let ((,multibyte enable-multibyte-characters)
 	       (,buffer (current-buffer)))
 	   (unwind-protect
-	       (let (default-enable-multibyte-characters)
+	       (letf (((default-value 'enable-multibyte-characters) nil))
 		 (set-buffer-multibyte nil)
 		 ,@forms)
 	     (set-buffer ,buffer)
 	     (set-buffer-multibyte ,multibyte)))
-       (let (default-enable-multibyte-characters)
+       (letf (((default-value 'enable-multibyte-characters) nil))
 	 ,@forms))))
 (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0)
 (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body))
@@ -1308,24 +1308,24 @@
 `find-file-hooks', etc.
 If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'.
   This function ensures that none of these modifications will take place."
-  (let* ((format-alist nil)
-	 (auto-mode-alist (if inhibit nil (mm-auto-mode-alist)))
-	 (default-major-mode 'fundamental-mode)
-	 (enable-local-variables nil)
-	 (after-insert-file-functions nil)
-	 (enable-local-eval nil)
-	 (inhibit-file-name-operation (if inhibit
-					  'insert-file-contents
-					inhibit-file-name-operation))
-	 (inhibit-file-name-handlers
-	  (if inhibit
-	      (append mm-inhibit-file-name-handlers
-		      inhibit-file-name-handlers)
-	    inhibit-file-name-handlers))
-	 (ffh (if (boundp 'find-file-hook)
-		  'find-file-hook
-		'find-file-hooks))
-	 (val (symbol-value ffh)))
+  (letf* ((format-alist nil)
+          (auto-mode-alist (if inhibit nil (mm-auto-mode-alist)))
+          ((default-value 'major-mode) 'fundamental-mode)
+          (enable-local-variables nil)
+          (after-insert-file-functions nil)
+          (enable-local-eval nil)
+          (inhibit-file-name-operation (if inhibit
+                                           'insert-file-contents
+                                         inhibit-file-name-operation))
+          (inhibit-file-name-handlers
+           (if inhibit
+               (append mm-inhibit-file-name-handlers
+                       inhibit-file-name-handlers)
+             inhibit-file-name-handlers))
+          (ffh (if (boundp 'find-file-hook)
+                   'find-file-hook
+                 'find-file-hooks))
+          (val (symbol-value ffh)))
     (set ffh nil)
     (unwind-protect
 	(insert-file-contents filename visit beg end replace)
@@ -1590,8 +1590,8 @@
 			    filename))
 		    (mm-decompress-buffer filename nil t))))
       (when decomp
-	(set-buffer (let (default-enable-multibyte-characters)
-		      (generate-new-buffer " *temp*")))
+	(set-buffer (letf (((default-value 'enable-multibyte-characters) nil))
+			  (generate-new-buffer " *temp*")))
 	(insert decomp)
 	(setq filename (file-name-sans-extension filename)))
       (goto-char (point-min))
Index: nnheader.el
diff -u gnus/lisp/nnheader.el:7.37 gnus/lisp/nnheader.el:7.38
--- nnheader.el:7.37	Thu Jan 22 08:02:16 2009
+++ nnheader.el	Wed Sep  9 11:31:35 2009
@@ -992,18 +992,18 @@
 (defun nnheader-find-file-noselect (&rest args)
   "Open a file with some variables bound.
 See `find-file-noselect' for the arguments."
-  (let* ((format-alist nil)
-	 (auto-mode-alist (mm-auto-mode-alist))
-	 (default-major-mode 'fundamental-mode)
-	 (enable-local-variables nil)
-	 (after-insert-file-functions nil)
-	 (enable-local-eval nil)
-	 (coding-system-for-read nnheader-file-coding-system)
-	 (version-control 'never)
-	 (ffh (if (boundp 'find-file-hook)
-		  'find-file-hook
-		'find-file-hooks))
-	 (val (symbol-value ffh)))
+  (letf* ((format-alist nil)
+          (auto-mode-alist (mm-auto-mode-alist))
+          ((default-value 'major-mode) 'fundamental-mode)
+          (enable-local-variables nil)
+          (after-insert-file-functions nil)
+          (enable-local-eval nil)
+          (coding-system-for-read nnheader-file-coding-system)
+          (version-control 'never)
+          (ffh (if (boundp 'find-file-hook)
+                   'find-file-hook
+                 'find-file-hooks))
+          (val (symbol-value ffh)))
     (set ffh nil)
     (unwind-protect
 	(apply 'find-file-noselect args)
Index: nnimap.el
diff -u gnus/lisp/nnimap.el:7.59 gnus/lisp/nnimap.el:7.60
--- nnimap.el:7.59	Mon Jan 26 16:23:27 2009
+++ nnimap.el	Wed Sep  9 11:31:35 2009
@@ -616,9 +616,9 @@
 	(setq uid imap-current-message
 	      mbx imap-current-mailbox
 	      headers (if (imap-capability 'IMAP4rev1)
-			   ;; xxx don't just use car? alist doesn't contain
-			   ;; anything else now, but it might...
-			   (nth 2 (car (imap-message-get uid 'BODYDETAIL)))
+                          ;; xxx don't just use car? alist doesn't contain
+                          ;; anything else now, but it might...
+                          (nth 2 (car (imap-message-get uid 'BODYDETAIL)))
                         (imap-message-get uid 'RFC822.HEADER))
 	      lines (imap-body-lines (imap-message-body imap-current-message))
 	      chars (imap-message-get imap-current-message 'RFC822.SIZE)))
Index: nnir.el
diff -u gnus/lisp/nnir.el:7.5 gnus/lisp/nnir.el:7.6
--- nnir.el:7.5	Thu Jan 22 08:02:16 2009
+++ nnir.el	Wed Sep  9 11:31:35 2009
@@ -336,7 +336,7 @@
 (require 'gnus-sum)
 (require 'message)
 (require 'gnus-util)
-(eval-and-compile
+(eval-when-compile
   (require 'cl))
 
 (nnoo-declare nnir)
@@ -505,7 +505,7 @@
 ;; `nnir-swish-e-additional-switches'
 
 (make-obsolete-variable 'nnir-swish-e-index-file
-			'nnir-swish-e-index-files)
+			'nnir-swish-e-index-files "Emacs 23.1")
 (defcustom nnir-swish-e-index-file
   (expand-file-name "~/Mail/index.swish-e")
   "*Index file for swish-e.
@@ -916,17 +916,18 @@
         (unless (string-match prefix dirnam)
           (nnheader-report 'nnir "Dir name %s doesn't contain prefix %s"
                            dirnam prefix))
-        (setq group (substitute ?. ?/ (replace-match "" t t dirnam)))
+        (setq group (gnus-replace-in-string
+                     (replace-match "" t t dirnam) "/" "."))
         (push (vector (nnir-group-full-name group server)
                       (string-to-number artno)
                       (string-to-number score))
               artlist))
       (message "Massaging waissearch output...done")
       (apply 'vector
-             (sort* artlist
-                    (function (lambda (x y)
-                                (> (nnir-artitem-rsv x)
-                                   (nnir-artitem-rsv y)))))))))
+             (sort artlist
+                   (function (lambda (x y)
+                               (> (nnir-artitem-rsv x)
+                                  (nnir-artitem-rsv y)))))))))
 
 ;; IMAP interface.
 ;; todo:
@@ -1235,10 +1236,10 @@
 
       ;; Sort by score
       (apply 'vector
-             (sort* artlist
-                    (function (lambda (x y)
-                                (> (nnir-artitem-rsv x)
-                                   (nnir-artitem-rsv y)))))))))
+             (sort artlist
+                   (function (lambda (x y)
+                               (> (nnir-artitem-rsv x)
+                                  (nnir-artitem-rsv y)))))))))
 
 ;; Swish-E interface.
 (defun nnir-run-swish-e (query server &optional group)
@@ -1316,9 +1317,9 @@
 	    ;; eliminate all ".", "/", "\" from beginning. Always matches.
             (string-match "^[./\\]*\\(.*\\)$" dirnam)
             ;; "/" -> "."
-            (setq group (substitute ?. ?/ (match-string 1 dirnam)))
+            (setq group (gnus-replace-in-string (match-string 1 dirnam) "/" "."))
             ;; Windows "\\" -> "."
-            (setq group (substitute ?. ?\\ group))
+            (setq group (gnus-replace-in-string group "\\\\" "."))
 
             (push (vector (nnir-group-full-name group server)
                           (string-to-number artno)
@@ -1329,10 +1330,10 @@
 
       ;; Sort by score
       (apply 'vector
-             (sort* artlist
-                    (function (lambda (x y)
-                                (> (nnir-artitem-rsv x)
-                                   (nnir-artitem-rsv y)))))))))
+             (sort artlist
+                   (function (lambda (x y)
+                               (> (nnir-artitem-rsv x)
+                                  (nnir-artitem-rsv y)))))))))
 
 ;; HyREX interface
 (defun nnir-run-hyrex (query server &optional group)
@@ -1397,19 +1398,20 @@
 	      score (match-string 3))
 	(when (string-match prefix dirnam)
 	  (setq dirnam (replace-match "" t t dirnam)))
-	(push (vector (nnir-group-full-name (substitute ?. ?/ dirnam) server)
+	(push (vector (nnir-group-full-name
+                       (gnus-replace-in-string dirnam "/" ".") server)
 		      (string-to-number artno)
 		      (string-to-number score))
 	      artlist))
       (message "Massaging hyrex-search output...done.")
       (apply 'vector
-	     (sort* artlist
-		    (function (lambda (x y)
-				(if (string-lessp (nnir-artitem-group x)
-						  (nnir-artitem-group y))
-				    t
-				  (< (nnir-artitem-number x)
-				     (nnir-artitem-number y)))))))
+	     (sort artlist
+                   (function (lambda (x y)
+                               (if (string-lessp (nnir-artitem-group x)
+                                                 (nnir-artitem-group y))
+                                   t
+                                 (< (nnir-artitem-number x)
+                                    (nnir-artitem-number y)))))))
       )))
 
 ;; Namazu interface
@@ -1476,10 +1478,10 @@
 
       ;; sort artlist by score
       (apply 'vector
-             (sort* artlist
-                    (function (lambda (x y)
-                                (> (nnir-artitem-rsv x)
-                                   (nnir-artitem-rsv y)))))))))
+             (sort artlist
+                   (function (lambda (x y)
+                               (> (nnir-artitem-rsv x)
+                                  (nnir-artitem-rsv y)))))))))
 
 (defun nnir-run-find-grep (query server &optional group)
   "Run find and grep to obtain matching articles."
@@ -1505,11 +1507,14 @@
 		 "."
 	       ;; Try accessing the group literally as well as
 	       ;; interpreting dots as directory separators so the
-	       ;; engine works with plain nnml as well as the Gnus
-	       ;; Cache.
-	       (find-if 'file-directory-p
-		(let ((group (gnus-group-real-name group)))
-		  (list group (gnus-replace-in-string group "\\." "/" t)))))))
+	       ;; engine works with plain nnml as well as the Gnus Cache.
+               (let ((group (gnus-group-real-name group)))
+                 ;; Replace cl-func find-if.
+                 (if (file-directory-p group)
+                     group
+                   (if (file-directory-p
+                        (setq group (gnus-replace-in-string group "\\." "/" t)))
+                       group))))))
 	(unless group
 	  (error "Cannot locate directory for group"))
 	(save-excursion
@@ -1532,7 +1537,14 @@
 	       (art (string-to-number (car (last path)))))
 	  (while (string= "." (car path))
 	    (setq path (cdr path)))
-	  (let ((group (mapconcat 'identity (subseq path 0 -1) ".")))
+	  (let ((group (mapconcat 'identity
+                                  ;; Replace cl-func: (subseq path 0 -1)
+                                  (let ((end (1- (length path)))
+                                        res)
+                                    (while (>= (setq end (1- end)) 0)
+                                      (push (pop path) res))
+                                    (nreverse res))
+                                  ".")))
 	    (push (vector (nnir-group-full-name group server) art 0)
 		  artlist))
 	  (forward-line 1)))
Index: nnmail.el
diff -u gnus/lisp/nnmail.el:7.48 gnus/lisp/nnmail.el:7.49
--- nnmail.el:7.48	Thu Jan 22 08:02:16 2009
+++ nnmail.el	Wed Sep  9 11:31:35 2009
@@ -242,9 +242,8 @@
   :group 'nnmail
   :type 'boolean)
 
-(make-obsolete-variable 'nnmail-spool-file
-			"This option is obsolete in Gnus 5.9.  \
-Use `mail-sources' instead.")
+(make-obsolete-variable 'nnmail-spool-file 'mail-sources
+			"Gnus 5.9 (Emacs 22.1)")
 ;; revision 5.29 / p0-85 / Gnus 5.9
 ;; Variable removed in No Gnus v0.7
 
@@ -1318,7 +1317,7 @@
       (replace-match "\\1" t))))
 
 (defalias 'nnmail-fix-eudora-headers 'nnmail-ignore-broken-references)
-(make-obsolete 'nnmail-fix-eudora-headers 'nnmail-ignore-broken-references)
+(make-obsolete 'nnmail-fix-eudora-headers 'nnmail-ignore-broken-references "Emacs 23.1")
 
 (custom-add-option 'nnmail-prepare-incoming-header-hook
 		   'nnmail-ignore-broken-references)
Index: nnrss.el
diff -u gnus/lisp/nnrss.el:7.62 gnus/lisp/nnrss.el:7.63
--- nnrss.el:7.62	Fri Jul 17 01:19:43 2009
+++ nnrss.el	Wed Sep  9 11:31:35 2009
@@ -272,7 +272,7 @@
 		      (replace-match "\n")
 		    (replace-match "\n\n")))
 		(unless (eobp)
-		  (let ((fill-column default-fill-column)
+		  (let ((fill-column (default-value 'fill-column))
 			(window (get-buffer-window nntp-server-buffer)))
 		    (when window
 		      (setq fill-column
Index: nnspool.el
diff -u gnus/lisp/nnspool.el:7.17 gnus/lisp/nnspool.el:7.18
--- nnspool.el:7.17	Thu Jan 22 08:02:16 2009
+++ nnspool.el	Wed Sep  9 11:31:35 2009
@@ -1,7 +1,8 @@
 ;;; nnspool.el --- spool access for GNU Emacs
 
 ;; Copyright (C) 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997, 1998,
-;;   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;;   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+;;   Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <[email protected]>
 ;;	Lars Magne Ingebrigtsen <[email protected]>
@@ -288,7 +289,8 @@
 	(while (and (not (looking-at
 			  "\\([^ ]+\\) +\\([0-9]+\\)[0-9][0-9][0-9] "))
 		    (zerop (forward-line -1))))
-	(let ((seconds (time-to-seconds (date-to-time date)))
+	;; We require nnheader which requires gnus-util.
+	(let ((seconds (gnus-float-time (date-to-time date)))
 	      groups)
 	  ;; Go through lines and add the latest groups to a list.
 	  (while (and (looking-at "\\([^ ]+\\) +[0-9]+ ")
Index: parse-time.el
diff -u gnus/lisp/parse-time.el:7.14 gnus/lisp/parse-time.el:7.15
--- parse-time.el:7.14	Thu Jan 22 08:02:16 2009
+++ parse-time.el	Wed Sep  9 11:31:35 2009
@@ -37,7 +37,6 @@
 
 (eval-when-compile (require 'cl))	;and ah ain't kiddin' 'bout it
 
-(defvar parse-time-syntax (make-vector 256 nil))
 (defvar parse-time-digits (make-vector 256 nil))
 
 ;; Byte-compiler warnings
@@ -48,24 +47,18 @@
   (loop for i from ?0 to ?9
     do (aset parse-time-digits i (- i ?0))))
 
-(unless (aref parse-time-syntax ?0)
-  (loop for i from ?0 to ?9
-    do (aset parse-time-syntax i ?0))
-  (loop for i from ?A to ?Z
-    do (aset parse-time-syntax i ?A))
-  (loop for i from ?a to ?z
-    do (aset parse-time-syntax i ?a))
-  (aset parse-time-syntax ?+ 1)
-  (aset parse-time-syntax ?- -1)
-  (aset parse-time-syntax ?: ?d)
-  )
-
 (defsubst digit-char-p (char)
   (aref parse-time-digits char))
 
 (defsubst parse-time-string-chars (char)
-  (and (< char (length parse-time-syntax))
-       (aref parse-time-syntax char)))
+  (save-match-data
+    (let (case-fold-search str)
+      (cond ((eq char ?+) 1)
+	    ((eq char ?-) -1)
+	    ((eq char ?:) ?d)
+	    ((string-match "[[:upper:]]" (setq str (string char))) ?A)
+	    ((string-match "[[:lower:]]" str) ?a)
+	    ((string-match "[[:digit:]]" str) ?0)))))
 
 (put 'parse-error 'error-conditions '(parse-error error))
 (put 'parse-error 'error-message "Parsing error")
@@ -182,6 +175,7 @@
     ((5) (50 110) ,#'(lambda () (+ 1900 parse-time-elt)))
     ((5) (0 49) ,#'(lambda () (+ 2000 parse-time-elt))))
   "(slots predicate extractor...)")
+;;;###autoload(put 'parse-time-rules 'risky-local-variable t)
 
 ;;;###autoload
 (defun parse-time-string (string)
Index: qp.el
diff -u gnus/lisp/qp.el:7.17 gnus/lisp/qp.el:7.18
--- qp.el:7.17	Thu Jan 22 08:02:15 2009
+++ qp.el	Wed Sep  9 11:31:35 2009
@@ -1,7 +1,7 @@
 ;;; qp.el --- Quoted-Printable functions
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+;;   2007, 2008, 2009  Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <[email protected]>
 ;; Keywords: mail, extensions
@@ -154,11 +154,13 @@
 
 (defun quoted-printable-encode-string (string)
   "Encode the STRING as quoted-printable and return the result."
-  (let ((default-enable-multibyte-characters (mm-multibyte-string-p string)))
-    (with-temp-buffer
-      (insert string)
-      (quoted-printable-encode-region (point-min) (point-max))
-      (buffer-string))))
+  (with-temp-buffer
+    (if (mm-multibyte-string-p string)
+	(mm-enable-multibyte)
+      (mm-disable-multibyte))
+    (insert string)
+    (quoted-printable-encode-region (point-min) (point-max))
+    (buffer-string)))
 
 (provide 'qp)
 
Index: rfc2047.el
diff -u gnus/lisp/rfc2047.el:7.75 gnus/lisp/rfc2047.el:7.76
--- rfc2047.el:7.75	Fri May 29 01:16:51 2009
+++ rfc2047.el	Wed Sep  9 11:31:35 2009
@@ -1,7 +1,7 @@
 ;;; rfc2047.el --- functions for encoding and decoding rfc2047 messages
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+;;   2007, 2008, 2009  Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <[email protected]>
 ;;	MORIOKA Tomohiko <[email protected]>
@@ -282,8 +282,8 @@
 		(rfc2047-encode-region (point) (point-max))))
 	     ((eq method 'default)
 	      (if (and (featurep 'mule)
-		       (if (boundp 'default-enable-multibyte-characters)
-			   default-enable-multibyte-characters)
+		       (if (boundp 'enable-multibyte-characters)
+			   (default-value 'enable-multibyte-characters))
 		       mail-parse-charset)
 		  (mm-encode-coding-region (point) (point-max)
 					   mail-parse-charset)))
@@ -309,8 +309,8 @@
 ;;; 		(error "Cannot send unencoded text")))
 	     ((mm-coding-system-p method)
 	      (if (or (and (featurep 'mule)
-			   (if (boundp 'default-enable-multibyte-characters)
-			       default-enable-multibyte-characters))
+			   (if (boundp 'enable-multibyte-characters)
+			       (default-value 'enable-multibyte-characters)))
 		      (featurep 'file-coding))
 		  (mm-encode-coding-region (point) (point-max) method)))
 	     ;; Hm.
Index: sieve-mode.el
diff -u gnus/lisp/sieve-mode.el:7.14 gnus/lisp/sieve-mode.el:7.15
--- sieve-mode.el:7.14	Thu Jan 22 08:02:16 2009
+++ sieve-mode.el	Wed Sep  9 11:31:35 2009
@@ -1,7 +1,7 @@
 ;;; sieve-mode.el --- Sieve code editing commands for Emacs
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005,
-;;   2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+;;   Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <[email protected]>
 
@@ -78,6 +78,7 @@
   :group 'sieve)
 ;; backward-compatibility alias
 (put 'sieve-control-commands-face 'face-alias 'sieve-control-commands)
+(put 'sieve-control-commands-face 'obsolete-face "22.1")
 
 (defvar sieve-action-commands-face 'sieve-action-commands
   "Face name used for Sieve Action Commands.")
@@ -91,6 +92,7 @@
   :group 'sieve)
 ;; backward-compatibility alias
 (put 'sieve-action-commands-face 'face-alias 'sieve-action-commands)
+(put 'sieve-action-commands-face 'obsolete-face "22.1")
 
 (defvar sieve-test-commands-face 'sieve-test-commands
   "Face name used for Sieve Test Commands.")
@@ -108,6 +110,7 @@
   :group 'sieve)
 ;; backward-compatibility alias
 (put 'sieve-test-commands-face 'face-alias 'sieve-test-commands)
+(put 'sieve-test-commands-face 'obsolete-face "22.1")
 
 (defvar sieve-tagged-arguments-face 'sieve-tagged-arguments
   "Face name used for Sieve Tagged Arguments.")
@@ -123,6 +126,7 @@
   :group 'sieve)
 ;; backward-compatibility alias
 (put 'sieve-tagged-arguments-face 'face-alias 'sieve-tagged-arguments)
+(put 'sieve-tagged-arguments-face 'obsolete-face "22.1")
 
 
 (defconst sieve-font-lock-keywords
Index: spam.el
diff -u gnus/lisp/spam.el:7.103 gnus/lisp/spam.el:7.104
--- spam.el:7.103	Tue Apr 28 19:02:36 2009
+++ spam.el	Wed Sep  9 11:31:35 2009
@@ -371,6 +371,7 @@
   :group 'spam)
 ;; backward-compatibility alias
 (put 'spam-face 'face-alias 'spam)
+(put 'spam-face 'obsolete-face "22.1")
 
 (defcustom spam-face 'spam
   "Face for spam-marked articles."
@@ -413,16 +414,16 @@
   "Spam ifile configuration."
   :group 'spam)
 
-(make-obsolete-variable 'spam-ifile-path 'spam-ifile-program)
-;; "22.1" ;; Gnus 5.10.9
+(make-obsolete-variable 'spam-ifile-path 'spam-ifile-program
+                        "Gnus 5.10.9 (Emacs 22.1)")
 (defcustom spam-ifile-program (executable-find "ifile")
   "Name of the ifile program."
   :type '(choice (file :tag "Location of ifile")
 		 (const :tag "ifile is not installed"))
   :group 'spam-ifile)
 
-(make-obsolete-variable 'spam-ifile-database-path 'spam-ifile-database)
-;; "22.1" ;; Gnus 5.10.9
+(make-obsolete-variable 'spam-ifile-database-path 'spam-ifile-database
+                        "Gnus 5.10.9 (Emacs 22.1)")
 (defcustom spam-ifile-database nil
   "File name of the ifile database."
   :type '(choice (file :tag "Location of the ifile database")
@@ -452,8 +453,8 @@
   "Spam bogofilter configuration."
   :group 'spam)
 
-(make-obsolete-variable 'spam-bogofilter-path 'spam-bogofilter-program)
-;; "22.1" ;; Gnus 5.10.9
+(make-obsolete-variable 'spam-bogofilter-path 'spam-bogofilter-program
+                        "Gnus 5.10.9 (Emacs 22.1)")
 (defcustom spam-bogofilter-program (executable-find "bogofilter")
   "Name of the Bogofilter program."
   :type '(choice (file :tag "Location of bogofilter")
@@ -504,8 +505,8 @@
   "Spam bsfilter configuration."
   :group 'spam)
 
-(make-obsolete-variable 'spam-bsfilter-path 'spam-bsfilter-program)
-;; "22.1" ;; Gnus 5.10.9
+(make-obsolete-variable 'spam-bsfilter-path 'spam-bsfilter-program
+                        "Gnus 5.10.9 (Emacs 22.1)")
 (defcustom spam-bsfilter-program (executable-find "bsfilter")
   "Name of the Bsfilter program."
   :type '(choice (file :tag "Location of bsfilter")
@@ -571,7 +572,7 @@
   :group 'spam)
 
 (make-obsolete-variable 'spam-spamassassin-path
-  'spam-spamassassin-program) ;; "22.1" ;; Gnus 5.10.9
+  'spam-spamassassin-program "Gnus 5.10.9 (Emacs 22.1)")
 (defcustom spam-assassin-program (executable-find "spamassassin")
   "Name of the spamassassin program.
 Hint: set this to \"spamc\" if you have spamd running.  See the spamc and
@@ -602,8 +603,8 @@
   :type 'string
   :group 'spam-spamassassin)
 
-(make-obsolete-variable 'spam-sa-learn-path 'spam-sa-learn-program)
-;; "22.1" ;; Gnus 5.10.9
+(make-obsolete-variable 'spam-sa-learn-path 'spam-sa-learn-program
+                        "Gnus 5.10.9 (Emacs 22.1)")
 (defcustom spam-sa-learn-program (executable-find "sa-learn")
   "Name of the sa-learn program."
   :type '(choice (file :tag "Location of spamassassin")
Index: time-date.el
diff -u gnus/lisp/time-date.el:7.17 gnus/lisp/time-date.el:7.18
--- time-date.el:7.17	Mon Jan  5 21:50:39 2009
+++ time-date.el	Wed Sep  9 11:31:35 2009
@@ -111,14 +111,30 @@
 	      (timezone-make-date-arpa-standard date)))
     (error (error "Invalid date: %s" date))))
 
-;;;###autoload
-(defun time-to-seconds (time)
-  "Convert time value TIME to a floating point number.
-You can use `float-time' instead."
-  (with-decoded-time-value ((high low micro time))
-    (+ (* 1.0 high 65536)
-       low
-       (/ micro 1000000.0))))
+;; Bit of a mess.  Emacs has float-time since at least 21.1.
+;; This file is synced to Gnus, and XEmacs packages may have been written
+;; using time-to-seconds from the Gnus library.
+;;;###autoload(if (and (fboundp 'float-time)
+;;;###autoload         (subrp (symbol-function 'float-time)))
+;;;###autoload    (progn
+;;;###autoload      (defalias 'time-to-seconds 'float-time)
+;;;###autoload      (make-obsolete 'time-to-seconds 'float-time "21.1"))
+;;;###autoload  (autoload 'time-to-seconds "time-date"))
+
+(eval-and-compile
+  (unless (and (fboundp 'float-time)
+	       (subrp (symbol-function 'float-time)))
+    (defun time-to-seconds (time)
+      "Convert time value TIME to a floating point number."
+      (with-decoded-time-value ((high low micro time))
+	(+ (* 1.0 high 65536)
+	   low
+	   (/ micro 1000000.0))))))
+
+(eval-when-compile
+  (unless (fboundp 'with-no-warnings)
+    (defmacro with-no-warnings (&rest body)
+      `(progn ,@body))))
 
 ;;;###autoload
 (defun seconds-to-time (seconds)
@@ -242,10 +258,17 @@
        (- (/ (1- year) 100))		;	- century years
        (/ (1- year) 400))))		;	+ Gregorian leap years
 
-(defun time-to-number-of-days (time)
-  "Return the number of days represented by TIME.
+(eval-and-compile
+  (if (and (fboundp 'float-time)
+	   (subrp (symbol-function 'float-time)))
+      (defun time-to-number-of-days (time)
+	"Return the number of days represented by TIME.
+The number of days will be returned as a floating point number."
+	(/ (float-time time) (* 60 60 24)))
+    (defun time-to-number-of-days (time)
+      "Return the number of days represented by TIME.
 The number of days will be returned as a floating point number."
-  (/ (time-to-seconds time) (* 60 60 24)))
+      (/ (with-no-warnings (time-to-seconds time)) (* 60 60 24)))))
 
 ;;;###autoload
 (defun safe-date-to-time (date)
Index: utf7.el
diff -u gnus/lisp/utf7.el:7.15 gnus/lisp/utf7.el:7.16
--- utf7.el:7.15	Thu Jan 22 08:02:16 2009
+++ utf7.el	Wed Sep  9 11:31:35 2009
@@ -1,7 +1,7 @@
 ;;; utf7.el --- UTF-7 encoding/decoding for Emacs   -*-coding: iso-8859-1;-*-
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+;;   2008, 2009  Free Software Foundation, Inc.
 
 ;; Author: Jon K Hellan <[email protected]>
 ;; Maintainer: [email protected]
@@ -210,23 +210,21 @@
   (if (and (coding-system-p 'utf-7) (coding-system-p 'utf-7-imap))
       ;; Emacs 23 with proper support for IMAP
       (encode-coding-string string (if for-imap 'utf-7-imap 'utf-7))
-    (let ((default-enable-multibyte-characters t))
-      (with-temp-buffer
-	(insert string)
-	(utf7-encode-internal for-imap)
-	(buffer-string)))))
+    (mm-with-multibyte-buffer
+     (insert string)
+     (utf7-encode-internal for-imap)
+     (buffer-string))))
 
 (defun utf7-decode (string &optional for-imap)
   "Decode UTF-7 STRING.  Use IMAP modification if FOR-IMAP is non-nil."
   (if (and (coding-system-p 'utf-7) (coding-system-p 'utf-7-imap))
       ;; Emacs 23 with proper support for IMAP
       (decode-coding-string string (if for-imap 'utf-7-imap 'utf-7))
-    (let ((default-enable-multibyte-characters nil))
-      (with-temp-buffer
-	(insert string)
-	(utf7-decode-internal for-imap)
-	(mm-enable-multibyte)
-	(buffer-string)))))
+    (mm-with-unibyte-buffer
+     (insert string)
+     (utf7-decode-internal for-imap)
+     (mm-enable-multibyte)
+     (buffer-string))))
 
 (provide 'utf7)
 
Index: yenc.el
diff -u gnus/lisp/yenc.el:7.12 gnus/lisp/yenc.el:7.13
--- yenc.el:7.12	Thu Jan 22 08:02:16 2009
+++ yenc.el	Wed Sep  9 11:31:35 2009
@@ -89,8 +89,8 @@
 	      (when (re-search-forward "^=yend.*$" end t)
 		(setq last (match-beginning 0))
 		(setq footer-alist (yenc-parse-line (match-string 0)))
-		(let (default-enable-multibyte-characters)
-		  (setq work-buffer (generate-new-buffer " *yenc-work*")))
+		(letf (((default-value 'enable-multibyte-characters) nil))
+		      (setq work-buffer (generate-new-buffer " *yenc-work*")))
 		(while (< first last)
 		  (setq char (char-after first))
 		  (cond ((or (eq char ?\r)