From: Miles Bader Date: Sun, 24 Feb 2008 15:39:37 +0000 (+0000) Subject: Merge from emacs--devo--0 X-Git-Url: http://cgit.sxemacs.org/?p=gnus;a=commitdiff_plain;h=74b1068d524ae91c4acc8e43372386789a694ebd Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 1056, 1060, 1062, 1073-1074, 1076) - Remove incorrect entries from lisp/gnus/ChangeLog - Update from CVS - Merge from gnus--devo--0 - Merge from emacs--rel--22 - Revert removal of `mm-hack-charsets' in Gnus * emacs--rel--22 (patch 217, 222, 232) - Update from CVS - Merge from gnus--rel--5.10 2008-02-14 Glenn Morris * lisp/calendar/time-date.el (format-seconds): New function. 2008-02-10 Reiner Steib * lisp/mm-util.el (mm-codepage-setup): If cp-supported-codepages isn't fbound (Emacs 23 unicode), signal an error. 2008-02-08 Glenn Morris * lisp/gnus-art.el (pgg-display-output-buffer): Declare as function. Revision: emacs@sv.gnu.org/gnus--devo--0--patch-460 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6ac290179..980c6e62b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -10,6 +10,10 @@ * gnus-util.el (gnus-y-or-n-p, gnus-y-or-n-p): Update comments. +2008-02-14 Glenn Morris + + * calendar/time-date.el (format-seconds): New function. + 2008-02-14 Reiner Steib * nnmail.el (nnmail-message-id-cache-file): Derive from @@ -40,6 +44,15 @@ (EMACS_COMP, install-el, install-elc, install-el-elc): Quote directory name that might contain whitespace. +2008-02-10 Reiner Steib + + * mm-util.el (mm-codepage-setup): If cp-supported-codepages isn't + fbound (Emacs 23 unicode), signal an error. + +2008-02-08 Glenn Morris + + * gnus-art.el (pgg-display-output-buffer): Declare as function. + 2008-02-07 Tassilo Horn * nnimap.el (nnimap-open-connection): Add "143" and "993" as default diff --git a/lisp/deuglify.el b/lisp/deuglify.el index 03c2bcf1f..85f508cbc 100644 --- a/lisp/deuglify.el +++ b/lisp/deuglify.el @@ -68,7 +68,7 @@ ;; > verb. This sentence no verb. This sentence no verb. This ;; > sentence no verb. ;; -;; Unwrapping "You forgot in all your sentences." would be illegal as +;; Unwrapping "You forgot in all your sentences." would be invalid as ;; this part wasn't intended to be cited text. ;; `gnus-article-outlook-unwrap-lines' will only unwrap lines if the resulting ;; citation line will be of a certain maximum length. You can control diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 9efb9a307..a967c88a5 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -7895,6 +7895,9 @@ url is put as the `gnus-button-url' overlay property on the button." (Info-directory) (Info-menu url)) +;; Called after pgg-snarf-keys-region, which autoloads pgg.el. +(declare-function pgg-display-output-buffer "pgg" (start end status)) + (defun gnus-button-openpgp (url) "Retrieve and add an OpenPGP key given URL from an OpenPGP header." (with-temp-buffer diff --git a/lisp/mm-util.el b/lisp/mm-util.el index 1a60539ca..8e625c936 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -219,7 +219,10 @@ non-nil, an alias is created and added to the alias. Else windows-NUMBER is used." (interactive (let ((completion-ignore-case t) - (candidates (cp-supported-codepages))) + (candidates (if (fboundp 'cp-supported-codepages) + (cp-supported-codepages) + ;; Removed in Emacs 23 (unicode), sosignal an error: + (error "`codepage-setup' is obsolete in this Emacs version.")))) (list (completing-read "Setup DOS Codepage: (default 437) " candidates nil t nil nil "437")))) (when alias diff --git a/lisp/time-date.el b/lisp/time-date.el index d41145b94..829bff877 100644 --- a/lisp/time-date.el +++ b/lisp/time-date.el @@ -1,7 +1,7 @@ ;;; time-date.el --- Date and time handling functions -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -;; Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +;; 2007, 2008 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Masanobu Umeda @@ -253,6 +253,85 @@ If DATE is malformed, return a time value of zeros." (date-to-time date) (error '(0 0)))) + +;;;###autoload +(defun format-seconds (string seconds) + "Use format control STRING to format the number SECONDS. +The valid format specifiers are: +%y is the number of (365-day) years. +%d is the number of days. +%h is the number of hours. +%m is the number of minutes. +%s is the number of seconds. +%z is a non-printing control flag (see below). +%% is a literal \"%\". + +Upper-case specifiers are followed by the unit-name (e.g. \"years\"). +Lower-case specifiers return only the unit. + +\"%\" may be followed by a number specifying a width, with an +optional leading \".\" for zero-padding. For example, \"%.3Y\" will +return something of the form \"001 year\". + +The \"%z\" specifier does not print anything. When it is used, specifiers +must be given in order of decreasing size. To the left of \"%z\", nothing +is output until the first non-zero unit is encountered. + +This function does not work for SECONDS greater than `most-positive-fixnum'." + (let ((start 0) + (units '(("y" "year" 31536000) + ("d" "day" 86400) + ("h" "hour" 3600) + ("m" "minute" 60) + ("s" "second" 1) + ("z"))) + (case-fold-search t) + spec match usedunits zeroflag larger prev name unit num zeropos) + (while (string-match "%\\.?[0-9]*\\(.\\)" string start) + (setq start (match-end 0) + spec (match-string 1 string)) + (unless (string-equal spec "%") + (or (setq match (assoc-string spec units t)) + (error "Bad format specifier: `%s'" spec)) + (if (assoc-string spec usedunits t) + (error "Multiple instances of specifier: `%s'" spec)) + (if (string-equal (car match) "z") + (setq zeroflag t) + (unless larger + (setq unit (nth 2 match) + larger (and prev (> unit prev)) + prev unit))) + (push match usedunits))) + (and zeroflag larger + (error "Units are not in decreasing order of size")) + (dolist (u units) + (setq spec (car u) + name (cadr u) + unit (nth 2 u)) + (when (string-match (format "%%\\(\\.?[0-9]+\\)?\\(%s\\)" spec) string) + (if (string-equal spec "z") ; must be last in units + (setq string + (replace-regexp-in-string + "%z" "" + (substring string (min (or zeropos (match-end 0)) + (match-beginning 0))))) + ;; Cf article-make-date-line in gnus-art. + (setq num (floor seconds unit) + seconds (- seconds (* num unit))) + ;; Start position of the first non-zero unit. + (or zeropos + (setq zeropos (unless (zerop num) (match-beginning 0)))) + (setq string + (replace-match + (format (concat "%" (match-string 1 string) "d%s") num + (if (string-equal (match-string 2 string) spec) + "" ; lower-case, no unit-name + (format " %s%s" name + (if (= num 1) "" "s")))) + t t string)))))) + (replace-regexp-in-string "%%" "%" string)) + + (provide 'time-date) ;;; arch-tag: addcf07b-b20a-465b-af72-550b8ac5190f