branch: externals/greader
commit c938c694f049490129ad82821496f3d76a52d260
Author: Michelangelo Rodriguez <[email protected]>
Commit: Michelangelo Rodriguez <[email protected]>

    greader: set greader--current-buffer in keymap-switching functions
    
    greader-set-reading-keymap and greader-set-greader-keymap were using
    setq to toggle greader-reading-mode directly, bypassing the
    define-minor-mode body that sets greader--current-buffer.  As a
    result, greader--current-buffer was always nil during reading, making
    the cross-buffer dictionary corruption guard in greader-dict--update
    ineffective.
    
    * greader.el (greader--current-buffer): Add forward declaration so the
    byte-compiler does not warn about a free variable.
    (greader-set-reading-keymap): Set greader--current-buffer to
    current-buffer alongside greader-reading-mode.
    (greader-set-greader-keymap): Clear greader--current-buffer to nil
    alongside greader-reading-mode.
    
    Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
---
 greader.el | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/greader.el b/greader.el
index 7113a55f60..432897318c 100644
--- a/greader.el
+++ b/greader.el
@@ -248,16 +248,18 @@ if set to t, when you call function `greader-read', that 
function sets a
   :tag "use register")
 (defvar greader-reading-mode)
 (defvar greader-mode)
+(defvar greader--current-buffer)
 (defun greader-set-reading-keymap ()
   "Set greader's keymap when reading."
   (setq greader-mode nil)
-  (setq greader-reading-mode t))
+  (setq greader-reading-mode t)
+  (setq greader--current-buffer (current-buffer)))
 
 (defun greader-set-greader-keymap ()
   "Set greader's keymap when not reading."
-
   (setq greader-mode t)
-  (setq greader-reading-mode nil))
+  (setq greader-reading-mode nil)
+  (setq greader--current-buffer nil))
 
 (define-obsolete-variable-alias 'greader-map 'greader-mode-map "2022")
 

Reply via email to