]> code.delx.au - gnu-emacs/commitdiff
(re-builder): Don't re-enter RE Builder Mode.
authorEli Zaretskii <eliz@gnu.org>
Tue, 20 Nov 2001 18:26:55 +0000 (18:26 +0000)
committerEli Zaretskii <eliz@gnu.org>
Tue, 20 Nov 2001 18:26:55 +0000 (18:26 +0000)
lisp/ChangeLog
lisp/emacs-lisp/re-builder.el

index f43a72bb15db92d7ad72be5aae27aaf7f5242288..dfa1863f3180f4e6708a7d2e8960be4f42dcda33 100644 (file)
@@ -1,3 +1,13 @@
+2001-11-20  Juanma Barranquero  <lektu@terra.es>
+
+       * emacs-lisp/re-builder.el (reb-change-target-buffer): New
+       function.
+       (top-level): Bind it to C-c C-b.
+       (re-builder): Don't re-enter RE Builder Mode.
+
+       * bs.el (bs-delete): Signal an error if the buffer cannot be
+       deleted.
+
 2001-11-20  Stefan Monnier  <monnier@rum.cs.yale.edu>
 
        * emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Don't move back
index 350a569a45693606cbda23aa0cf9f2a7bf049eaf..3c98827df23e9c466d62a602e1175ef89ee5161d 100644 (file)
@@ -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."