From: Nick Roberts Date: Fri, 10 Mar 2006 02:40:31 +0000 (+0000) Subject: (gdba): Don't call gdb-init-1 explicitly as X-Git-Tag: emacs-pretest-22.0.90~3725 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4a7d75e8b27895a1239a01b13acd9ff827eab992;p=emacs.git (gdba): Don't call gdb-init-1 explicitly as 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. --- diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 4340892a9cc..a252884e448 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el @@ -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.