From abb97fbbedcd84a13bae7b7b70251514bf97cdbb Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Tue, 1 Feb 2011 03:54:46 +0000 Subject: [PATCH] shr.el (shr-render-td): Only do colours at the final rendering. Should be slightly faster. (shr-insert-table): Fix up TD background colours when doing the vertical padding. gnus-art.el (article-update-date-lapsed): Don't use current-column to find the horizontal position. It's fragile in the presence of \003 characters. --- lisp/gnus/ChangeLog | 7 +++++++ lisp/gnus/gnus-art.el | 2 +- lisp/gnus/shr.el | 22 +++++++++++++--------- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 9c94a2ba2f..bade634abd 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,7 +1,14 @@ 2011-02-01 Lars Ingebrigtsen + * shr.el (shr-render-td): Only do colours at the final rendering. + Should be slightly faster. + (shr-insert-table): Fix up TD background colours when doing the + vertical padding. + * gnus-art.el (article-date-ut): Protect against articles with no Date header. + (article-update-date-lapsed): Don't use current-column to find the + horizontal position. It's fragile in the presence of \003 characters. * gnus-start.el (gnus-read-active-file-1): Remove dead parameter infos. diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 07eabd98a6..af47daf970 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -3645,7 +3645,7 @@ function and want to see what the date was before converting." (set-buffer (window-buffer w)) (when (eq major-mode 'gnus-article-mode) (let ((old-line (count-lines (point-min) (point))) - (old-column (current-column))) + (old-column (- (point) (line-beginning-position)))) (goto-char (point-min)) (while (re-search-forward "^Date:" nil t) (let ((type (get-text-property (match-beginning 0) 'gnus-date-type))) diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el index f3c75ccd6a..10e04a87d9 100644 --- a/lisp/gnus/shr.el +++ b/lisp/gnus/shr.el @@ -1055,8 +1055,11 @@ ones, in case fg and bg are nil." ;; possibly. (dotimes (i (- height (length lines))) (end-of-line) - (insert (make-string (string-width (car lines)) ? ) - shr-table-vertical-line) + (let ((start (point))) + (insert (make-string (string-width (car lines)) ? ) + shr-table-vertical-line) + (when (nth 4 column) + (shr-put-color start (1- (point)) :background (nth 4 column)))) (forward-line 1))))) (shr-insert-table-ruler widths))) @@ -1173,17 +1176,18 @@ ones, in case fg and bg are nil." (end-of-line) (when (> (- width (current-column)) 0) (insert (make-string (- width (current-column)) ? ))) - (forward-line 1)))) - (when style - (shr-colorize-region - (point-min) (point-max) - (cdr (assq 'color shr-stylesheet)) - (cdr (assq 'background-color shr-stylesheet)))) + (forward-line 1))) + (when style + (shr-colorize-region + (point-min) (point-max) + (cdr (assq 'color shr-stylesheet)) + (cdr (assq 'background-color shr-stylesheet))))) (if fill (list max (count-lines (point-min) (point-max)) (split-string (buffer-string) "\n") - (shr-collect-overlays)) + (shr-collect-overlays) + (cdr (assq 'background-color shr-stylesheet))) (list max (shr-natural-width))))))) -- 2.20.1