]> code.delx.au - gnu-emacs/commitdiff
(gdba): Don't call gdb-init-1 explicitly as
authorNick Roberts <nickrob@snap.net.nz>
Fri, 10 Mar 2006 02:40:31 +0000 (02:40 +0000)
committerNick Roberts <nickrob@snap.net.nz>
Fri, 10 Mar 2006 02:40:31 +0000 (02:40 +0000)
it gets called in gdb-prompt anyway.
(gdb-use-separate-io-buffer): Only restore window arrangement for
gdb-many-windows.
(gdb-enqueue-input): Make it harder to send GDB input when program
is running.
(gdb-buffer-list): New variable.
(gdb-remove-mouse-face): New function.
(gdb-starting): Use it when GDB input won't get sent.

lisp/progmodes/gdb-ui.el

index 4340892a9cca09837ec9994f820030f27cd614eb..a252884e4489b64ab745758f15c1018f7bda9bba 100644 (file)
@@ -257,8 +257,7 @@ detailed description of this mode.
   (interactive (list (gud-query-cmdline 'gdba)))
   ;;
   ;; Let's start with a basic gud-gdb buffer and then modify it a bit.
-  (gdb command-line)
-  (gdb-init-1))
+  (gdb command-line))
 
 (defcustom gdb-debug-ring-max 128
   "Maximum size of `gdb-debug-ring'."
@@ -322,7 +321,7 @@ With arg, use separate IO iff arg is positive."
           (buffer-name gud-comint-buffer))
       (condition-case nil
          (if gdb-use-separate-io-buffer
-             (gdb-restore-windows)
+             (if gdb-many-windows (gdb-restore-windows))
            (kill-buffer (gdb-inferior-io-name)))
        (error nil))))
 
@@ -1037,7 +1036,7 @@ This filter may simply queue input for a later time."
 ;; is a query, or other non-top-level prompt.
 
 (defun gdb-enqueue-input (item)
-  (if gdb-prompting
+  (if (and gdb-prompting (not gud-running))
       (progn
        (gdb-send-item item)
        (setq gdb-prompting nil))
@@ -1192,6 +1191,7 @@ not GDB."
      ((eq sink 'user)
       (progn
        (setq gud-running t)
+       (gdb-remove-mouse-face)
        (if gdb-use-separate-io-buffer
            (setq gdb-output-sink 'inferior))))
      (t
@@ -1299,6 +1299,18 @@ happens to be appropriate."
       (gdb-resync)
       (error "Phase error in gdb-post-prompt (got %s)" sink)))))
 
+(defconst gdb-buffer-list
+'(gdb-stack-buffer gdb-locals-buffer gdb-registers-buffer gdb-threads-buffer))
+
+(defun gdb-remove-mouse-face ()
+  (dolist (buffertype gdb-buffer-list)
+    (let ((buffer (gdb-get-buffer buffertype)))
+      (if buffer
+         (with-current-buffer buffer
+           (let ((inhibit-read-only t))
+             (remove-text-properties
+              (point-min) (point-max) '(mouse-face))))))))
+
 ;; GUD displays the selected GDB frame.  This might might not be the current
 ;; GDB frame (after up, down etc).  If no GDB frame is visible but the last
 ;; visited breakpoint is, use that window.