diff options
| author | Nick Roberts | 2004-11-25 02:00:53 +0000 |
|---|---|---|
| committer | Nick Roberts | 2004-11-25 02:00:53 +0000 |
| commit | 12032009a49f05a94c7adcd69a73a0bbd1d7de3b (patch) | |
| tree | 8ed662b4a631aa731cbc2b35d1a698b81cc72802 | |
| parent | 29b5fa7e520a0e873fe6fc3f8dca22feb4a6615e (diff) | |
| download | emacs-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.el | 83 |
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. |
| 1765 | This arrangement depends on the value of `gdb-many-windows'." | 1770 | This 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 |