aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2004-11-25 02:00:53 +0000
committerNick Roberts2004-11-25 02:00:53 +0000
commit12032009a49f05a94c7adcd69a73a0bbd1d7de3b (patch)
tree8ed662b4a631aa731cbc2b35d1a698b81cc72802
parent29b5fa7e520a0e873fe6fc3f8dca22feb4a6615e (diff)
downloademacs-12032009a49f05a94c7adcd69a73a0bbd1d7de3b.tar.gz
emacs-12032009a49f05a94c7adcd69a73a0bbd1d7de3b.zip
(gdb-breakpoints-mode-map)
(gdb-frames-mode-map, gdb-threads-mode-map) (gdb-registers-mode-map, gdb-locals-mode-map) (gdb-assembler-mode-map): Bind "q" to kill-this-buffer. (dedicated-switch-to-buffer): Rename to gdb-set-window-buffer. (dedicated-switch-to-buffer): Rework. (gdb-var-evaluate-expression-handler, gdb-put-string): Remove unused variable bindings. (gdb-setup-windows, gdb-display-buffer): Simplify. Use pop-to-buffer. (gdb-view-source-function): Simplify. (gdb-frame-breakpoints-buffer): Use pop-to-buffer, special-display-regexps.
-rw-r--r--lisp/progmodes/gdb-ui.el83
1 files changed, 41 insertions, 42 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 4bea2f54c2a..644069ed696 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -317,7 +317,7 @@ detailed description of this mode.
317 (goto-char (point-min)) 317 (goto-char (point-min))
318 (re-search-forward ".*value=\"\\(.*?\\)\"" nil t) 318 (re-search-forward ".*value=\"\\(.*?\\)\"" nil t)
319 (catch 'var-found 319 (catch 'var-found
320 (let ((var-list nil) (num 0)) 320 (let ((num 0))
321 (dolist (var gdb-var-list) 321 (dolist (var gdb-var-list)
322 (if (string-equal varnum (cadr var)) 322 (if (string-equal varnum (cadr var))
323 (progn 323 (progn
@@ -1123,7 +1123,7 @@ static char *magick[] = {
1123 1123
1124;;-put breakpoint icons in relevant margins (even those set in the GUD buffer) 1124;;-put breakpoint icons in relevant margins (even those set in the GUD buffer)
1125(defun gdb-info-breakpoints-custom () 1125(defun gdb-info-breakpoints-custom ()
1126 (let ((flag)(address)) 1126 (let ((flag))
1127 ;; 1127 ;;
1128 ;; remove all breakpoint-icons in source buffers but not assembler buffer 1128 ;; remove all breakpoint-icons in source buffers but not assembler buffer
1129 (dolist (buffer (buffer-list)) 1129 (dolist (buffer (buffer-list))
@@ -1199,9 +1199,8 @@ static char *magick[] = {
1199(defun gdb-frame-breakpoints-buffer () 1199(defun gdb-frame-breakpoints-buffer ()
1200 "Display status of user-settable breakpoints in a new frame." 1200 "Display status of user-settable breakpoints in a new frame."
1201 (interactive) 1201 (interactive)
1202 (select-frame (make-frame gdb-frame-parameters)) 1202 (let ((special-display-regexps (append special-display-regexps '(".*"))))
1203 (switch-to-buffer (gdb-get-create-buffer 'gdb-breakpoints-buffer)) 1203 (pop-to-buffer (gdb-get-create-buffer 'gdb-breakpoints-buffer))))
1204 (set-window-dedicated-p (selected-window) t))
1205 1204
1206(defvar gdb-breakpoints-mode-map 1205(defvar gdb-breakpoints-mode-map
1207 (let ((map (make-sparse-keymap)) 1206 (let ((map (make-sparse-keymap))
@@ -1214,6 +1213,7 @@ static char *magick[] = {
1214 (define-key map [menu-bar breakpoints] (cons "Breakpoints" menu)) 1213 (define-key map [menu-bar breakpoints] (cons "Breakpoints" menu))
1215 (define-key map " " 'gdb-toggle-breakpoint) 1214 (define-key map " " 'gdb-toggle-breakpoint)
1216 (define-key map "d" 'gdb-delete-breakpoint) 1215 (define-key map "d" 'gdb-delete-breakpoint)
1216 (define-key map "q" 'kill-this-buffer)
1217 (define-key map "\r" 'gdb-goto-breakpoint) 1217 (define-key map "\r" 'gdb-goto-breakpoint)
1218 (define-key map [mouse-2] 'gdb-mouse-goto-breakpoint) 1218 (define-key map [mouse-2] 'gdb-mouse-goto-breakpoint)
1219 map)) 1219 map))
@@ -1342,6 +1342,7 @@ static char *magick[] = {
1342(defvar gdb-frames-mode-map 1342(defvar gdb-frames-mode-map
1343 (let ((map (make-sparse-keymap))) 1343 (let ((map (make-sparse-keymap)))
1344 (suppress-keymap map) 1344 (suppress-keymap map)
1345 (define-key map "q" 'kill-this-buffer)
1345 (define-key map "\r" 'gdb-frames-select) 1346 (define-key map "\r" 'gdb-frames-select)
1346 (define-key map [mouse-2] 'gdb-frames-mouse-select) 1347 (define-key map [mouse-2] 'gdb-frames-mouse-select)
1347 map)) 1348 map))
@@ -1423,6 +1424,7 @@ static char *magick[] = {
1423(defvar gdb-threads-mode-map 1424(defvar gdb-threads-mode-map
1424 (let ((map (make-sparse-keymap))) 1425 (let ((map (make-sparse-keymap)))
1425 (suppress-keymap map) 1426 (suppress-keymap map)
1427 (define-key map "q" 'kill-this-buffer)
1426 (define-key map "\r" 'gdb-threads-select) 1428 (define-key map "\r" 'gdb-threads-select)
1427 (define-key map [mouse-2] 'gdb-threads-mouse-select) 1429 (define-key map [mouse-2] 'gdb-threads-mouse-select)
1428 map)) 1430 map))
@@ -1475,7 +1477,8 @@ static char *magick[] = {
1475(defvar gdb-registers-mode-map 1477(defvar gdb-registers-mode-map
1476 (let ((map (make-sparse-keymap))) 1478 (let ((map (make-sparse-keymap)))
1477 (suppress-keymap map) 1479 (suppress-keymap map)
1478 map)) 1480 (define-key map "q" 'kill-this-buffer)
1481 map))
1479 1482
1480(defun gdb-registers-mode () 1483(defun gdb-registers-mode ()
1481 "Major mode for gdb registers. 1484 "Major mode for gdb registers.
@@ -1551,7 +1554,8 @@ static char *magick[] = {
1551(defvar gdb-locals-mode-map 1554(defvar gdb-locals-mode-map
1552 (let ((map (make-sparse-keymap))) 1555 (let ((map (make-sparse-keymap)))
1553 (suppress-keymap map) 1556 (suppress-keymap map)
1554 map)) 1557 (define-key map "q" 'kill-this-buffer)
1558 map))
1555 1559
1556(defun gdb-locals-mode () 1560(defun gdb-locals-mode ()
1557 "Major mode for gdb locals. 1561 "Major mode for gdb locals.
@@ -1587,16 +1591,18 @@ static char *magick[] = {
1587 1591
1588;;;; Window management 1592;;;; Window management
1589(defun gdb-display-buffer (buf &optional size) 1593(defun gdb-display-buffer (buf &optional size)
1590 (let ((must-split nil) 1594 (let ((answer (get-buffer-window buf 0))
1591 (answer nil)) 1595 (must-split nil))
1592 (setq answer (get-buffer-window buf 'visible)) 1596 (if answer
1593 (if (not answer) 1597 (display-buffer answer) ;Raise the frame if necessary.
1598 ;; The buffer is not yet displayed.
1599 (pop-to-buffer gud-comint-buffer) ;Select the right frame.
1594 (let ((window (get-lru-window))) 1600 (let ((window (get-lru-window)))
1595 (if window 1601 (if window
1596 (progn 1602 (progn
1597 (set-window-buffer window buf) 1603 (set-window-buffer window buf)
1598 (setq answer window)) 1604 (setq answer window))
1599 (setq must-split t)))) 1605 (setq must-split t)))
1600 (if must-split 1606 (if must-split
1601 (let* ((largest (get-largest-window)) 1607 (let* ((largest (get-largest-window))
1602 (cur-size (window-height largest)) 1608 (cur-size (window-height largest))
@@ -1604,7 +1610,7 @@ static char *magick[] = {
1604 (setq answer (split-window largest new-size)) 1610 (setq answer (split-window largest new-size))
1605 (set-window-buffer answer buf))) 1611 (set-window-buffer answer buf)))
1606 (set-window-dedicated-p answer t) 1612 (set-window-dedicated-p answer t)
1607 answer)) 1613 answer)))
1608 1614
1609(defun gdb-display-source-buffer (buffer) 1615(defun gdb-display-source-buffer (buffer)
1610 (if (eq gdb-selected-view 'source) 1616 (if (eq gdb-selected-view 'source)
@@ -1680,9 +1686,9 @@ static char *magick[] = {
1680 (interactive) 1686 (interactive)
1681 (if gdb-view-source 1687 (if gdb-view-source
1682 (gdb-display-buffer 1688 (gdb-display-buffer
1683 (if gud-last-last-frame 1689 (gud-find-file (if gud-last-last-frame
1684 (gud-find-file (car gud-last-last-frame)) 1690 (car gud-last-last-frame)
1685 (gud-find-file gdb-main-file)))) 1691 gdb-main-file))))
1686 (setq gdb-selected-view 'source)) 1692 (setq gdb-selected-view 'source))
1687 1693
1688(defun gdb-view-assembler() 1694(defun gdb-view-assembler()
@@ -1702,10 +1708,9 @@ static char *magick[] = {
1702 :group 'gud 1708 :group 'gud
1703 :version "21.4") 1709 :version "21.4")
1704 1710
1705(defun dedicated-switch-to-buffer (name) 1711(defun gdb-set-window-buffer (name)
1706 (set-window-dedicated-p 1712 (set-window-buffer (selected-window) (get-buffer name))
1707 (get-buffer-window 1713 (set-window-dedicated-p (selected-window) t))
1708 (switch-to-buffer name)) t))
1709 1714
1710(defun gdb-setup-windows () 1715(defun gdb-setup-windows ()
1711 "Layout the window pattern for gdb-many-windows." 1716 "Layout the window pattern for gdb-many-windows."
@@ -1714,14 +1719,14 @@ static char *magick[] = {
1714 (delete-other-windows) 1719 (delete-other-windows)
1715 (gdb-display-breakpoints-buffer) 1720 (gdb-display-breakpoints-buffer)
1716 (delete-other-windows) 1721 (delete-other-windows)
1717 (dedicated-switch-to-buffer gud-comint-buffer) 1722 (gdb-set-window-buffer gud-comint-buffer)
1718 (split-window nil ( / ( * (window-height) 3) 4)) 1723 (split-window nil ( / ( * (window-height) 3) 4))
1719 (split-window nil ( / (window-height) 3)) 1724 (split-window nil ( / (window-height) 3))
1720 (split-window-horizontally) 1725 (split-window-horizontally)
1721 (other-window 1) 1726 (other-window 1)
1722 (dedicated-switch-to-buffer (gdb-locals-buffer-name)) 1727 (gdb-set-window-buffer (gdb-locals-buffer-name))
1723 (other-window 1) 1728 (other-window 1)
1724 (dedicated-switch-to-buffer 1729 (gdb-set-window-buffer
1725 (if (and gdb-view-source 1730 (if (and gdb-view-source
1726 (eq gdb-selected-view 'source)) 1731 (eq gdb-selected-view 'source))
1727 (if gud-last-last-frame 1732 (if gud-last-last-frame
@@ -1731,12 +1736,12 @@ static char *magick[] = {
1731 (when gdb-use-inferior-io-buffer 1736 (when gdb-use-inferior-io-buffer
1732 (split-window-horizontally) 1737 (split-window-horizontally)
1733 (other-window 1) 1738 (other-window 1)
1734 (dedicated-switch-to-buffer (gdb-inferior-io-name))) 1739 (gdb-set-window-buffer (gdb-inferior-io-name)))
1735 (other-window 1) 1740 (other-window 1)
1736 (dedicated-switch-to-buffer (gdb-stack-buffer-name)) 1741 (gdb-set-window-buffer (gdb-stack-buffer-name))
1737 (split-window-horizontally) 1742 (split-window-horizontally)
1738 (other-window 1) 1743 (other-window 1)
1739 (dedicated-switch-to-buffer (gdb-breakpoints-buffer-name)) 1744 (gdb-set-window-buffer (gdb-breakpoints-buffer-name))
1740 (other-window 1)) 1745 (other-window 1))
1741 1746
1742(defcustom gdb-many-windows nil 1747(defcustom gdb-many-windows nil
@@ -1764,16 +1769,13 @@ of the inferior. Non-nil means display the layout shown for
1764 "Restore the basic arrangement of windows used by gdba. 1769 "Restore the basic arrangement of windows used by gdba.
1765This arrangement depends on the value of `gdb-many-windows'." 1770This arrangement depends on the value of `gdb-many-windows'."
1766 (interactive) 1771 (interactive)
1767 (if gdb-many-windows 1772 (pop-to-buffer gud-comint-buffer) ;Select the right window and frame.
1768 (progn
1769 (switch-to-buffer gud-comint-buffer)
1770 (delete-other-windows)
1771 (gdb-setup-windows))
1772 (switch-to-buffer gud-comint-buffer)
1773 (delete-other-windows) 1773 (delete-other-windows)
1774 (if gdb-many-windows
1775 (gdb-setup-windows)
1774 (split-window) 1776 (split-window)
1775 (other-window 1) 1777 (other-window 1)
1776 (dedicated-switch-to-buffer 1778 (gdb-set-window-buffer
1777 (if (and gdb-view-source 1779 (if (and gdb-view-source
1778 (eq gdb-selected-view 'source)) 1780 (eq gdb-selected-view 'source))
1779 (if gud-last-last-frame 1781 (if gud-last-last-frame
@@ -1819,15 +1821,11 @@ buffers."
1819 (gdb-setup-windows) 1821 (gdb-setup-windows)
1820 (gdb-get-create-buffer 'gdb-breakpoints-buffer) 1822 (gdb-get-create-buffer 'gdb-breakpoints-buffer)
1821 (when gdb-show-main 1823 (when gdb-show-main
1822 (switch-to-buffer gud-comint-buffer) 1824 (let ((pop-up-windows t))
1823 (delete-other-windows) 1825 (display-buffer
1824 (split-window)
1825 (other-window 1)
1826 (switch-to-buffer
1827 (if gdb-view-source 1826 (if gdb-view-source
1828 (gud-find-file gdb-main-file) 1827 (gud-find-file gdb-main-file)
1829 (gdb-get-create-buffer 'gdb-assembler-buffer))) 1828 (gdb-get-create-buffer 'gdb-assembler-buffer)))))))
1830 (other-window 1))))
1831 1829
1832;;from put-image 1830;;from put-image
1833(defun gdb-put-string (putstring pos &optional dprop) 1831(defun gdb-put-string (putstring pos &optional dprop)
@@ -1971,7 +1969,8 @@ BUFFER nil or omitted means use the current buffer."
1971(defvar gdb-assembler-mode-map 1969(defvar gdb-assembler-mode-map
1972 (let ((map (make-sparse-keymap))) 1970 (let ((map (make-sparse-keymap)))
1973 (suppress-keymap map) 1971 (suppress-keymap map)
1974 map)) 1972 (define-key map "q" 'kill-this-buffer)
1973 map))
1975 1974
1976(defvar gdb-assembler-font-lock-keywords 1975(defvar gdb-assembler-font-lock-keywords
1977 '(;; <__function.name+n> 1976 '(;; <__function.name+n>
@@ -2037,7 +2036,7 @@ BUFFER nil or omitted means use the current buffer."
2037 (progn 2036 (progn
2038 ;; take previous disassemble command off the queue 2037 ;; take previous disassemble command off the queue
2039 (with-current-buffer gud-comint-buffer 2038 (with-current-buffer gud-comint-buffer
2040 (let ((queue gdb-input-queue) (item)) 2039 (let ((queue gdb-input-queue))
2041 (dolist (item queue) 2040 (dolist (item queue)
2042 (if (equal (cdr item) '(gdb-assembler-handler)) 2041 (if (equal (cdr item) '(gdb-assembler-handler))
2043 (setq gdb-input-queue 2042 (setq gdb-input-queue