From: Lars Ingebrigtsen Date: Tue, 7 Feb 2012 00:42:21 +0000 (+0000) Subject: Merge changes made in No Gnus X-Git-Tag: emacs-pretest-24.0.94~270 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9ed5a258e2893669791862f8ef4c3ca34d209e75;p=emacs.git Merge changes made in No Gnus shr-color.el (shr-color-set-minimum-interval): Renamed to add prefix (bug#10732). shr.el (shr-insert-document): Add doc string. (shr-visit-file): Ditto. (shr-remove-trailing-whitespace): New function. (shr-insert-document): Use it to clean up trailing whitespace as the final step (bug#10714). gnus-sum.el (gnus-summary-exit-no-update): Really deaden the summary buffer if `gnus-kill-summary-on-exit' is nil. --- diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index cb9888ac092..7c6388f6f25 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,19 @@ +2012-02-07 Lars Ingebrigtsen + + * shr-color.el (shr-color-set-minimum-interval): Renamed to add prefix + (bug#10732). + + * shr.el (shr-insert-document): Add doc string. + (shr-visit-file): Ditto. + (shr-remove-trailing-whitespace): New function. + (shr-insert-document): Use it to clean up trailing whitespace as the + final step (bug#10714). + +2012-02-06 Lars Ingebrigtsen + + * gnus-sum.el (gnus-summary-exit-no-update): Really deaden the summary + buffer if `gnus-kill-summary-on-exit' is nil. + 2012-02-06 Katsumi Yamaoka * gnus-sum.el (gnus-summary-show-thread): diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index c17f16ef212..c10dbe1ad8b 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -7328,9 +7328,11 @@ If FORCE (the prefix), also save the .newsrc file(s)." (gnus-kill-buffer gnus-original-article-buffer) (setq gnus-article-current nil)) ;; Return to the group buffer. - (gnus-configure-windows 'group 'force) (if (not gnus-kill-summary-on-exit) - (gnus-deaden-summary) + (progn + (gnus-deaden-summary) + (gnus-configure-windows 'group 'force)) + (gnus-configure-windows 'group 'force) (gnus-close-group group) (gnus-kill-buffer gnus-summary-buffer)) (unless gnus-single-article-buffer diff --git a/lisp/gnus/shr-color.el b/lisp/gnus/shr-color.el index e23ab57965e..7011034d242 100644 --- a/lisp/gnus/shr-color.el +++ b/lisp/gnus/shr-color.el @@ -267,7 +267,8 @@ Like rgb() or hsl()." (t nil)))) -(defun set-minimum-interval (val1 val2 min max interval &optional fixed) +(defun shr-color-set-minimum-interval (val1 val2 min max interval + &optional fixed) "Set minimum interval between VAL1 and VAL2 to INTERVAL. The values are bound by MIN and MAX. If FIXED is t, then VAL1 will not be touched." @@ -341,9 +342,9 @@ color will be adapted to be visible on BG." (>= luminance-distance shr-color-visible-luminance-min)) (list bg fg) ;; Not visible, try to change luminance to make them visible - (let ((Ls (set-minimum-interval (car bg-lab) (car fg-lab) 0 100 - shr-color-visible-luminance-min - fixed-background))) + (let ((Ls (shr-color-set-minimum-interval + (car bg-lab) (car fg-lab) 0 100 + shr-color-visible-luminance-min fixed-background))) (unless fixed-background (setcar bg-lab (car Ls))) (setcar fg-lab (cadr Ls)) diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el index acce7660263..deaef1d3f25 100644 --- a/lisp/gnus/shr.el +++ b/lisp/gnus/shr.el @@ -128,6 +128,7 @@ cid: URL as the argument.") ;; Public functions and commands. (defun shr-visit-file (file) + "Parse FILE as an HTML document, and render it in a new buffer." (interactive "fHTML file name: ") (pop-to-buffer "*html*") (erase-buffer) @@ -139,12 +140,29 @@ cid: URL as the argument.") ;;;###autoload (defun shr-insert-document (dom) + "Render the parsed document DOM into the current buffer. +DOM should be a parse tree as generated by +`libxml-parse-html-region' or similar." (setq shr-content-cache nil) - (let ((shr-state nil) + (let ((start (point)) + (shr-state nil) (shr-start nil) (shr-base nil) (shr-width (or shr-width (window-width)))) - (shr-descend (shr-transform-dom dom)))) + (shr-descend (shr-transform-dom dom)) + (shr-remove-trailing-whitespace start (point)))) + +(defun shr-remove-trailing-whitespace (start end) + (save-restriction + (narrow-to-region start end) + (delete-trailing-whitespace) + (goto-char start) + (while (not (eobp)) + (end-of-line) + (dolist (overlay (overlays-at (point))) + (when (overlay-get overlay 'before-string) + (overlay-put overlay 'before-string nil))) + (forward-line 1)))) (defun shr-copy-url () "Copy the URL under point to the kill ring.