Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
This commit is contained in:
commit
a45d4b8464
3 changed files with 70 additions and 41 deletions
|
@ -1,3 +1,11 @@
|
|||
2014-12-28 Ivan Shmakov <ivan@siamics.net>
|
||||
|
||||
* net/shr.el (shr-tag-table): Fix handling of tbody/header/footer
|
||||
elements in tables (bug#19444).
|
||||
|
||||
* net/eww.el (eww-handle-link): Fix typo in "up" rel handling
|
||||
(bug#19445).
|
||||
|
||||
2014-12-28 Juri Linkov <juri@linkov.net>
|
||||
|
||||
* vc/compare-w.el: Require diff-mode for diff faces.
|
||||
|
|
|
@ -445,7 +445,7 @@ See the `eww-search-prefix' variable for the search engine used."
|
|||
("start" . :start)
|
||||
("home" . :home)
|
||||
("contents" . :contents)
|
||||
("up" . up)))))
|
||||
("up" . :up)))))
|
||||
(and href
|
||||
where
|
||||
(plist-put eww-data (cdr where) href))))
|
||||
|
|
101
lisp/net/shr.el
101
lisp/net/shr.el
|
@ -1439,10 +1439,11 @@ The preference is a float determined from `shr-prefer-media-type'."
|
|||
|
||||
(defun shr-tag-table (dom)
|
||||
(shr-ensure-paragraph)
|
||||
(let* ((caption (dom-child-by-tag dom 'caption))
|
||||
(header (dom-child-by-tag dom 'thead))
|
||||
(body (or (dom-child-by-tag dom 'tbody) dom))
|
||||
(footer (dom-child-by-tag dom 'tfoot))
|
||||
(let* ((caption (dom-children (dom-child-by-tag dom 'caption)))
|
||||
(header (dom-non-text-children (dom-child-by-tag dom 'thead)))
|
||||
(body (dom-non-text-children (or (dom-child-by-tag dom 'tbody)
|
||||
dom)))
|
||||
(footer (dom-non-text-children (dom-child-by-tag dom 'tfoot)))
|
||||
(bgcolor (dom-attr dom 'bgcolor))
|
||||
(start (point))
|
||||
(shr-stylesheet (nconc (list (cons 'background-color bgcolor))
|
||||
|
@ -1461,42 +1462,62 @@ The preference is a float determined from `shr-prefer-media-type'."
|
|||
;; It's a real table, so render it.
|
||||
(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)))))
|
||||
(nconc `((tr (td (table (tbody ,@header ,@body)))))
|
||||
(if (= nfooter 1)
|
||||
footer
|
||||
`((tr (td (table (tbody ,@footer))))))))
|
||||
(nconc `((tr (td (table (tbody ,@header)))))
|
||||
(if (= nbody nfooter)
|
||||
`((tr (td (table (tbody ,@body ,@footer)))))
|
||||
(nconc `((tr (td (table (tbody ,@body)))))
|
||||
(if (= nfooter 1)
|
||||
footer
|
||||
`((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)))))
|
||||
(nconc `((tr (td (table (tbody ,@body)))))
|
||||
(if (= nfooter 1)
|
||||
footer
|
||||
`((tr (td (table (tbody ,@footer))))))))
|
||||
(if caption
|
||||
`((tr (td (table (tbody ,@body)))))
|
||||
body))))))
|
||||
(list 'table nil)
|
||||
(if caption `((tr nil (td nil ,@caption))))
|
||||
(cond (header
|
||||
(if footer
|
||||
;; header + body + footer
|
||||
(if (= nheader nbody)
|
||||
(if (= nbody nfooter)
|
||||
`((tr nil (td nil (table nil
|
||||
(tbody nil ,@header
|
||||
,@body ,@footer)))))
|
||||
(nconc `((tr nil (td nil (table nil
|
||||
(tbody nil ,@header
|
||||
,@body)))))
|
||||
(if (= nfooter 1)
|
||||
footer
|
||||
`((tr nil (td nil (table
|
||||
nil (tbody
|
||||
nil ,@footer))))))))
|
||||
(nconc `((tr nil (td nil (table nil (tbody
|
||||
nil ,@header)))))
|
||||
(if (= nbody nfooter)
|
||||
`((tr nil (td nil (table
|
||||
nil (tbody nil ,@body
|
||||
,@footer)))))
|
||||
(nconc `((tr nil (td nil (table
|
||||
nil (tbody nil
|
||||
,@body)))))
|
||||
(if (= nfooter 1)
|
||||
footer
|
||||
`((tr nil (td nil (table
|
||||
nil
|
||||
(tbody
|
||||
nil
|
||||
,@footer))))))))))
|
||||
;; header + body
|
||||
(if (= nheader nbody)
|
||||
`((tr nil (td nil (table nil (tbody nil ,@header
|
||||
,@body)))))
|
||||
(if (= nheader 1)
|
||||
`(,@header (tr nil (td nil (table
|
||||
nil (tbody nil ,@body)))))
|
||||
`((tr nil (td nil (table nil (tbody nil ,@header))))
|
||||
(tr nil (td nil (table nil (tbody nil ,@body)))))))))
|
||||
(footer
|
||||
;; body + footer
|
||||
(if (= nbody nfooter)
|
||||
`((tr nil (td nil (table
|
||||
nil (tbody nil ,@body ,@footer)))))
|
||||
(nconc `((tr nil (td nil (table nil (tbody nil ,@body)))))
|
||||
(if (= nfooter 1)
|
||||
footer
|
||||
`((tr nil (td nil (table
|
||||
nil (tbody nil ,@footer)))))))))
|
||||
(caption
|
||||
`((tr nil (td nil (table nil (tbody nil ,@body))))))
|
||||
(body)))))
|
||||
(when bgcolor
|
||||
(shr-colorize-region start (point) (cdr (assq 'color shr-stylesheet))
|
||||
bgcolor))
|
||||
|
|
Loading…
Add table
Reference in a new issue