[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r102016: shr.el: (shr-tag-table): Sup
From: |
Katsumi Yamaoka |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r102016: shr.el: (shr-tag-table): Support caption, thead, and tfoot. |
Date: |
Wed, 20 Oct 2010 07:31:25 +0000 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 102016
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Wed 2010-10-20 07:31:25 +0000
message:
shr.el: (shr-tag-table): Support caption, thead, and tfoot.
modified:
lisp/gnus/ChangeLog
lisp/gnus/shr.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog 2010-10-20 00:44:28 +0000
+++ b/lisp/gnus/ChangeLog 2010-10-20 07:31:25 +0000
@@ -2,6 +2,8 @@
* shr.el (shr-find-fill-point): Shorten line if the preceding char is
kinsoku-eol regardless of shr-kinsoku-shorten.
+ (shr-tag-table-1): Rename from shr-tag-table; make it a subroutine.
+ (shr-tag-table): Support caption, thead, and tfoot.
2010-10-19 Lars Magne Ingebrigtsen <address@hidden>
=== modified file 'lisp/gnus/shr.el'
--- a/lisp/gnus/shr.el 2010-10-20 00:44:28 +0000
+++ b/lisp/gnus/shr.el 2010-10-20 07:31:25 +0000
@@ -593,8 +593,7 @@
;; main buffer). Now we know how much space each TD really takes, so
;; we then render everything again with the new widths, and finally
;; insert all these boxes into the main buffer.
-(defun shr-tag-table (cont)
- (shr-ensure-paragraph)
+(defun shr-tag-table-1 (cont)
(setq cont (or (cdr (assq 'tbody cont))
cont))
(let* ((shr-inhibit-images t)
@@ -622,6 +621,56 @@
(dolist (elem (shr-find-elements cont 'img))
(shr-tag-img (cdr elem))))
+(defun shr-tag-table (cont)
+ (shr-ensure-paragraph)
+ (let* ((caption (cdr (assq 'caption cont)))
+ (header (cdr (assq 'thead cont)))
+ (body (or (cdr (assq 'tbody cont)) cont))
+ (footer (cdr (assq 'tfoot cont)))
+ (nheader (if header (shr-max-columns header)))
+ (nbody (if body (shr-max-columns body)))
+ (nfooter (if footer (shr-max-columns footer))))
+ (shr-tag-table-1
+ (nconc
+ (if caption `((tr (td ,@caption))))
+ (if header
+ (if footer
+ ;; header + body + footer
+ (if (= nheader nbody)
+ (if (= nbody nfooter)
+ `((tr (td (table (tbody ,@header ,@body ,@footer)))))
+ (if (= nfooter 1)
+ `((tr (td (table (tbody ,@header ,@body))))
+ ,@footer)
+ `((tr (td (table (tbody ,@header ,@body))))
+ (tr (td (table (tbody ,@footer)))))))
+ (if (= nbody nfooter)
+ `((tr (td (table (tbody ,@header))))
+ (tr (td (table (tbody ,@body ,@footer)))))
+ (if (= nfooter 1)
+ `((tr (td (table (tbody ,@header))))
+ (tr (td (table (tbody ,@body))))
+ ,@footer)
+ `((tr (td (table (tbody ,@header))))
+ (tr (td (table (tbody ,@body))))
+ (tr (td (table (tbody ,@footer))))))))
+ ;; header + body
+ (if (= nheader nbody)
+ `((tr (td (table (tbody ,@header ,@body)))))
+ (if (= nheader 1)
+ `(,@header (tr (td (table (tbody ,@body)))))
+ `((tr (td (table (tbody ,@header))))
+ (tr (td (table (tbody ,@body))))))))
+ (if footer
+ ;; body + footer
+ (if (= nbody nfooter)
+ `((tr (td (table (tbody ,@body ,@footer)))))
+ (if (= nfooter 1)
+ `((tr (td (table (tbody ,@body)))) ,@footer)
+ `((tr (td (table (tbody ,@body))))
+ (tr (td (table (tbody ,@footer)))))))
+ body))))))
+
(defun shr-find-elements (cont type)
(let (result)
(dolist (elem cont)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r102016: shr.el: (shr-tag-table): Support caption, thead, and tfoot.,
Katsumi Yamaoka <=