unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED)
@ 2015-03-20 10:38 Boruch Baum
  2015-03-20 14:31 ` Stefan Monnier
  0 siblings, 1 reply; 9+ messages in thread
From: Boruch Baum @ 2015-03-20 10:38 UTC (permalink / raw)
  To: 20152


[-- Attachment #1.1: Type: text/plain, Size: 7563 bytes --]

In the bookmark list buffer, after viewing an annotation for a
bookmark, navigating to another bookmark entry does not kill the
annotation buffer display, leading to confusion about which entry
the still-visible annotation refers.

The atttached bugfix kills the annotation buffer on navigation,
and remaps navigation keys accordingly.

The bugfix also introduces an option to automatically display
annotations as one navigates within the bookmark list buffer.

The bugfix also introduces an option to toggle auto-display of
annotations.

Note that the code has two sets of key-binding definitions: Only
the first, (defvar bookmark-bmenu-mode-map ..., is for the bugfix
to bookmark.el. The second, (eval-after-load "bookmark" ..., or
better, just (progn ..., is included for convenience / testing.



;-------------------------------------------------------------------
; bookmark-bmenu-next-line
; bookmark-bmenu-previous-line
; bookmark-bmenu-forward-char
; bookmark-bmenu-backward-char
;
; Functions to address bug in which the `*Bookmark Annotation*' buffer
; is not modified or updated when navigating through the
; bookmark-bmenu-list.
;
; Also provides option to auto-display annotations as one navigates
; the bmenu-list

