[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r102983: Merge changes made in Gnus t
From: |
Katsumi Yamaoka |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r102983: Merge changes made in Gnus trunk. |
Date: |
Thu, 27 Jan 2011 04:04:58 +0000 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 102983
author: Lars Ingebrigtsen <address@hidden>
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Thu 2011-01-27 04:04:58 +0000
message:
Merge changes made in Gnus trunk.
gnus-art.el (gnus-article-next-page): Change last-line-displayed behaviour.
(article-lapsed-string): Refactor out and allow specifying how many segments
you want.
(gnus-article-setup-buffer): Start updating the lapsed header directly.
(gnus-article-update-lapsed-header): New variable.
shr.el (shr-put-color): Don't do the box padding in tables, since they're
already padded.
gnus-util.el (float-time): If float-time is bound, always use it on all
Emacsen. It's unclear why the subrp check was there.
(time-date): Require to make some autoload issues on XEmacs go away.
gnus-draft.el (gnus-draft-clear-marks): New function to be run as an exit
hook to nix out all data on readedness on group exit.
gnus-sum.el (gnus-auto-select-subject): Doc typo.
modified:
lisp/gnus/ChangeLog
lisp/gnus/gnus-art.el
lisp/gnus/gnus-draft.el
lisp/gnus/gnus-sum.el
lisp/gnus/gnus-util.el
lisp/gnus/shr.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog 2011-01-26 10:25:18 +0000
+++ b/lisp/gnus/ChangeLog 2011-01-27 04:04:58 +0000
@@ -1,5 +1,25 @@
+2011-01-27 Lars Ingebrigtsen <address@hidden>
+
+ * gnus-draft.el (gnus-draft-clear-marks): New function to be run as an
+ exit hook to nix out all data on readedness on group exit.
+
+ * gnus-util.el (float-time): If float-time is bound, always use it on
+ all Emacsen. It's unclear why the subrp check was there.
+ (time-date): Require to make some autoload issues on XEmacs go away.
+
+ * shr.el (shr-put-color): Don't do the box padding in tables, since
+ they're already padded.
+
2011-01-26 Lars Ingebrigtsen <address@hidden>
+ * gnus-art.el (gnus-article-next-page): When the last line of the
+ article is displayed, scroll down once more instead of going to the
+ next article at once.
+ (article-lapsed-string): Refactor out and allow specifying how many
+ segments you want.
+ (gnus-article-setup-buffer): Start updating the lapsed header directly.
+ (gnus-article-update-lapsed-header): New variable.
+
* shr.el: Revert change that made headings use different-sized faces.
The Emacs display engine isn't advanced enough that, for instance,
tables can comfortably use differntly-sized faces.
=== modified file 'lisp/gnus/gnus-art.el'
--- a/lisp/gnus/gnus-art.el 2011-01-25 04:08:28 +0000
+++ b/lisp/gnus/gnus-art.el 2011-01-27 04:04:58 +0000
@@ -1023,6 +1023,15 @@
:group 'gnus-article-headers
:type 'boolean)
+(defcustom gnus-article-update-lapsed-header 1
+ "How often to update the lapsed date header.
+If nil, don't update it at all."
+ :version "24.1"
+ :group 'gnus-article-headers
+ :type '(choice
+ (item :tag "Don't update" :value nil)
+ integer))
+
(defcustom gnus-article-mime-match-handle-function 'undisplayed-alternative
"Function called with a MIME handle as the argument.
This is meant for people who want to view first matched part.
@@ -1290,6 +1299,14 @@
:link '(custom-manual "(gnus)Customizing Articles")
:type gnus-article-treat-head-custom)
+(defcustom gnus-treat-date-combined-lapsed 'head
+ "Display the Date header in a way that says how much time has elapsed.
+Valid values are nil, t, `head', `first', `last', an integer or a
+predicate. See Info node `(gnus)Customizing Articles'."
+ :group 'gnus-article-treat
+ :link '(custom-manual "(gnus)Customizing Articles")
+ :type gnus-article-treat-head-custom)
+
(defcustom gnus-treat-date-original nil
"Display the date in the original timezone.
Valid values are nil, t, `head', `first', `last', an integer or a
@@ -1680,6 +1697,7 @@
(gnus-treat-date-user-defined gnus-article-date-user)
(gnus-treat-date-iso8601 gnus-article-date-iso8601)
(gnus-treat-date-lapsed gnus-article-date-lapsed)
+ (gnus-treat-date-combined-lapsed gnus-article-date-combined-lapsed)
(gnus-treat-display-x-face gnus-article-display-x-face)
(gnus-treat-display-face gnus-article-display-face)
(gnus-treat-hide-headers gnus-article-maybe-hide-headers)
@@ -3500,7 +3518,8 @@
(defun article-make-date-line (date type)
"Return a DATE line of TYPE."
- (unless (memq type '(local ut original user iso8601 lapsed english))
+ (unless (memq type '(local ut original user iso8601 lapsed english
+ combined-lapsed))
(error "Unknown conversion type: %s" type))
(condition-case ()
(let ((time (date-to-time date)))
@@ -3548,47 +3567,11 @@
(/ (% (abs tz) 3600) 60)))))
;; Do an X-Sent lapsed format.
((eq type 'lapsed)
- ;; If the date is seriously mangled, the timezone functions are
- ;; liable to bug out, so we ignore all errors.
- (let* ((now (current-time))
- (real-time (subtract-time now time))
- (real-sec (and real-time
- (+ (* (float (car real-time)) 65536)
- (cadr real-time))))
- (sec (and real-time (abs real-sec)))
- num prev)
- (cond
- ((null real-time)
- "X-Sent: Unknown")
- ((zerop sec)
- "X-Sent: Now")
- (t
- (concat
- "X-Sent: "
- ;; This is a bit convoluted, but basically we go
- ;; through the time units for years, weeks, etc,
- ;; and divide things to see whether that results
- ;; in positive answers.
- (mapconcat
- (lambda (unit)
- (if (zerop (setq num (ffloor (/ sec (cdr unit)))))
- ;; The (remaining) seconds are too few to
- ;; be divided into this time unit.
- ""
- ;; It's big enough, so we output it.
- (setq sec (- sec (* num (cdr unit))))
- (prog1
- (concat (if prev ", " "") (int-to-string
- (floor num))
- " " (symbol-name (car unit))
- (if (> num 1) "s" ""))
- (setq prev t))))
- article-time-units "")
- ;; If dates are odd, then it might appear like the
- ;; article was sent in the future.
- (if (> real-sec 0)
- " ago"
- " in the future"))))))
+ (concat "X-Sent: " (article-lapsed-string time)))
+ ;; A combined date/lapsed format.
+ ((eq type 'combined-lapsed)
+ (concat (article-make-date-line date 'original)
+ " (" (article-lapsed-string time 3) ")"))
;; Display the date in proper English
((eq type 'english)
(let ((dtime (decode-time time)))
@@ -3610,9 +3593,56 @@
(format "%02d" (nth 2 dtime))
":"
(format "%02d" (nth 1 dtime)))))))
- (error
+ (foo
(format "Date: %s (from Gnus)" date))))
+(defun article-lapsed-string (time &optional max-segments)
+ ;; If the date is seriously mangled, the timezone functions are
+ ;; liable to bug out, so we ignore all errors.
+ (let* ((now (current-time))
+ (real-time (subtract-time now time))
+ (real-sec (and real-time
+ (+ (* (float (car real-time)) 65536)
+ (cadr real-time))))
+ (sec (and real-time (abs real-sec)))
+ (segments 0)
+ num prev)
+ (unless max-segments
+ (setq max-segments (length article-time-units)))
+ (cond
+ ((null real-time)
+ "Unknown")
+ ((zerop sec)
+ "Now")
+ (t
+ (concat
+ ;; This is a bit convoluted, but basically we go
+ ;; through the time units for years, weeks, etc,
+ ;; and divide things to see whether that results
+ ;; in positive answers.
+ (mapconcat
+ (lambda (unit)
+ (if (or (zerop (setq num (ffloor (/ sec (cdr unit)))))
+ (>= segments max-segments))
+ ;; The (remaining) seconds are too few to
+ ;; be divided into this time unit.
+ ""
+ ;; It's big enough, so we output it.
+ (setq sec (- sec (* num (cdr unit))))
+ (prog1
+ (concat (if prev ", " "") (int-to-string
+ (floor num))
+ " " (symbol-name (car unit))
+ (if (> num 1) "s" ""))
+ (setq prev t
+ segments (1+ segments)))))
+ article-time-units "")
+ ;; If dates are odd, then it might appear like the
+ ;; article was sent in the future.
+ (if (> real-sec 0)
+ " ago"
+ " in the future"))))))
+
(defun article-date-local (&optional highlight)
"Convert the current article date to the local timezone."
(interactive (list t))
@@ -3635,6 +3665,11 @@
(interactive (list t))
(article-date-ut 'lapsed highlight))
+(defun article-date-combined-lapsed (&optional highlight)
+ "Convert the current article date to time lapsed since it was sent."
+ (interactive (list t))
+ (article-date-ut 'combined-lapsed highlight))
+
(defun article-update-date-lapsed ()
"Function to be run from a timer to update the lapsed time line."
(save-match-data
@@ -3647,8 +3682,10 @@
(when (eq major-mode 'gnus-article-mode)
(let ((mark (point-marker)))
(goto-char (point-min))
- (when (re-search-forward "^X-Sent:" nil t)
- (article-date-lapsed t))
+ (when (re-search-forward "^X-Sent:\\|^Date:" nil t)
+ (if gnus-treat-date-combined-lapsed
+ (article-date-combined-lapsed t)
+ (article-date-lapsed t)))
(goto-char (marker-position mark))
(move-marker mark nil))))
nil 'visible))))))
@@ -4296,6 +4333,7 @@
article-decode-encoded-words
article-date-user
article-date-lapsed
+ article-date-combined-lapsed
article-emphasize
article-treat-dumbquotes
article-treat-non-ascii
@@ -4492,6 +4530,9 @@
(setq gnus-summary-buffer
(gnus-summary-buffer-name gnus-newsgroup-name))
(gnus-summary-set-local-parameters gnus-newsgroup-name)
+ (when (and gnus-article-update-lapsed-header
+ (not article-lapsed-timer))
+ (gnus-start-date-timer gnus-article-update-lapsed-header))
(current-buffer)))))
;; Set article window start at LINE, where LINE is the number of lines
@@ -6267,7 +6308,7 @@
(save-excursion
(end-of-line)
(and (pos-visible-in-window-p) ;Not continuation line.
- (>= (1+ (point)) (point-max))))) ;Allow for trailing newline.
+ (>= (point) (point-max)))))
;; Nothing in this page.
(if (or (not gnus-page-broken)
(save-excursion
=== modified file 'lisp/gnus/gnus-draft.el'
--- a/lisp/gnus/gnus-draft.el 2011-01-25 04:08:28 +0000
+++ b/lisp/gnus/gnus-draft.el 2011-01-27 04:04:58 +0000
@@ -68,7 +68,8 @@
(gnus-draft-mode
;; Set up the menu.
(when (gnus-visual-p 'draft-menu 'menu)
- (gnus-draft-make-menu-bar)))))
+ (gnus-draft-make-menu-bar))
+ (add-hook 'gnus-summary-prepare-exit-hook 'gnus-draft-clear-marks t t))))
;;; Commands
@@ -325,6 +326,12 @@
(pop-to-buffer buff t)))
(error "The draft %s is under edit" file)))))
+(defun gnus-draft-clear-marks ()
+ (setq gnus-newsgroup-reads nil
+ gnus-newsgroup-marked nil
+ gnus-newsgroup-unreads
+ (gnus-uncompress-range (gnus-active gnus-newsgroup-name))))
+
(provide 'gnus-draft)
;;; gnus-draft.el ends here
=== modified file 'lisp/gnus/gnus-sum.el'
--- a/lisp/gnus/gnus-sum.el 2011-01-25 04:08:28 +0000
+++ b/lisp/gnus/gnus-sum.el 2011-01-27 04:04:58 +0000
@@ -359,7 +359,7 @@
unread article), `best' (place point on the subject line of the
higest-scored article), `unseen' (place point on the subject line of
the first unseen article), `unseen-or-unread' (place point on the subject
-line of the first unseen article or, if all article have been seen, on the
+line of the first unseen article or, if all articles have been seen, on the
subject line of the first unread article), or a function to be called to
place point on some subject line."
:version "24.1"
=== modified file 'lisp/gnus/gnus-util.el'
--- a/lisp/gnus/gnus-util.el 2011-01-25 04:08:28 +0000
+++ b/lisp/gnus/gnus-util.el 2011-01-27 04:04:58 +0000
@@ -38,6 +38,8 @@
(eval-when-compile
(require 'cl))
+(require 'time-date)
+
(defcustom gnus-completing-read-function 'gnus-emacs-completing-read
"Function use to do completing read."
:version "24.1"
@@ -332,9 +334,7 @@
(> (nth 1 fdate) (nth 1 date))))))
(eval-and-compile
- (if (or (featurep 'emacs)
- (and (fboundp 'float-time)
- (subrp (symbol-function 'float-time))))
+ (if (fboundp 'float-time)
(defalias 'gnus-float-time 'float-time)
(defun gnus-float-time (&optional time)
"Convert time value TIME to a floating point number.
=== modified file 'lisp/gnus/shr.el'
--- a/lisp/gnus/shr.el 2011-01-26 10:25:18 +0000
+++ b/lisp/gnus/shr.el 2011-01-27 04:04:58 +0000
@@ -619,7 +619,8 @@
(if (< (line-end-position) end)
(forward-line 1)
(goto-char end)))
- (when (eq type :background)
+ (when (and (eq type :background)
+ (= shr-table-depth 0))
(shr-expand-newlines start end color))))
(defun shr-expand-newlines (start end color)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r102983: Merge changes made in Gnus trunk.,
Katsumi Yamaoka <=