bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#16415: 24.3.50; Handle contiguous links correctly in shr [PATCH]


From: Nathan Trapuzzano
Subject: bug#16415: 24.3.50; Handle contiguous links correctly in shr [PATCH]
Date: Fri, 10 Jan 2014 22:22:41 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

`shr-next-link' and `shr-previous-link' currently skip over links that
are contiguous with the current link.  The attached patch addressed this
problem.

When I say "contiguous", I'm talking in terms of Emacs "positions"--not
in terms of HTML.

P.S. I'm still waiting for my boss to return the copyright disclaimer
form to me.  Hopefully this change is minor enough...

# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: nbtrap@nbtrap.com-20140111031617-s3vx9z7lf9ah91gr
# target_branch: file:///home/nathan/opt/etc/bzr-repos/emacs/trunk/
# testament_sha1: 2b99f693499c398c7a9599c8d6b5eb6c7ccb7a47
# timestamp: 2014-01-10 22:16:56 -0500
# base_revision_id: rgm@gnu.org-20140110201931-3ybs57oe9egahtb4
# 
# Begin patch
=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog      2014-01-10 20:19:31 +0000
+++ lisp/ChangeLog      2014-01-11 03:16:17 +0000
@@ -1,3 +1,8 @@
+2014-01-11  Nathan Trapuzzano  <nbtrap@nbtrap.com>
+
+       * lisp/net/shr.el (shr-next-link, shr-previous-link): Don't skip
+       over contiguous links.
+
 2014-01-10  Glenn Morris  <rgm@gnu.org>
 
        * emacs-lisp/authors.el (authors-fixed-entries):

=== modified file 'lisp/net/shr.el'
--- lisp/net/shr.el     2014-01-05 10:23:35 +0000
+++ lisp/net/shr.el     2014-01-11 03:16:17 +0000
@@ -242,8 +242,10 @@
 (defun shr-next-link ()
   "Skip to the next link."
   (interactive)
-  (let ((skip (text-property-any (point) (point-max) 'help-echo nil)))
-    (if (not (setq skip (text-property-not-all skip (point-max)
+  (let ((skip (and (get-text-property (point) 'help-echo)
+                   (or (next-single-property-change (point) 'help-echo)
+                       (point-max)))))
+    (if (not (setq skip (text-property-not-all (or skip (point)) (point-max)
                                               'help-echo nil)))
        (message "No next link")
       (goto-char skip)
@@ -254,11 +256,17 @@
   (interactive)
   (let ((start (point))
        (found nil))
-    ;; Skip past the current link.
-    (while (and (not (bobp))
-               (get-text-property (point) 'help-echo))
+    ;; Skip past the current link.  When the current link extends past
+    ;; the end of the narrowed region and point is at (point-max),
+    ;; don't do anything, so that point will get moved to the
+    ;; beginning of this link.
+    (when (and (get-text-property (point) 'help-echo)
+               (not (and (eobp) (buffer-narrowed-p))))
+      (goto-char (or (previous-single-property-change
+                      (min (1+ (point)) (point-max)) 'help-echo)
+                     (point-min))))
+    (unless (bobp)
       (forward-char -1))
-    ;; Find the previous link.
     (while (and (not (bobp))
                (not (setq found (get-text-property (point) 'help-echo))))
       (forward-char -1))
@@ -267,10 +275,9 @@
          (message "No previous link")
          (goto-char start))
       ;; Put point at the start of the link.
-      (while (and (not (bobp))
-                 (get-text-property (point) 'help-echo))
-       (forward-char -1))
-      (forward-char 1)
+      (goto-char (or (previous-single-property-change
+                      (min (1+ (point)) (point-max)) 'help-echo)
+                     (point-min)))
       (message "%s" (get-text-property (point) 'help-echo)))))
 
 (defun shr-show-alt-text ()

# Begin bundle
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
cKEh67nwSg==

reply via email to

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