emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] shr-fontified f149da7: shr indentation fixes


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] shr-fontified f149da7: shr indentation fixes
Date: Tue, 10 Feb 2015 04:33:16 +0000

branch: shr-fontified
commit f149da7e9517d2fc6825e6235b3bcbbc68122d2b
Author: Lars Magne Ingebrigtsen <address@hidden>
Commit: Lars Magne Ingebrigtsen <address@hidden>

    shr indentation fixes
    
    * gnus/mm-decode.el (mm-shr): Only pass the fill column when not using
    fonts, because limiting the width to what's appropriate for followups
    doesn't really help when not using proportional fonts.
    
    * net/shr.el (shr-fill-lines): Change name from "fold".
    (shr-indent): Use spaces for indentation when not using fonts,
    since `move-to-column' doesn't work with :width display specs.
---
 lisp/ChangeLog         |    6 ++++++
 lisp/gnus/ChangeLog    |    6 ++++++
 lisp/gnus/mm-decode.el |    6 +++++-
 lisp/net/shr.el        |   36 +++++++++++++++++++-----------------
 4 files changed, 36 insertions(+), 18 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e56741f..6e22679 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-10  Lars Ingebrigtsen  <address@hidden>
+
+       * net/shr.el (shr-fill-lines): Change name from "fold".
+       (shr-indent): Use spaces for indentation when not using fonts,
+       since `move-to-column' doesn't work with :width display specs.
+
 2015-02-09  Lars Ingebrigtsen  <address@hidden>
 
        * net/shr.el (shr-fold-line): Indent <li> properly.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 6b21888..396ad2f 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-10  Lars Ingebrigtsen  <address@hidden>
+
+       * mm-decode.el (mm-shr): Only pass the fill column when not using
+       fonts, because limiting the width to what's appropriate for followups
+       doesn't really help when not using proportional fonts.
+
 2015-02-09  Lars Ingebrigtsen  <address@hidden>
 
        * mm-decode.el (mm-convert-shr-links): Don't overwrite the faces from
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 463d125..5a8375c 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -1815,6 +1815,7 @@ If RECURSIVE, search recursively."
                  (start end &optional base-url))
 (declare-function shr-insert-document "shr" (dom))
 (defvar shr-blocked-images)
+(defvar shr-use-fonts)
 (defvar gnus-inhibit-images)
 (autoload 'gnus-blocked-images "gnus-art")
 
@@ -1822,7 +1823,10 @@ If RECURSIVE, search recursively."
   ;; Require since we bind its variables.
   (require 'shr)
   (let ((article-buffer (current-buffer))
-       (shr-width (if shr-use-fonts nil fill-column))
+       (shr-width (if (and (boundp 'shr-use-fonts)
+                           shr-use-fonts)
+                      nil
+                    fill-column))
        (shr-content-function (lambda (id)
                                (let ((handle (mm-get-content-id id)))
                                  (when handle
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 2f439be..e1d43e4 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -229,6 +229,7 @@ DOM should be a parse tree as generated by
                                  (- (window-pixel-width)
                                     (* (frame-fringe-width) 2))))))
     (shr-descend dom)
+    (shr-fill-lines start (point))
     (shr-remove-trailing-whitespace start (point))
     (setq adom dom)
     (when shr-warning
@@ -324,7 +325,7 @@ redirects somewhere else."
   (let ((text (get-text-property (point) 'shr-alt)))
     (if (not text)
        (message "No image under point")
-      (message "%s" (shr-fold-text text)))))
+      (message "%s" (shr-fill-text text)))))
 
 (defun shr-browse-image (&optional copy-url)
   "Browse the image under point.
@@ -435,7 +436,7 @@ size, and full-buffer size."
           (cdr (assq 'color shr-stylesheet))
           (cdr (assq 'background-color shr-stylesheet))))))))
 
-(defun shr-fold-text (text)
+(defun shr-fill-text (text)
   (if (zerop (length text))
       text
     (with-temp-buffer
@@ -524,18 +525,18 @@ size, and full-buffer size."
                                  (or shr-current-font 'variable-pitch)
                                  t)))))))
 
-(defun shr-fold-lines (start end)
+(defun shr-fill-lines (start end)
   (if (<= shr-internal-width 0)
       nil
     (save-restriction
       (narrow-to-region start end)
       (goto-char start)
       (when (get-text-property (point) 'shr-indentation)
-       (shr-fold-line))
+       (shr-fill-line))
       (while (setq start (next-single-property-change start 'shr-indentation))
        (goto-char start)
        (when (bolp)
-         (shr-fold-line)))
+         (shr-fill-line)))
       (goto-char (point-max)))))
 
 (defun shr-vertical-motion (column)
@@ -547,7 +548,7 @@ size, and full-buffer size."
     (unless (eolp)
       (forward-char 1))))
 
-(defun shr-fold-line ()
+(defun shr-fill-line ()
   (let ((shr-indentation (get-text-property (point) 'shr-indentation))
        (continuation (get-text-property
                       (point) 'shr-continuation-indentation))
@@ -733,11 +734,11 @@ size, and full-buffer size."
 (defun shr-indent ()
   (when (> shr-indentation 0)
     (insert
-     (propertize " "
-                'display
-                `(space :width (,(if (not shr-use-fonts)
-                                     (* shr-indentation (frame-char-width))
-                                   shr-indentation)))))))
+     (if (not shr-use-fonts)
+        (make-string shr-indentation ?\s)
+       (propertize " "
+                  'display
+                  `(space :width (,shr-indentation)))))))
 
 (defun shr-fontize-dom (dom &rest types)
   (let ((start (point)))
@@ -1080,8 +1081,7 @@ ones, in case fg and bg are nil."
         (shr-stylesheet (list (cons 'color fgcolor)
                               (cons 'background-color bgcolor))))
     (shr-generic dom)
-    (shr-colorize-region start (point) fgcolor bgcolor)
-    (shr-fold-lines start (point))))
+    (shr-colorize-region start (point) fgcolor bgcolor)))
 
 (defun shr-tag-style (_dom)
   )
@@ -1372,7 +1372,7 @@ The preference is a float determined from 
`shr-prefer-media-type'."
          (put-text-property start (point) 'image-displayer
                             (shr-image-displayer shr-content-function))
          (put-text-property start (point) 'help-echo
-                            (shr-fold-text
+                            (shr-fill-text
                              (or (dom-attr dom 'title) alt))))))))
 
 (defun shr-tag-pre (dom)
@@ -1437,8 +1437,10 @@ The preference is a float determined from 
`shr-prefer-media-type'."
        (shr-generic dom)))))
 
 (defun shr-mark-fill (start)
-  (put-text-property start (1+ start)
-                    'shr-indentation shr-indentation))
+  ;; We may not have inserted any text to fill.
+  (unless (= start (point))
+    (put-text-property start (1+ start)
+                      'shr-indentation shr-indentation)))
 
 (defun shr-tag-br (dom)
   (when (and (not (bobp))
@@ -1929,7 +1931,7 @@ The preference is a float determined from 
`shr-prefer-media-type'."
                 (<= natural-width width))
            (setq max-width natural-width)
          (let ((shr-internal-width width))
-           (shr-fold-lines (point-min) (point-max))
+           (shr-fill-lines (point-min) (point-max))
            (setq max-width (shr-pixel-buffer-width)))))
       (goto-char (point-max))
       ;; Delete padding at the bottom of the TDs.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]