Subject: bug#21895: [PATCH] shr: don't invoke unbound function (Bug#21895)

From: Eric Hanchrow <[email-masked]>
Date: Fri, 13 Nov 2015 01:29:33 +0000

* lisp/net/shr.el (fringes-p):
New function.
(shr-insert-document, shr-fill-text): Use it.
---
 lisp/net/shr.el | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 58deaea..853b2fd 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -203,6 +203,12 @@ cid: URL as the argument.")
       (goto-char begin)
       (shr-insert-document dom))))

+(defun fringes-p ()
+  "Return t if fringe-columns is bound, and either (fringe-columns 'left)
or (fringe-columns 'right) returns nonzero."
+  (and (fboundp 'fringe-columns)
+       (or (not (zerop (fringe-columns 'right)))
+           (not (zerop (fringe-columns 'left))))))
+
 ;;;###autoload
 (defun shr-insert-document (dom)
   "Render the parsed document DOM into the current buffer.
@@ -230,19 +236,13 @@ DOM should be a parse tree as generated by
  (if (not shr-use-fonts)
     (- (window-body-width) 1
                                        (if (and (null shr-width)
-                                                (or (zerop
-                                                     (fringe-columns
'right))
-                                                    (zerop
-                                                     (fringe-columns
'left))))
+                                                (not (fringes-p)))
                                            0
                                          1))
   (- (window-body-width nil t)
                                      (* 2 (frame-char-width))
                                      (if (and (null shr-width)
-                                              (or (zerop
-                                                   (fringe-columns 'right))
-                                                  (zerop
-                                                   (fringe-columns
'left))))
+                                              (not (fringes-p)))
                                          (* (frame-char-width) 2)
                                        0))))))
     (shr-descend dom)
@@ -466,8 +466,7 @@ size, and full-buffer size."
                                    ;; to usurp one column for the
                                    ;; continuation glyph.
                                    (if (and (null shr-width)
-                                            (or (zerop (fringe-columns
'right))
-                                                (zerop (fringe-columns
'left))))
+                                            (not (fringes-p)))
                                        (* (frame-char-width) 2)
                                      0))))
  (shr-insert text)
-- 
2.6.3

On Thu, Nov 12, 2015 at 4:17 PM Eric Hanchrow <[email-masked]>
wrote:

> twb points out that I can (require 'fringe) to make the problem go away.
>