summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/simple.el10
1 files changed, 9 insertions, 1 deletions
diff --git a/lisp/simple.el b/lisp/simple.el
index 7f8aa1deff0..3b7913ff753 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2979,7 +2979,15 @@ If you want VALUE to be a string, you must surround it with doublequotes.
If VARIABLE has a `variable-interactive' property, that is used as if
it were the arg to `interactive' (which see) to interactively read the value."
(interactive
- (let* ((var (read-variable "Set variable: "))
+ (let* ((var (let ((v (variable-at-point))
+ (enable-recursive-minibuffers t)
+ val)
+ (setq val (completing-read (if v
+ (format "Set variable (default %s): " v)
+ "Set variable: ")
+ obarray 'boundp t))
+ (if (equal val "")
+ v (intern val))))
(minibuffer-help-form
'(funcall myhelp))
(myhelp