(defvar bookmark-bmenu-auto-display-annotations nil
"Whether to automatically display a bookmark's annotation as one
navigates through the bookmark list. `t' for yes. Default is
`nil'.")

(defun bookmark-bmenu-next-line (&optional ARG TRY-VSCROLL)
"Move cursor vertically down ARG lines within the bookmark list.
Refer to function `next-line' for details."
  (interactive "^p\np")
  (let
    ((annotation-buffer
       (get-buffer "*Bookmark Annotation*")))
    (when annotation-buffer
      (kill-buffer annotation-buffer)))
  (next-line ARG TRY-VSCROLL)
  (when bookmark-bmenu-auto-display-annotations
     (bookmark-bmenu-show-annotation)))

(defun bookmark-bmenu-previous-line (&optional ARG TRY-VSCROLL)
"Move cursor vertically up ARG lines within the bookmark list.
Refer to function `previous-line' for details."
  (interactive "^p\np")
  (let
    ((annotation-buffer
       (get-buffer "*Bookmark Annotation*")))
    (when annotation-buffer
      (kill-buffer annotation-buffer)))
  (previous-line ARG TRY-VSCROLL)
  (when bookmark-bmenu-auto-display-annotations
     (bookmark-bmenu-show-annotation)))

(defun bookmark-bmenu-forward-char (&optional N)
  (interactive "p")
  (bookmark-bmenu-backward-forward-char 'forward-char N))

(defun bookmark-bmenu-backward-char (&optional N)
  (interactive "p")
  (bookmark-bmenu-backward-forward-char 'backward-char N))

(defun bookmark-bmenu-backward-forward-char (direction-function N)
  (let (annotation-buffer
        (initial-line (line-number-at-pos)))
    (funcall direction-function N)
    (when (/= initial-line (line-number-at-pos))
      (when (setq annotation-buffer (get-buffer "*Bookmark Annotation*"))
        (kill-buffer annotation-buffer))
      (when bookmark-bmenu-auto-display-annotations
        (bookmark-bmenu-show-annotation)))))

;-------------------------------------------------------------------
;
; ONLY ONE OF THE FOLLOWING TWO OPTIONS ARE NECESSARY !
;
; Either redine the mode map, or just the individual keys
;
;-------------------------------------------------------------------
(defvar bookmark-bmenu-mode-map
  (let ((map (make-keymap)))
    (set-keymap-parent map special-mode-map)
    (define-key map "v" 'bookmark-bmenu-select)
    (define-key map "w" 'bookmark-bmenu-locate)
    (define-key map "2" 'bookmark-bmenu-2-window)
    (define-key map "1" 'bookmark-bmenu-1-window)
    (define-key map "j" 'bookmark-bmenu-this-window)
    (define-key map "\C-c\C-c" 'bookmark-bmenu-this-window)
    (define-key map "f" 'bookmark-bmenu-this-window)
    (define-key map "\C-m" 'bookmark-bmenu-this-window)
    (define-key map "o" 'bookmark-bmenu-other-window)
    (define-key map "\C-o" 'bookmark-bmenu-switch-other-window)
    (define-key map "s" 'bookmark-bmenu-save)
    (define-key map "k" 'bookmark-bmenu-delete)
    (define-key map "\C-d" 'bookmark-bmenu-delete-backwards)
    (define-key map "x" 'bookmark-bmenu-execute-deletions)
    (define-key map "d" 'bookmark-bmenu-delete)
    (define-key map " " 'bookmark-bmenu-next-line)
    (define-key map "n" 'bookmark-bmenu-next-line)
    (define-key map [remap next-line] 'bookmark-bmenu-next-line)
    (define-key map "p" 'bookmark-bmenu-previous-line)
    (define-key map [remap previous-line] 'bookmark-bmenu-previous-line)
    (define-key map "\177" 'bookmark-bmenu-backup-unmark)
    (define-key map "u" 'bookmark-bmenu-unmark)
    (define-key map "m" 'bookmark-bmenu-mark)
    (define-key map "l" 'bookmark-bmenu-load)
    (define-key map "r" 'bookmark-bmenu-rename)
    (define-key map "R" 'bookmark-bmenu-relocate)
    (define-key map "t" 'bookmark-bmenu-toggle-filenames)
    (define-key map "a" 'bookmark-bmenu-show-annotation)
    (define-key map "A" 'bookmark-bmenu-show-all-annotations)
    (define-key map "e" 'bookmark-bmenu-edit-annotation)
    (define-key map "/" 'bookmark-bmenu-search)
    (define-key map [remap backward-char] 'bookmark-bmenu-backward-char)
    (define-key map [remap forward-char]  'bookmark-bmenu-forward-char)
    (define-key map [mouse-2] 'bookmark-bmenu-other-window-with-mouse)
    map))


(eval-after-load "bookmark"
  (progn
    (define-key bookmark-bmenu-mode-map
      [remap next-line] 'bookmark-bmenu-next-line)
    (define-key bookmark-bmenu-mode-map
      [remap previous-line] 'bookmark-bmenu-previous-line)
    (define-key bookmark-bmenu-mode-map
      (kbd "n")   'bookmark-bmenu-next-line)
    (define-key bookmark-bmenu-mode-map
      (kbd "SPC") 'bookmark-bmenu-next-line)
    (define-key bookmark-bmenu-mode-map
      (kbd "p")   'bookmark-bmenu-previous-line)
    (define-key bookmark-bmenu-mode-map
      [remap backward-char] 'bookmark-bmenu-backward-char)
    (define-key bookmark-bmenu-mode-map
      [remap forward-char]  'bookmark-bmenu-forward-char)
  ))
;-------------------------------------------------------------------


;-------------------------------------------------------------------
; Modification to function `bookmark-bmenu-show-annotation' to allow
; for toggling whether to autodisplay annotations as one navigates
; through the bookmark list.
;
; Do note that the documentation for function `called-interactively-p'
; discourages its use in favor of eg. '(not (or executing-kbd-macro
; noninteractive))'. See there for details.
;
(defvar bookmark-bmenu-toggle-auto-display-annotations nil
"When not `nil', function `bookmark-bmenu-show-annotation' (by
default, bound to `a`), toggles whether to automatically display
a bookmark's annotation as one navigates through the bookmark
list. Default is `nil'.")

(defun bookmark-bmenu-show-annotation ()
  "Show the annotation for the current bookmark in another window."
  (interactive)
  (when (and (called-interactively-p "any")
             bookmark-bmenu-toggle-auto-display-annotations)
    (if bookmark-bmenu-auto-display-annotations
      (setq bookmark-bmenu-auto-display-annotations nil)
     (setq bookmark-bmenu-auto-display-annotations t)))
  (let ((bookmark (bookmark-bmenu-bookmark)))
    (bookmark-show-annotation bookmark)))
;-------------------------------------------------------------------


-- 
hkp://keys.gnupg.net
CA45 09B5 5351 7C11 A9D1  7286 0036 9E45 1595 8BC0


[-- Attachment #1.2: attachment-1 --]
[-- Type: text/plain, Size: 6501 bytes --]

;-------------------------------------------------------------------
; bookmark-bmenu-next-line
; bookmark-bmenu-previous-line
; bookmark-bmenu-forward-char
; bookmark-bmenu-backward-char
;
; Functions to address bug in which the `*Bookmark Annotation*' buffer
; is not modified or updated when navigating through the
; bookmark-bmenu-list.
;
; Also provides option to auto-display annotations as one navigates
; the bmenu-list

(defvar bookmark-bmenu-auto-display-annotations nil
"Whether to automatically display a bookmark's annotation as one
navigates through the bookmark list. `t' for yes. Default is
`nil'.")

(defun bookmark-bmenu-next-line (&optional ARG TRY-VSCROLL)
"Move cursor vertically down ARG lines within the bookmark list.
Refer to function `next-line' for details."
  (interactive "^p\np")
  (let
    ((annotation-buffer
       (get-buffer "*Bookmark Annotation*")))
    (when annotation-buffer
      (kill-buffer annotation-buffer)))
  (next-line ARG TRY-VSCROLL)
  (when bookmark-bmenu-auto-display-annotations
     (bookmark-bmenu-show-annotation)))

(defun bookmark-bmenu-previous-line (&optional ARG TRY-VSCROLL)
"Move cursor vertically up ARG lines within the bookmark list.
Refer to function `previous-line' for details."
  (interactive "^p\np")
  (let
    ((annotation-buffer
       (get-buffer "*Bookmark Annotation*")))
    (when annotation-buffer
      (kill-buffer annotation-buffer)))
  (previous-line ARG TRY-VSCROLL)
  (when bookmark-bmenu-auto-display-annotations
     (bookmark-bmenu-show-annotation)))

(defun bookmark-bmenu-forward-char (&optional N)
  (interactive "p")
  (bookmark-bmenu-backward-forward-char 'forward-char N))

(defun bookmark-bmenu-backward-char (&optional N)
  (interactive "p")
  (bookmark-bmenu-backward-forward-char 'backward-char N))

(defun bookmark-bmenu-backward-forward-char (direction-function N)
  (let (annotation-buffer
        (initial-line (line-number-at-pos)))
    (funcall direction-function N)
    (when (/= initial-line (line-number-at-pos))
      (when (setq annotation-buffer (get-buffer "*Bookmark Annotation*"))
        (kill-buffer annotation-buffer))
      (when bookmark-bmenu-auto-display-annotations
        (bookmark-bmenu-show-annotation)))))

;-------------------------------------------------------------------
;
; ONLY ONE OF THE FOLLOWING TWO OPTIONS ARE NECESSARY !
;
; Either redine the mode map, or just the individual keys
;
;-------------------------------------------------------------------
(defvar bookmark-bmenu-mode-map
  (let ((map (make-keymap)))
    (set-keymap-parent map special-mode-map)
    (define-key map "v" 'bookmark-bmenu-select)
    (define-key map "w" 'bookmark-bmenu-locate)
    (define-key map "2" 'bookmark-bmenu-2-window)
    (define-key map "1" 'bookmark-bmenu-1-window)
    (define-key map "j" 'bookmark-bmenu-this-window)
    (define-key map "\C-c\C-c" 'bookmark-bmenu-this-window)
    (define-key map "f" 'bookmark-bmenu-this-window)
    (define-key map "\C-m" 'bookmark-bmenu-this-window)
    (define-key map "o" 'bookmark-bmenu-other-window)
    (define-key map "\C-o" 'bookmark-bmenu-switch-other-window)
    (define-key map "s" 'bookmark-bmenu-save)
    (define-key map "k" 'bookmark-bmenu-delete)
    (define-key map "\C-d" 'bookmark-bmenu-delete-backwards)
    (define-key map "x" 'bookmark-bmenu-execute-deletions)
    (define-key map "d" 'bookmark-bmenu-delete)
    (define-key map " " 'bookmark-bmenu-next-line)
    (define-key map "n" 'bookmark-bmenu-next-line)
    (define-key map [remap next-line] 'bookmark-bmenu-next-line)
    (define-key map "p" 'bookmark-bmenu-previous-line)
    (define-key map [remap previous-line] 'bookmark-bmenu-previous-line)
    (define-key map "\177" 'bookmark-bmenu-backup-unmark)
    (define-key map "u" 'bookmark-bmenu-unmark)
    (define-key map "m" 'bookmark-bmenu-mark)
    (define-key map "l" 'bookmark-bmenu-load)
    (define-key map "r" 'bookmark-bmenu-rename)
    (define-key map "R" 'bookmark-bmenu-relocate)
    (define-key map "t" 'bookmark-bmenu-toggle-filenames)
    (define-key map "a" 'bookmark-bmenu-show-annotation)
    (define-key map "A" 'bookmark-bmenu-show-all-annotations)
    (define-key map "e" 'bookmark-bmenu-edit-annotation)
    (define-key map "/" 'bookmark-bmenu-search)
    (define-key map [remap backward-char] 'bookmark-bmenu-backward-char)
    (define-key map [remap forward-char]  'bookmark-bmenu-forward-char)
    (define-key map [mouse-2] 'bookmark-bmenu-other-window-with-mouse)
    map))


(eval-after-load "bookmark"
  (progn
    (define-key bookmark-bmenu-mode-map
      [remap next-line] 'bookmark-bmenu-next-line)
    (define-key bookmark-bmenu-mode-map
      [remap previous-line] 'bookmark-bmenu-previous-line)
    (define-key bookmark-bmenu-mode-map
      (kbd "n")   'bookmark-bmenu-next-line)
    (define-key bookmark-bmenu-mode-map
      (kbd "SPC") 'bookmark-bmenu-next-line)
    (define-key bookmark-bmenu-mode-map
      (kbd "p")   'bookmark-bmenu-previous-line)
    (define-key bookmark-bmenu-mode-map
      [remap backward-char] 'bookmark-bmenu-backward-char)
    (define-key bookmark-bmenu-mode-map
      [remap forward-char]  'bookmark-bmenu-forward-char)
  ))
;-------------------------------------------------------------------


;-------------------------------------------------------------------
; Modification to function `bookmark-bmenu-show-annotation' to allow
; for toggling whether to autodisplay annotations as one navigates
; through the bookmark list.
;
; Do note that the documentation for function `called-interactively-p'
; discourages its use in favor of eg. '(not (or executing-kbd-macro
; noninteractive))'. See there for details.
;
(defvar bookmark-bmenu-toggle-auto-display-annotations nil
"When not `nil', function `bookmark-bmenu-show-annotation' (by
default, bound to `a`), toggles whether to automatically display
a bookmark's annotation as one navigates through the bookmark
list. Default is `nil'.")

(defun bookmark-bmenu-show-annotation ()
  "Show the annotation for the current bookmark in another window."
  (interactive)
  (when (and (called-interactively-p "any")
             bookmark-bmenu-toggle-auto-display-annotations)
    (if bookmark-bmenu-auto-display-annotations
      (setq bookmark-bmenu-auto-display-annotations nil)
     (setq bookmark-bmenu-auto-display-annotations t)))
  (let ((bookmark (bookmark-bmenu-bookmark)))
    (bookmark-show-annotation bookmark)))
;-------------------------------------------------------------------

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED)
  2015-03-20 10:38 bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED) Boruch Baum
@ 2015-03-20 14:31 ` Stefan Monnier
  2015-03-20 16:29   ` Boruch Baum
  2015-03-20 18:32   ` Boruch Baum
  0 siblings, 2 replies; 9+ messages in thread
From: Stefan Monnier @ 2015-03-20 14:31 UTC (permalink / raw)
  To: Boruch Baum; +Cc: 20152

Same here, please resend your fix as a patch ("diff -u" or "diff -c").


        Stefan


>>>>> "Boruch" == Boruch Baum <boruch_baum@gmx.com> writes:

> In the bookmark list buffer, after viewing an annotation for a
> bookmark, navigating to another bookmark entry does not kill the
> annotation buffer display, leading to confusion about which entry
> the still-visible annotation refers.

> The atttached bugfix kills the annotation buffer on navigation,
> and remaps navigation keys accordingly.

> The bugfix also introduces an option to automatically display
> annotations as one navigates within the bookmark list buffer.

> The bugfix also introduces an option to toggle auto-display of
> annotations.

> Note that the code has two sets of key-binding definitions: Only
> the first, (defvar bookmark-bmenu-mode-map ..., is for the bugfix
> to bookmark.el. The second, (eval-after-load "bookmark" ..., or
> better, just (progn ..., is included for convenience / testing.



> ;-------------------------------------------------------------------
> ; bookmark-bmenu-next-line
> ; bookmark-bmenu-previous-line
> ; bookmark-bmenu-forward-char
> ; bookmark-bmenu-backward-char
> ;
> ; Functions to address bug in which the `*Bookmark Annotation*' buffer
> ; is not modified or updated when navigating through the
> ; bookmark-bmenu-list.
> ;
> ; Also provides option to auto-display annotations as one navigates
> ; the bmenu-list

> (defvar bookmark-bmenu-auto-display-annotations nil
> "Whether to automatically display a bookmark's annotation as one
> navigates through the bookmark list. `t' for yes. Default is
> `nil'.")

> (defun bookmark-bmenu-next-line (&optional ARG TRY-VSCROLL)
> "Move cursor vertically down ARG lines within the bookmark list.
> Refer to function `next-line' for details."
>   (interactive "^p\np")
>   (let
>     ((annotation-buffer
>        (get-buffer "*Bookmark Annotation*")))
>     (when annotation-buffer
>       (kill-buffer annotation-buffer)))
>   (next-line ARG TRY-VSCROLL)
>   (when bookmark-bmenu-auto-display-annotations
>      (bookmark-bmenu-show-annotation)))

> (defun bookmark-bmenu-previous-line (&optional ARG TRY-VSCROLL)
> "Move cursor vertically up ARG lines within the bookmark list.
> Refer to function `previous-line' for details."
>   (interactive "^p\np")
>   (let
>     ((annotation-buffer
>        (get-buffer "*Bookmark Annotation*")))
>     (when annotation-buffer
>       (kill-buffer annotation-buffer)))
>   (previous-line ARG TRY-VSCROLL)
>   (when bookmark-bmenu-auto-display-annotations
>      (bookmark-bmenu-show-annotation)))

> (defun bookmark-bmenu-forward-char (&optional N)
>   (interactive "p")
>   (bookmark-bmenu-backward-forward-char 'forward-char N))

> (defun bookmark-bmenu-backward-char (&optional N)
>   (interactive "p")
>   (bookmark-bmenu-backward-forward-char 'backward-char N))

> (defun bookmark-bmenu-backward-forward-char (direction-function N)
>   (let (annotation-buffer
>         (initial-line (line-number-at-pos)))
>     (funcall direction-function N)
>     (when (/= initial-line (line-number-at-pos))
>       (when (setq annotation-buffer (get-buffer "*Bookmark Annotation*"))
>         (kill-buffer annotation-buffer))
>       (when bookmark-bmenu-auto-display-annotations
>         (bookmark-bmenu-show-annotation)))))

> ;-------------------------------------------------------------------
> ;
> ; ONLY ONE OF THE FOLLOWING TWO OPTIONS ARE NECESSARY !
> ;
> ; Either redine the mode map, or just the individual keys
> ;
> ;-------------------------------------------------------------------
> (defvar bookmark-bmenu-mode-map
>   (let ((map (make-keymap)))
>     (set-keymap-parent map special-mode-map)
>     (define-key map "v" 'bookmark-bmenu-select)
>     (define-key map "w" 'bookmark-bmenu-locate)
>     (define-key map "2" 'bookmark-bmenu-2-window)
>     (define-key map "1" 'bookmark-bmenu-1-window)
>     (define-key map "j" 'bookmark-bmenu-this-window)
>     (define-key map "\C-c\C-c" 'bookmark-bmenu-this-window)
>     (define-key map "f" 'bookmark-bmenu-this-window)
>     (define-key map "\C-m" 'bookmark-bmenu-this-window)
>     (define-key map "o" 'bookmark-bmenu-other-window)
>     (define-key map "\C-o" 'bookmark-bmenu-switch-other-window)
>     (define-key map "s" 'bookmark-bmenu-save)
>     (define-key map "k" 'bookmark-bmenu-delete)
>     (define-key map "\C-d" 'bookmark-bmenu-delete-backwards)
>     (define-key map "x" 'bookmark-bmenu-execute-deletions)
>     (define-key map "d" 'bookmark-bmenu-delete)
>     (define-key map " " 'bookmark-bmenu-next-line)
>     (define-key map "n" 'bookmark-bmenu-next-line)
>     (define-key map [remap next-line] 'bookmark-bmenu-next-line)
>     (define-key map "p" 'bookmark-bmenu-previous-line)
>     (define-key map [remap previous-line] 'bookmark-bmenu-previous-line)
>     (define-key map "\177" 'bookmark-bmenu-backup-unmark)
>     (define-key map "u" 'bookmark-bmenu-unmark)
>     (define-key map "m" 'bookmark-bmenu-mark)
>     (define-key map "l" 'bookmark-bmenu-load)
>     (define-key map "r" 'bookmark-bmenu-rename)
>     (define-key map "R" 'bookmark-bmenu-relocate)
>     (define-key map "t" 'bookmark-bmenu-toggle-filenames)
>     (define-key map "a" 'bookmark-bmenu-show-annotation)
>     (define-key map "A" 'bookmark-bmenu-show-all-annotations)
>     (define-key map "e" 'bookmark-bmenu-edit-annotation)
>     (define-key map "/" 'bookmark-bmenu-search)
>     (define-key map [remap backward-char] 'bookmark-bmenu-backward-char)
>     (define-key map [remap forward-char]  'bookmark-bmenu-forward-char)
>     (define-key map [mouse-2] 'bookmark-bmenu-other-window-with-mouse)
>     map))


> (eval-after-load "bookmark"
>   (progn
>     (define-key bookmark-bmenu-mode-map
>       [remap next-line] 'bookmark-bmenu-next-line)
>     (define-key bookmark-bmenu-mode-map
>       [remap previous-line] 'bookmark-bmenu-previous-line)
>     (define-key bookmark-bmenu-mode-map
>       (kbd "n")   'bookmark-bmenu-next-line)
>     (define-key bookmark-bmenu-mode-map
>       (kbd "SPC") 'bookmark-bmenu-next-line)
>     (define-key bookmark-bmenu-mode-map
>       (kbd "p")   'bookmark-bmenu-previous-line)
>     (define-key bookmark-bmenu-mode-map
>       [remap backward-char] 'bookmark-bmenu-backward-char)
>     (define-key bookmark-bmenu-mode-map
>       [remap forward-char]  'bookmark-bmenu-forward-char)
>   ))
> ;-------------------------------------------------------------------


> ;-------------------------------------------------------------------
> ; Modification to function `bookmark-bmenu-show-annotation' to allow
> ; for toggling whether to autodisplay annotations as one navigates
> ; through the bookmark list.
> ;
> ; Do note that the documentation for function `called-interactively-p'
> ; discourages its use in favor of eg. '(not (or executing-kbd-macro
> ; noninteractive))'. See there for details.
> ;
> (defvar bookmark-bmenu-toggle-auto-display-annotations nil
> "When not `nil', function `bookmark-bmenu-show-annotation' (by
> default, bound to `a`), toggles whether to automatically display
> a bookmark's annotation as one navigates through the bookmark
> list. Default is `nil'.")

> (defun bookmark-bmenu-show-annotation ()
>   "Show the annotation for the current bookmark in another window."
>   (interactive)
>   (when (and (called-interactively-p "any")
>              bookmark-bmenu-toggle-auto-display-annotations)
>     (if bookmark-bmenu-auto-display-annotations
>       (setq bookmark-bmenu-auto-display-annotations nil)
>      (setq bookmark-bmenu-auto-display-annotations t)))
>   (let ((bookmark (bookmark-bmenu-bookmark)))
>     (bookmark-show-annotation bookmark)))
> ;-------------------------------------------------------------------


> -- 
> hkp://keys.gnupg.net
> CA45 09B5 5351 7C11 A9D1  7286 0036 9E45 1595 8BC0







^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED)
  2015-03-20 14:31 ` Stefan Monnier
@ 2015-03-20 16:29   ` Boruch Baum
  2015-03-20 18:32   ` Boruch Baum
  1 sibling, 0 replies; 9+ messages in thread
From: Boruch Baum @ 2015-03-20 16:29 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 20152


[-- Attachment #1.1: Type: text/plain, Size: 1116 bytes --]

On 03/20/2015 10:31 AM, Stefan Monnier wrote:
> Same here, please resend your fix as a patch ("diff -u" or "diff -c").
I've attached TWO versions of the patch, in order to give you the option
to easily choose whether you want the second additional feature
mentioned below.

>> "Boruch" == Boruch Baum <boruch_baum@gmx.com> writes:
> 
>> In the bookmark list buffer, after viewing an annotation for a
>> bookmark, navigating to another bookmark entry does not kill the
>> annotation buffer display, leading to confusion about which entry
>> the still-visible annotation refers.
> 
>> The atttached bugfix kills the annotation buffer on navigation,
>> and remaps navigation keys accordingly.
> 
>> The bugfix also introduces an option to automatically display
>> annotations as one navigates within the bookmark list buffer.
This is reflected in file `emacs_bug_20152-a.patch'

>> The bugfix also introduces an option to toggle auto-display of
>> annotations.
This is reflected in file `emacs_bug_20152-b.patch'

-- 
hkp://keys.gnupg.net
CA45 09B5 5351 7C11 A9D1  7286 0036 9E45 1595 8BC0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: emacs_bug_20152-a.patch --]
[-- Type: text/x-patch; name="emacs_bug_20152-a.patch", Size: 3352 bytes --]

--- bookmark.el	2015-03-20 12:11:20.889491239 -0400
+++ bookmark-new.el	2015-03-20 12:14:45.825484595 -0400
@@ -1487,9 +1487,11 @@
     (define-key map "\C-d" 'bookmark-bmenu-delete-backwards)
     (define-key map "x" 'bookmark-bmenu-execute-deletions)
     (define-key map "d" 'bookmark-bmenu-delete)
-    (define-key map " " 'next-line)
-    (define-key map "n" 'next-line)
-    (define-key map "p" 'previous-line)
+    (define-key map " " 'bookmark-bmenu-next-line)
+    (define-key map "n" 'bookmark-bmenu-next-line)
+    (define-key map [remap next-line] 'bookmark-bmenu-next-line)
+    (define-key map "p" 'bookmark-bmenu-previous-line)
+    (define-key map [remap previous-line] 'bookmark-bmenu-previous-line)
     (define-key map "\177" 'bookmark-bmenu-backup-unmark)
     (define-key map "u" 'bookmark-bmenu-unmark)
     (define-key map "m" 'bookmark-bmenu-mark)
@@ -1501,6 +1503,8 @@
     (define-key map "A" 'bookmark-bmenu-show-all-annotations)
     (define-key map "e" 'bookmark-bmenu-edit-annotation)
     (define-key map "/" 'bookmark-bmenu-search)
+    (define-key map [remap backward-char] 'bookmark-bmenu-backward-char)
+    (define-key map [remap forward-char]  'bookmark-bmenu-forward-char)
     (define-key map [mouse-2] 'bookmark-bmenu-other-window-with-mouse)
     map))
 
@@ -2068,6 +2072,54 @@
     (forward-line 1))
   (forward-line 0))
 
+(defvar bookmark-bmenu-auto-display-annotations nil
+"Whether to automatically display a bookmark's annotation as one
+navigates through the bookmark list. `t' for yes. Default is
+`nil'.")
+
+(defun bookmark-bmenu-next-line (&optional ARG TRY-VSCROLL)
+"Move cursor vertically down ARG lines within the bookmark list.
+Refer to function `next-line' for details."
+  (interactive "^p\np")
+  (let
+    ((annotation-buffer
+       (get-buffer "*Bookmark Annotation*")))
+    (when annotation-buffer
+      (kill-buffer annotation-buffer)))
+  (next-line ARG TRY-VSCROLL)
+  (when bookmark-bmenu-auto-display-annotations
+     (bookmark-bmenu-show-annotation)))
+
+(defun bookmark-bmenu-previous-line (&optional ARG TRY-VSCROLL)
+"Move cursor vertically up ARG lines within the bookmark list.
+Refer to function `previous-line' for details."
+  (interactive "^p\np")
+  (let
+    ((annotation-buffer
+       (get-buffer "*Bookmark Annotation*")))
+    (when annotation-buffer
+      (kill-buffer annotation-buffer)))
+  (previous-line ARG TRY-VSCROLL)
+  (when bookmark-bmenu-auto-display-annotations
+     (bookmark-bmenu-show-annotation)))
+
+(defun bookmark-bmenu-forward-char (&optional N)
+  (interactive "p")
+  (bookmark-bmenu-backward-forward-char 'forward-char N))
+
+(defun bookmark-bmenu-backward-char (&optional N)
+  (interactive "p")
+  (bookmark-bmenu-backward-forward-char 'backward-char N))
+
+(defun bookmark-bmenu-backward-forward-char (direction-function N)
+  (let (annotation-buffer
+        (initial-line (line-number-at-pos)))
+    (funcall direction-function N)
+    (when (/= initial-line (line-number-at-pos))
+      (when (setq annotation-buffer (get-buffer "*Bookmark Annotation*"))
+        (kill-buffer annotation-buffer))
+      (when bookmark-bmenu-auto-display-annotations
+        (bookmark-bmenu-show-annotation)))))
 
 \f
 ;;; Menu bar stuff.  Prefix is "bookmark-menu".

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: emacs_bug_20152-b.patch --]
[-- Type: text/x-patch; name="emacs_bug_20152-b.patch", Size: 4213 bytes --]

--- bookmark.el	2015-03-20 12:16:19.485481558 -0400
+++ bookmark-new.el	2015-03-20 12:17:41.241478908 -0400
@@ -1487,9 +1487,11 @@
     (define-key map "\C-d" 'bookmark-bmenu-delete-backwards)
     (define-key map "x" 'bookmark-bmenu-execute-deletions)
     (define-key map "d" 'bookmark-bmenu-delete)
-    (define-key map " " 'next-line)
-    (define-key map "n" 'next-line)
-    (define-key map "p" 'previous-line)
+    (define-key map " " 'bookmark-bmenu-next-line)
+    (define-key map "n" 'bookmark-bmenu-next-line)
+    (define-key map [remap next-line] 'bookmark-bmenu-next-line)
+    (define-key map "p" 'bookmark-bmenu-previous-line)
+    (define-key map [remap previous-line] 'bookmark-bmenu-previous-line)
     (define-key map "\177" 'bookmark-bmenu-backup-unmark)
     (define-key map "u" 'bookmark-bmenu-unmark)
     (define-key map "m" 'bookmark-bmenu-mark)
@@ -1501,6 +1503,8 @@
     (define-key map "A" 'bookmark-bmenu-show-all-annotations)
     (define-key map "e" 'bookmark-bmenu-edit-annotation)
     (define-key map "/" 'bookmark-bmenu-search)
+    (define-key map [remap backward-char] 'bookmark-bmenu-backward-char)
+    (define-key map [remap forward-char]  'bookmark-bmenu-forward-char)
     (define-key map [mouse-2] 'bookmark-bmenu-other-window-with-mouse)
     map))
 
@@ -1901,9 +1905,20 @@
       (bookmark-bmenu-other-window))))
 
 
+(defvar bookmark-bmenu-toggle-auto-display-annotations nil
+"When not `nil', function `bookmark-bmenu-show-annotation' (by
+default, bound to `a`), toggles whether to automatically display
+a bookmark's annotation as one navigates through the bookmark
+list. Default is `nil'.")
+
 (defun bookmark-bmenu-show-annotation ()
   "Show the annotation for the current bookmark in another window."
   (interactive)
+  (when (and (called-interactively-p "any")
+             bookmark-bmenu-toggle-auto-display-annotations)
+    (if bookmark-bmenu-auto-display-annotations
+      (setq bookmark-bmenu-auto-display-annotations nil)
+     (setq bookmark-bmenu-auto-display-annotations t)))
   (let ((bookmark (bookmark-bmenu-bookmark)))
     (bookmark-show-annotation bookmark)))
 
@@ -2068,6 +2083,54 @@
     (forward-line 1))
   (forward-line 0))
 
+(defvar bookmark-bmenu-auto-display-annotations nil
+"Whether to automatically display a bookmark's annotation as one
+navigates through the bookmark list. `t' for yes. Default is
+`nil'.")
+
+(defun bookmark-bmenu-next-line (&optional ARG TRY-VSCROLL)
+"Move cursor vertically down ARG lines within the bookmark list.
+Refer to function `next-line' for details."
+  (interactive "^p\np")
+  (let
+    ((annotation-buffer
+       (get-buffer "*Bookmark Annotation*")))
+    (when annotation-buffer
+      (kill-buffer annotation-buffer)))
+  (next-line ARG TRY-VSCROLL)
+  (when bookmark-bmenu-auto-display-annotations
+     (bookmark-bmenu-show-annotation)))
+
+(defun bookmark-bmenu-previous-line (&optional ARG TRY-VSCROLL)
+"Move cursor vertically up ARG lines within the bookmark list.
+Refer to function `previous-line' for details."
+  (interactive "^p\np")
+  (let
+    ((annotation-buffer
+       (get-buffer "*Bookmark Annotation*")))
+    (when annotation-buffer
+      (kill-buffer annotation-buffer)))
+  (previous-line ARG TRY-VSCROLL)
+  (when bookmark-bmenu-auto-display-annotations
+     (bookmark-bmenu-show-annotation)))
+
+(defun bookmark-bmenu-forward-char (&optional N)
+  (interactive "p")
+  (bookmark-bmenu-backward-forward-char 'forward-char N))
+
+(defun bookmark-bmenu-backward-char (&optional N)
+  (interactive "p")
+  (bookmark-bmenu-backward-forward-char 'backward-char N))
+
+(defun bookmark-bmenu-backward-forward-char (direction-function N)
+  (let (annotation-buffer
+        (initial-line (line-number-at-pos)))
+    (funcall direction-function N)
+    (when (/= initial-line (line-number-at-pos))
+      (when (setq annotation-buffer (get-buffer "*Bookmark Annotation*"))
+        (kill-buffer annotation-buffer))
+      (when bookmark-bmenu-auto-display-annotations
+        (bookmark-bmenu-show-annotation)))))
 
 \f
 ;;; Menu bar stuff.  Prefix is "bookmark-menu".

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED)
  2015-03-20 14:31 ` Stefan Monnier
  2015-03-20 16:29   ` Boruch Baum
@ 2015-03-20 18:32   ` Boruch Baum
  2015-03-20 18:46     ` Boruch Baum
  1 sibling, 1 reply; 9+ messages in thread
From: Boruch Baum @ 2015-03-20 18:32 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 20152


[-- Attachment #1.1: Type: text/plain, Size: 623 bytes --]

Stefan,

I noticed that my solution, while good, was partial, in that it didn't
cover ALL the possible navigation commands.

Attached is a more elegant, smaller, and more thorough fix, especially
appropriate or a buffer such as bookmark-bmenu, as so many of the
keystrokes within the buffer will be navigation commands.

This patch replaces `emacs_bug_20152-a.patch'.

Signing off for Shabbat,

Boruch.

On 03/20/2015 10:31 AM, Stefan Monnier wrote:
> Same here, please resend your fix as a patch ("diff -u" or "diff -c").-- 


hkp://keys.gnupg.net
CA45 09B5 5351 7C11 A9D1  7286 0036 9E45 1595 8BC0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: emacs_bug_20152-a2.patch --]
[-- Type: text/x-patch; name="emacs_bug_20152-a2.patch", Size: 1377 bytes --]

--- bookmark.el	2015-03-20 14:25:37.325230039 -0400
+++ bookmark-new.el	2015-03-20 14:22:03.981236956 -0400
@@ -2068,6 +2068,31 @@
     (forward-line 1))
   (forward-line 0))
 
+(defvar bookmark-bmenu-auto-display-annotations nil
+"Whether to automatically display a bookmark's annotation as one
+navigates through the bookmark list. `t' for yes. Default is
+`nil'.")
+
+(defvar bookmark-bmenu-last-post-command-line 1
+"The line number at point, within the bookmark list buffer, after
+the last command had been run in that buffer.")
+
+(defun bookmark-bmenu-motion-hook-function ()
+"This function is added to the `post-command-hook' locally for
+bookmark list buffers, in order to update any visible annotations
+as one navigates within the buffer."
+  (let ((annotation-buffer))
+    (when (/= bookmark-bmenu-last-post-command-line (line-number-at-pos))
+      (when (setq annotation-buffer (get-buffer "*Bookmark Annotation*"))
+        (kill-buffer annotation-buffer))
+      (when bookmark-bmenu-auto-display-annotations
+        (bookmark-bmenu-show-annotation)))))
+
+(defun bookmark-bmenu-post-command-hook-function ()
+  (add-hook 'post-command-hook 'bookmark-bmenu-motion-hook-function t t))
+
+(add-hook 'bookmark-bmenu-mode-hook 'bookmark-bmenu-post-command-hook-function)
+
 
 \f
 ;;; Menu bar stuff.  Prefix is "bookmark-menu".

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED)
  2015-03-20 18:32   ` Boruch Baum
@ 2015-03-20 18:46     ` Boruch Baum
  2015-03-26  1:41       ` Stefan Monnier
  0 siblings, 1 reply; 9+ messages in thread
From: Boruch Baum @ 2015-03-20 18:46 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 20152


[-- Attachment #1.1: Type: text/plain, Size: 877 bytes --]

And this, replaces `emacs_bug_20152-b.patch'.

Now I'm really signing off.


On 03/20/2015 02:32 PM, Boruch Baum wrote:
> Stefan,
> 
> I noticed that my solution, while good, was partial, in that it didn't
> cover ALL the possible navigation commands.
> 
> Attached is a more elegant, smaller, and more thorough fix, especially
> appropriate or a buffer such as bookmark-bmenu, as so many of the
> keystrokes within the buffer will be navigation commands.
> 
> This patch replaces `emacs_bug_20152-a.patch'.
> 
> Signing off for Shabbat,
> 
> Boruch.
> 
> On 03/20/2015 10:31 AM, Stefan Monnier wrote:
>> Same here, please resend your fix as a patch ("diff -u" or "diff -c").-- 
> 
> 
> hkp://keys.gnupg.net
> CA45 09B5 5351 7C11 A9D1  7286 0036 9E45 1595 8BC0
> 


-- 
hkp://keys.gnupg.net
CA45 09B5 5351 7C11 A9D1  7286 0036 9E45 1595 8BC0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: emacs_bug_20152-b2.patch --]
[-- Type: text/x-patch; name="emacs_bug_20152-b2.patch", Size: 2238 bytes --]

--- bookmark.el	2015-03-20 14:25:37.325230039 -0400
+++ bookmark-new.el	2015-03-20 14:40:51.425200402 -0400
@@ -1901,9 +1901,20 @@
       (bookmark-bmenu-other-window))))
 
 
+(defvar bookmark-bmenu-toggle-auto-display-annotations nil
+"When not `nil', function `bookmark-bmenu-show-annotation' (by
+default, bound to `a`), toggles whether to automatically display
+a bookmark's annotation as one navigates through the bookmark
+list. Default is `nil'.")
+
 (defun bookmark-bmenu-show-annotation ()
   "Show the annotation for the current bookmark in another window."
   (interactive)
+  (when (and (called-interactively-p "any")
+             bookmark-bmenu-toggle-auto-display-annotations)
+    (if bookmark-bmenu-auto-display-annotations
+      (setq bookmark-bmenu-auto-display-annotations nil)
+     (setq bookmark-bmenu-auto-display-annotations t)))
   (let ((bookmark (bookmark-bmenu-bookmark)))
     (bookmark-show-annotation bookmark)))
 
@@ -2068,6 +2079,31 @@
     (forward-line 1))
   (forward-line 0))
 
+(defvar bookmark-bmenu-auto-display-annotations nil
+"Whether to automatically display a bookmark's annotation as one
+navigates through the bookmark list. `t' for yes. Default is
+`nil'.")
+
+(defvar bookmark-bmenu-last-post-command-line 1
+"The line number at point, within the bookmark list buffer, after
+the last command had been run in that buffer.")
+
+(defun bookmark-bmenu-motion-hook-function ()
+"This function is added to the `post-command-hook' locally for
+bookmark list buffers, in order to update any visible annotations
+as one navigates within the buffer."
+  (let ((annotation-buffer))
+    (when (/= bookmark-bmenu-last-post-command-line (line-number-at-pos))
+      (when (setq annotation-buffer (get-buffer "*Bookmark Annotation*"))
+        (kill-buffer annotation-buffer))
+      (when bookmark-bmenu-auto-display-annotations
+        (bookmark-bmenu-show-annotation)))))
+
+(defun bookmark-bmenu-post-command-hook-function ()
+  (add-hook 'post-command-hook 'bookmark-bmenu-motion-hook-function t t))
+
+(add-hook 'bookmark-bmenu-mode-hook 'bookmark-bmenu-post-command-hook-function)
+
 
 \f
 ;;; Menu bar stuff.  Prefix is "bookmark-menu".

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED)
  2015-03-20 18:46     ` Boruch Baum
@ 2015-03-26  1:41       ` Stefan Monnier
  2021-12-02 10:17         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 9+ messages in thread
From: Stefan Monnier @ 2015-03-26  1:41 UTC (permalink / raw)
  To: Boruch Baum; +Cc: 20152

> In the bookmark list buffer, after viewing an annotation for a
> bookmark, navigating to another bookmark entry does not kill the
> annotation buffer display, leading to confusion about which entry
> the still-visible annotation refers.

Indeed.  How 'bout we only fix this part, not by removing the window,
but by keeping it up-to-date as long as the annotations buffer
is displayed?
Can you provide a patch which does just that?

> +(defvar bookmark-bmenu-toggle-auto-display-annotations nil

I think this is not needed: if the user wants to see the annotations,
she can hit `a' after which they'll be auto-updated as she moves in
the list.  And if she doesn't want to see the annotations, she can hit
`q' in the annotations buffer (which should call quit-window).

> +"When not `nil', function `bookmark-bmenu-show-annotation' (by
> +default, bound to `a`), toggles whether to automatically display
> +a bookmark's annotation as one navigates through the bookmark
> +list. Default is `nil'.")

We typically use "non-nil" and "nil" rather than "not `nil'" and
"`nil'".  Same for t which we don't put in `...'.  All other symbols
indeed do get `...'.

> +    (if bookmark-bmenu-auto-display-annotations
> +      (setq bookmark-bmenu-auto-display-annotations nil)
> +     (setq bookmark-bmenu-auto-display-annotations t)))

Aka (setq bookmark-bmenu-auto-display-annotations
          (not bookmark-bmenu-auto-display-annotations))

> +(defvar bookmark-bmenu-auto-display-annotations nil

I don't think we need this either, just use
(get-buffer-window "*Bookmark Annotation*" t) instead.

> +(defun bookmark-bmenu-post-command-hook-function ()
> +  (add-hook 'post-command-hook 'bookmark-bmenu-motion-hook-function t t))
> +
> +(add-hook 'bookmark-bmenu-mode-hook 'bookmark-bmenu-post-command-hook-function)

Better keep bookmark-bmenu-mode-hook nil by default.  IOW, the code
should simply be added to bookmark-bmenu-mode instead.


        Stefan





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED)
  2015-03-26  1:41       ` Stefan Monnier
@ 2021-12-02 10:17         ` Lars Ingebrigtsen
  2021-12-03  6:31           ` Boruch Baum
  0 siblings, 1 reply; 9+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-02 10:17 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 20152, Boruch Baum

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> Indeed.  How 'bout we only fix this part, not by removing the window,
> but by keeping it up-to-date as long as the annotations buffer
> is displayed?
> Can you provide a patch which does just that?

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

Boruch, did you make any further progress here?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED)
  2021-12-02 10:17         ` Lars Ingebrigtsen
@ 2021-12-03  6:31           ` Boruch Baum
  2021-12-05  0:55             ` Lars Ingebrigtsen
  0 siblings, 1 reply; 9+ messages in thread
From: Boruch Baum @ 2021-12-03  6:31 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 20152, Stefan Monnier

On 2021-12-02 11:17, Lars Ingebrigtsen wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
> > Indeed.  How 'bout we only fix this part, not by removing the window,
> > but by keeping it up-to-date as long as the annotations buffer
> > is displayed?
> > Can you provide a patch which does just that?
>
> (I'm going through old bug reports that unfortunately weren't resolved
> at the time.)
>
> Boruch, did you make any further progress here?

What do you mean progress? I submitted a perfectly fine patch. Stefan
rejecting it doesn't impose any burden upon me.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED)
  2021-12-03  6:31           ` Boruch Baum
@ 2021-12-05  0:55             ` Lars Ingebrigtsen
  0 siblings, 0 replies; 9+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-05  0:55 UTC (permalink / raw)
  To: Boruch Baum; +Cc: 20152, Stefan Monnier

Boruch Baum <boruch_baum@gmx.com> writes:

> What do you mean progress? I submitted a perfectly fine patch. Stefan
> rejecting it doesn't impose any burden upon me.

Of course not.  But the feature didn't seem extremely compelling to me,
so if you're not working on it, I think it's unlikely that anybody else
will either, and I'm therefore closing this bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-12-05  0:55 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-20 10:38 bug#20152: 24.4: bookmarks display wrong annotation (FIX INCLUDED) Boruch Baum
2015-03-20 14:31 ` Stefan Monnier
2015-03-20 16:29   ` Boruch Baum
2015-03-20 18:32   ` Boruch Baum
2015-03-20 18:46     ` Boruch Baum
2015-03-26  1:41       ` Stefan Monnier
2021-12-02 10:17         ` Lars Ingebrigtsen
2021-12-03  6:31           ` Boruch Baum
2021-12-05  0:55             ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).