summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/re-builder.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2001-11-20 18:26:55 +0000
committerEli Zaretskii <eliz@gnu.org>2001-11-20 18:26:55 +0000
commit381321494657eda6861cad615a95a4745f15c453 (patch)
treecbc27809aa6d3bd27234fabec59eaa34791dcac2 /lisp/emacs-lisp/re-builder.el
parent84c7e2dc6143b49707fa9481f0626feee1962a47 (diff)
downloademacs-381321494657eda6861cad615a95a4745f15c453.tar.gz
emacs-381321494657eda6861cad615a95a4745f15c453.tar.bz2
emacs-381321494657eda6861cad615a95a4745f15c453.zip
(re-builder): Don't re-enter RE Builder Mode.
Diffstat (limited to 'lisp/emacs-lisp/re-builder.el')
-rw-r--r--lisp/emacs-lisp/re-builder.el31
1 files changed, 17 insertions, 14 deletions
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el
index 350a569a456..3c98827df23 100644
--- a/lisp/emacs-lisp/re-builder.el
+++ b/lisp/emacs-lisp/re-builder.el
@@ -313,20 +313,23 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
"Call up the RE Builder for the current window."
(interactive)
- (if reb-target-buffer
- (reb-delete-overlays))
- (setq reb-target-buffer (current-buffer)
- reb-target-window (selected-window)
- reb-window-config (current-window-configuration))
- (select-window (split-window (selected-window) (- (window-height) 4)))
- (switch-to-buffer (get-buffer-create reb-buffer))
- (erase-buffer)
- (reb-insert-regexp)
- (goto-char (+ 2 (point-min)))
- (cond
- ((reb-lisp-syntax-p)
- (reb-lisp-mode))
- (t (reb-mode))))
+ (if (and (string= (buffer-name) reb-buffer)
+ (memq major-mode '(reb-mode reb-lisp-mode)))
+ (message "Already in the RE Builder")
+ (if reb-target-buffer
+ (reb-delete-overlays))
+ (setq reb-target-buffer (current-buffer)
+ reb-target-window (selected-window)
+ reb-window-config (current-window-configuration))
+ (select-window (split-window (selected-window) (- (window-height) 4)))
+ (switch-to-buffer (get-buffer-create reb-buffer))
+ (erase-buffer)
+ (reb-insert-regexp)
+ (goto-char (+ 2 (point-min)))
+ (cond
+ ((reb-lisp-syntax-p)
+ (reb-lisp-mode))
+ (t (reb-mode)))))
(defun reb-change-target-buffer (buf)
"Change the target buffer and display it in the target window."