emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[nongnu] elpa/slime bd1ec52c61: Fix top-level defvar detection in slime-


From: ELPA Syncer
Subject: [nongnu] elpa/slime bd1ec52c61: Fix top-level defvar detection in slime-eval-defun
Date: Fri, 5 Jul 2024 13:01:06 -0400 (EDT)

branch: elpa/slime
commit bd1ec52c6162325e3674281c5cba06c835935743
Author: Hraban Luyat <hraban@0brg.net>
Commit: Stas Boukarev <stassats@gmail.com>

    Fix top-level defvar detection in slime-eval-defun
    
    Using ‘(string-match "^..." ..)’ would match against the beginning of every
    line, not just the start of the string. This trips over docstrings which 
have
    a (defvar..), e.g. in example usage.
    
    Compare the old and new implementation on:
    
    (defun foo (x)
      "Foo something
    
    Example:
    
    (defvar y 10)
    (foo y)
    => 100
    "
      (* x x))
    
    I think ‘string-prefix-p’ goes back at least to 24.1, if even earlier 
support is
    needed maybe we should use a different regex instead?
---
 slime.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/slime.el b/slime.el
index 839ebc82db..9832937d87 100644
--- a/slime.el
+++ b/slime.el
@@ -4118,7 +4118,7 @@ inserted in the current buffer."
 Use `slime-re-evaluate-defvar' if the from starts with '(defvar'"
   (interactive)
   (let ((form (slime-defun-at-point)))
-    (cond ((string-match "^(defvar " form)
+    (cond ((string-prefix-p "(defvar " form t)
            (slime-re-evaluate-defvar form))
           (t
            (slime-interactive-eval form)))))



reply via email to

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