Mercurial > emacs
changeset 69350:d3742811a570
(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.
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Fri, 10 Mar 2006 02:40:31 +0000 |
parents | aeac9fc5787d |
children | 86b7b0805645 |
files | lisp/progmodes/gdb-ui.el |
diffstat | 1 files changed, 16 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/gdb-ui.el Fri Mar 10 02:35:22 2006 +0000 +++ b/lisp/progmodes/gdb-ui.el Fri Mar 10 02:40:31 2006 +0000 @@ -257,8 +257,7 @@ (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 @@ (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 @@ ;; 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 @@ ((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 @@ (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.