]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/ielm.el: Handle corner case where */**/*** are not yet bound
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 11 May 2020 04:12:29 +0000 (00:12 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 11 May 2020 04:12:29 +0000 (00:12 -0400)
Remote redundant :group args.

(ielm-eval-input): Use bound-and-true-p for */**/***

lisp/ielm.el

index fc06ebfa2db6a79bfd12a794702601a177a9f77d..47c5158ce4123ae720d77f7b07a00af1d7f27eaa 100644 (file)
@@ -44,8 +44,7 @@
 
 (defcustom ielm-noisy t
   "If non-nil, IELM will beep on error."
-  :type 'boolean
-  :group 'ielm)
+  :type 'boolean)
 
 (defcustom ielm-prompt-read-only t
   "If non-nil, the IELM prompt is read only.
@@ -74,7 +73,6 @@ buffers, including IELM buffers.  If you sometimes use IELM on
 text-only terminals or with `emacs -nw', you might wish to use
 another binding for `comint-kill-whole-line'."
   :type 'boolean
-  :group 'ielm
   :version "22.1")
 
 (defcustom ielm-prompt "ELISP> "
@@ -90,8 +88,7 @@ does not update the prompt of an *ielm* buffer with a running process.
 For IELM buffers that are not called `*ielm*', you can execute
 \\[inferior-emacs-lisp-mode] in that IELM buffer to update the value,
 for new prompts.  This works even if the buffer has a running process."
-  :type 'string
-  :group 'ielm)
+  :type 'string)
 
 (defvar ielm-prompt-internal "ELISP> "
   "Stored value of `ielm-prompt' in the current IELM buffer.
@@ -103,8 +100,7 @@ customizes `ielm-prompt'.")
   "Controls whether \\<ielm-map>\\[ielm-return] has intelligent behavior in IELM.
 If non-nil, \\[ielm-return] evaluates input for complete sexps, or inserts a newline
 and indents for incomplete sexps.  If nil, always inserts newlines."
-  :type 'boolean
-  :group 'ielm)
+  :type 'boolean)
 
 (defcustom ielm-dynamic-multiline-inputs t
   "Force multiline inputs to start from column zero?
@@ -112,15 +108,13 @@ If non-nil, after entering the first line of an incomplete sexp, a newline
 will be inserted after the prompt, moving the input to the next line.
 This gives more frame width for large indented sexps, and allows functions
 such as `edebug-defun' to work with such inputs."
-  :type 'boolean
-  :group 'ielm)
+  :type 'boolean)
 
 (defvaralias 'inferior-emacs-lisp-mode-hook 'ielm-mode-hook)
 (defcustom ielm-mode-hook nil
   "Hooks to be run when IELM (`inferior-emacs-lisp-mode') is started."
   :options '(eldoc-mode)
-  :type 'hook
-  :group 'ielm)
+  :type 'hook)
 
 ;; We define these symbols (that are only used buffer-locally in ielm
 ;; buffers) this way to avoid having them be defined in the global
@@ -366,9 +360,9 @@ nonempty, then flushes the buffer."
               ;; that same let.  To avoid problems, neither of
               ;; these buffers should be alive during the
               ;; evaluation of form.
-              (let* ((*1 *)
-                     (*2 **)
-                     (*3 ***)
+              (let* ((*1 (bound-and-true-p *))
+                     (*2 (bound-and-true-p **))
+                     (*3 (bound-and-true-p ***))
                      (active-process (ielm-process))
                      (old-standard-output standard-output)
                      new-standard-output
@@ -453,11 +447,12 @@ nonempty, then flushes the buffer."
       (if error-type
           (progn
             (when ielm-noisy (ding))
-            (setq output (concat output "*** " error-type " ***  "))
-            (setq output (concat output result)))
+            (setq output (concat output
+                                 "*** " error-type " ***  "
+                                 result)))
         ;; There was no error, so shift the *** values
-        (setq *** **)
-        (setq ** *)
+        (setq *** (bound-and-true-p **))
+        (setq ** (bound-and-true-p *))
         (setq * result))
       (when (or (not for-effect) (not (equal output "")))
         (setq output (concat output "\n"))))