* 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 <larsi@gnus.org>
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.