aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2002-12-04 18:43:59 +0000
committerStefan Monnier2002-12-04 18:43:59 +0000
commitb4795045fc5d796b78c2b6ca4dea64de4c47e699 (patch)
tree0839c98e353289edb925b17494d76ffd6154465a
parent8d594498d73451a98744ad1773ccc0a4a592afdd (diff)
downloademacs-b4795045fc5d796b78c2b6ca4dea64de4c47e699.tar.gz
emacs-b4795045fc5d796b78c2b6ca4dea64de4c47e699.zip
Fold top-level `setq's and `define-key's into their corresponding defvar.
(gdb-inferior-io-mode-map): New var. Add bindings to it rather than to comint-mode-map. (gdb-display-number-end): Use dolist. Remove always-true test. (gdb-delete-line): Move and simplify. (gdb-display-end): Don't bother going to beg-of-line since we're there. (gdb-array-format1): Use dolist. (gdb-make-windows-menu, gdb-make-frames-menu): Move to top-level code. Move the menus to within the GUD menu. Make the menus only appear in gdba mode.
-rw-r--r--lisp/gdb-ui.el302
1 files changed, 136 insertions, 166 deletions
diff --git a/lisp/gdb-ui.el b/lisp/gdb-ui.el
index 8ed8fc68b7d..6cbbec1d19d 100644
--- a/lisp/gdb-ui.el
+++ b/lisp/gdb-ui.el
@@ -472,10 +472,13 @@ The key should be one of the cars in `gdb-instance-buffer-rules-assoc'."
472 (gdb-instance-target-string) 472 (gdb-instance-target-string)
473 "*")) 473 "*"))
474 474
475(define-key comint-mode-map "\C-c\C-c" 'gdb-inferior-io-interrupt) 475(defvar gdb-inferior-io-mode-map
476(define-key comint-mode-map "\C-c\C-z" 'gdb-inferior-io-stop) 476 (let ((map (make-sparse-keymap)))
477(define-key comint-mode-map "\C-c\C-\\" 'gdb-inferior-io-quit) 477 (define-key map "\C-c\C-c" 'gdb-inferior-io-interrupt)
478(define-key comint-mode-map "\C-c\C-d" 'gdb-inferior-io-eof) 478 (define-key map "\C-c\C-z" 'gdb-inferior-io-stop)
479 (define-key map "\C-c\C-\\" 'gdb-inferior-io-quit)
480 (define-key map "\C-c\C-d" 'gdb-inferior-io-eof)
481 map))
479 482
480(define-derived-mode gdb-inferior-io-mode comint-mode "Debuggee I/O" 483(define-derived-mode gdb-inferior-io-mode comint-mode "Debuggee I/O"
481 "Major mode for gdb inferior-io." 484 "Major mode for gdb inferior-io."
@@ -825,23 +828,18 @@ output from the current command if that happens to be appropriate."
825 (set-buffer (get-buffer-create gdb-expression-buffer-name))) 828 (set-buffer (get-buffer-create gdb-expression-buffer-name)))
826 (gdb-expressions-mode) 829 (gdb-expressions-mode)
827 (setq gdb-dive-display-number number))) 830 (setq gdb-dive-display-number number)))
828;else
829 (set-buffer (get-buffer-create gdb-expression-buffer-name)) 831 (set-buffer (get-buffer-create gdb-expression-buffer-name))
830 (if (and (display-graphic-p) (not gdb-dive)) 832 (if (and (display-graphic-p) (not gdb-dive))
831 (catch 'frame-exists 833 (catch 'frame-exists
832 (let ((frames (frame-list))) 834 (dolist (frame (frame-list))
833 (while frames 835 (if (string-equal (frame-parameter frame 'name)
834 (if (string-equal (frame-parameter (car frames) 'name) 836 gdb-expression-buffer-name)
835 gdb-expression-buffer-name) 837 (throw 'frame-exists nil)))
836 (throw 'frame-exists nil)) 838 (gdb-expressions-mode)
837 (setq frames (cdr frames))) 839 (make-frame '((height . 20) (width . 40)
838 (if (not frames) 840 (tool-bar-lines . nil)
839 (progn 841 (menu-bar-lines . nil)
840 (gdb-expressions-mode) 842 (minibuffer . nil)))))))
841 (make-frame '((height . 20) (width . 40)
842 (tool-bar-lines . nil)
843 (menu-bar-lines . nil)
844 (minibuffer . nil))))))))))
845 (set-buffer (gdb-get-instance-buffer 'gdb-partial-output-buffer)) 843 (set-buffer (gdb-get-instance-buffer 'gdb-partial-output-buffer))
846 (setq gdb-dive nil)) 844 (setq gdb-dive nil))
847 845
@@ -851,6 +849,10 @@ output from the current command if that happens to be appropriate."
851(defvar gdb-point) 849(defvar gdb-point)
852(defvar gdb-annotation-arg) 850(defvar gdb-annotation-arg)
853 851
852(defun gdb-delete-line ()
853 "Delete the current line."
854 (delete-region (line-beginning-position) (line-beginning-position 2)))
855
854(defun gdb-display-end (ignored) 856(defun gdb-display-end (ignored)
855 (set-buffer (gdb-get-instance-buffer 'gdb-partial-output-buffer)) 857 (set-buffer (gdb-get-instance-buffer 'gdb-partial-output-buffer))
856 (goto-char (point-min)) 858 (goto-char (point-min))
@@ -901,7 +903,6 @@ output from the current command if that happens to be appropriate."
901 (if (looking-at "array-section-begin") 903 (if (looking-at "array-section-begin")
902 (progn 904 (progn
903 (gdb-delete-line) 905 (gdb-delete-line)
904 (beginning-of-line)
905 (setq gdb-point (point)) 906 (setq gdb-point (point))
906 (gdb-array-format))) 907 (gdb-array-format)))
907 (if (looking-at "field-begin \\(.\\)") 908 (if (looking-at "field-begin \\(.\\)")
@@ -996,11 +997,11 @@ output from the current command if that happens to be appropriate."
996 (gdb-delete-line) 997 (gdb-delete-line)
997 (setq gdb-nesting-level (- gdb-nesting-level 1))) 998 (setq gdb-nesting-level (- gdb-nesting-level 1)))
998 999
999(defvar gdb-dive-map nil) 1000(defvar gdb-dive-map
1000 1001 (let ((map (make-sparse-keymap)))
1001(setq gdb-dive-map (make-keymap)) 1002 (define-key map [mouse-2] 'gdb-dive)
1002(define-key gdb-dive-map [mouse-2] 'gdb-dive) 1003 (define-key map [S-mouse-2] 'gdb-dive-new-frame)
1003(define-key gdb-dive-map [S-mouse-2] 'gdb-dive-new-frame) 1004 map))
1004 1005
1005(defun gdb-dive (event) 1006(defun gdb-dive (event)
1006 "Dive into structure." 1007 "Dive into structure."
@@ -1092,9 +1093,10 @@ output from the current command if that happens to be appropriate."
1092(defvar gdb-array-start) 1093(defvar gdb-array-start)
1093(defvar gdb-array-stop) 1094(defvar gdb-array-stop)
1094 1095
1095(defvar gdb-array-slice-map nil) 1096(defvar gdb-array-slice-map
1096(setq gdb-array-slice-map (make-keymap)) 1097 (let ((map (make-sparse-keymap)))
1097(define-key gdb-array-slice-map [mouse-2] 'gdb-array-slice) 1098 (define-key map [mouse-2] 'gdb-array-slice)
1099 map))
1098 1100
1099(defun gdb-array-slice (event) 1101(defun gdb-array-slice (event)
1100 "Select an array slice to display." 1102 "Select an array slice to display."
@@ -1125,8 +1127,8 @@ output from the current command if that happens to be appropriate."
1125 (index 0) (num 0) (array-start "") 1127 (index 0) (num 0) (array-start "")
1126 (array-stop "") (array-slice "") (array-range nil) 1128 (array-stop "") (array-slice "") (array-range nil)
1127 (flag t) (indices-string "")) 1129 (flag t) (indices-string ""))
1128 (while gdb-value-list 1130 (dolist (gdb-value gdb-value-list)
1129 (string-match "{*\\([^}]*\\)\\(}*\\)" (car gdb-value-list)) 1131 (string-match "{*\\([^}]*\\)\\(}*\\)" gdb-value)
1130 (setq num 0) 1132 (setq num 0)
1131 (while (< num depth) 1133 (while (< num depth)
1132 (setq indices-string 1134 (setq indices-string
@@ -1139,7 +1141,7 @@ output from the current command if that happens to be appropriate."
1139 (aset gdb-array-size num (aref indices num))) 1141 (aset gdb-array-size num (aref indices num)))
1140 (setq num (+ num 1))) 1142 (setq num (+ num 1)))
1141 (if flag 1143 (if flag
1142 (let ((gdb-display-value (match-string 1 (car gdb-value-list)))) 1144 (let ((gdb-display-value (match-string 1 gdb-value)))
1143 (setq gdb-display-string (concat gdb-display-string " " 1145 (setq gdb-display-string (concat gdb-display-string " "
1144 gdb-display-value)) 1146 gdb-display-value))
1145 (insert 1147 (insert
@@ -1150,14 +1152,12 @@ output from the current command if that happens to be appropriate."
1150 (setq index (- (- depth 1) 1152 (setq index (- (- depth 1)
1151 (- (match-end 2) (match-beginning 2)))) 1153 (- (match-end 2) (match-beginning 2))))
1152 ;;don't set for very last brackets 1154 ;;don't set for very last brackets
1153 (if (>= index 0) 1155 (when (>= index 0)
1154 (progn 1156 (aset indices index (+ 1 (aref indices index)))
1155 (aset indices index (+ 1 (aref indices index))) 1157 (setq num (+ 1 index))
1156 (setq num (+ 1 index)) 1158 (while (< num depth)
1157 (while (< num depth) 1159 (aset indices num 0)
1158 (aset indices num 0) 1160 (setq num (+ num 1)))))
1159 (setq num (+ num 1)))))
1160 (setq gdb-value-list (cdr gdb-value-list)))
1161 (setq num 0) 1161 (setq num 0)
1162 (while (< num depth) 1162 (while (< num depth)
1163 (if (= (aref gdb-array-start num) -1) 1163 (if (= (aref gdb-array-start num) -1)
@@ -1397,10 +1397,8 @@ buffer."
1397 gdb-info-breakpoints-custom) 1397 gdb-info-breakpoints-custom)
1398 1398
1399(defvar gdb-cdir nil "Compilation directory.") 1399(defvar gdb-cdir nil "Compilation directory.")
1400(defvar breakpoint-enabled-icon 1400(defvar breakpoint-enabled-icon)
1401 "Icon for enabled breakpoint in display margin") 1401(defvar breakpoint-disabled-icon)
1402(defvar breakpoint-disabled-icon
1403 "Icon for disabled breakpoint in display margin")
1404 1402
1405;-put breakpoint icons in relevant margins (even those set in the GUD buffer) 1403;-put breakpoint icons in relevant margins (even those set in the GUD buffer)
1406(defun gdb-info-breakpoints-custom () 1404(defun gdb-info-breakpoints-custom ()
@@ -1486,22 +1484,19 @@ buffer."
1486 (switch-to-buffer-other-frame 1484 (switch-to-buffer-other-frame
1487 (gdb-get-create-instance-buffer 'gdb-breakpoints-buffer))) 1485 (gdb-get-create-instance-buffer 'gdb-breakpoints-buffer)))
1488 1486
1489(defvar gdb-breakpoints-mode-map nil) 1487(defvar gdb-breakpoints-mode-map
1490(setq gdb-breakpoints-mode-map (make-keymap)) 1488 (let ((map (make-sparse-keymap))
1491(suppress-keymap gdb-breakpoints-mode-map) 1489 (menu (make-sparse-keymap "Breakpoints")))
1490 (define-key menu [toggle] '("Toggle" . gdb-toggle-bp-this-line))
1491 (define-key menu [delete] '("Delete" . gdb-delete-bp-this-line))
1492 (define-key menu [goto] '("Goto" . gdb-goto-bp-this-line))
1492 1493
1493(define-key gdb-breakpoints-mode-map [menu-bar breakpoints] 1494 (suppress-keymap map)
1494 (cons "Breakpoints" (make-sparse-keymap "Breakpoints"))) 1495 (define-key map [menu-bar breakpoints] (cons "Breakpoints" menu))
1495(define-key gdb-breakpoints-mode-map [menu-bar breakpoints toggle] 1496 (define-key map " " 'gdb-toggle-bp-this-line)
1496 '("Toggle" . gdb-toggle-bp-this-line)) 1497 (define-key map "d" 'gdb-delete-bp-this-line)
1497(define-key gdb-breakpoints-mode-map [menu-bar breakpoints delete] 1498 (define-key map "g" 'gdb-goto-bp-this-line)
1498 '("Delete" . gdb-delete-bp-this-line)) 1499 map))
1499(define-key gdb-breakpoints-mode-map [menu-bar breakpoints goto]
1500 '("Goto" . gdb-goto-bp-this-line))
1501
1502(define-key gdb-breakpoints-mode-map " " 'gdb-toggle-bp-this-line)
1503(define-key gdb-breakpoints-mode-map "d" 'gdb-delete-bp-this-line)
1504(define-key gdb-breakpoints-mode-map "g" 'gdb-goto-bp-this-line)
1505 1500
1506(defun gdb-breakpoints-mode () 1501(defun gdb-breakpoints-mode ()
1507 "Major mode for gdb breakpoints. 1502 "Major mode for gdb breakpoints.
@@ -1610,11 +1605,11 @@ buffer."
1610 (switch-to-buffer-other-frame 1605 (switch-to-buffer-other-frame
1611 (gdb-get-create-instance-buffer 'gdb-stack-buffer))) 1606 (gdb-get-create-instance-buffer 'gdb-stack-buffer)))
1612 1607
1613(defvar gdb-frames-mode-map nil) 1608(defvar gdb-frames-mode-map
1614(setq gdb-frames-mode-map (make-keymap)) 1609 (let ((map (make-sparse-keymap)))
1615(suppress-keymap gdb-frames-mode-map) 1610 (suppress-keymap map)
1616(define-key gdb-frames-mode-map [mouse-2] 1611 (define-key map [mouse-2]'gdb-frames-select-by-mouse)
1617 'gdb-frames-select-by-mouse) 1612 map))
1618 1613
1619(defun gdb-frames-mode () 1614(defun gdb-frames-mode ()
1620 "Major mode for gdb frames. 1615 "Major mode for gdb frames.
@@ -1668,9 +1663,10 @@ buffer."
1668 'gdb-registers-buffer-name 1663 'gdb-registers-buffer-name
1669 'gdb-registers-mode) 1664 'gdb-registers-mode)
1670 1665
1671(defvar gdb-registers-mode-map nil) 1666(defvar gdb-registers-mode-map
1672(setq gdb-registers-mode-map (make-keymap)) 1667 (let ((map (make-sparse-keymap)))
1673(suppress-keymap gdb-registers-mode-map) 1668 (suppress-keymap map)
1669 map))
1674 1670
1675(defun gdb-registers-mode () 1671(defun gdb-registers-mode ()
1676 "Major mode for gdb registers. 1672 "Major mode for gdb registers.
@@ -1741,9 +1737,10 @@ buffer."
1741 'gdb-locals-buffer-name 1737 'gdb-locals-buffer-name
1742 'gdb-locals-mode) 1738 'gdb-locals-mode)
1743 1739
1744(defvar gdb-locals-mode-map nil) 1740(defvar gdb-locals-mode-map
1745(setq gdb-locals-mode-map (make-keymap)) 1741 (let ((map (make-sparse-keymap)))
1746(suppress-keymap gdb-locals-mode-map) 1742 (suppress-keymap map)
1743 map))
1747 1744
1748(defun gdb-locals-mode () 1745(defun gdb-locals-mode ()
1749 "Major mode for gdb locals. 1746 "Major mode for gdb locals.
@@ -1791,19 +1788,17 @@ buffer."
1791; recompiled program. 1788; recompiled program.
1792) 1789)
1793 1790
1794(defvar gdb-display-mode-map nil) 1791(defvar gdb-display-mode-map
1795(setq gdb-display-mode-map (make-keymap)) 1792 (let ((map (make-sparse-keymap))
1796(suppress-keymap gdb-display-mode-map) 1793 (menu (make-sparse-keymap "Display")))
1797 1794 (define-key menu [toggle] '("Toggle" . gdb-toggle-disp-this-line))
1798(define-key gdb-display-mode-map [menu-bar display] 1795 (define-key menu [delete] '("Delete" . gdb-delete-disp-this-line))
1799 (cons "Display" (make-sparse-keymap "Display")))
1800(define-key gdb-display-mode-map [menu-bar display toggle]
1801 '("Toggle" . gdb-toggle-disp-this-line))
1802(define-key gdb-display-mode-map [menu-bar display delete]
1803 '("Delete" . gdb-delete-disp-this-line))
1804 1796
1805(define-key gdb-display-mode-map " " 'gdb-toggle-disp-this-line) 1797 (suppress-keymap map)
1806(define-key gdb-display-mode-map "d" 'gdb-delete-disp-this-line) 1798 (define-key map [menu-bar display] (cons "Display" menu))
1799 (define-key map " " 'gdb-toggle-disp-this-line)
1800 (define-key map "d" 'gdb-delete-disp-this-line)
1801 map))
1807 1802
1808(defun gdb-display-mode () 1803(defun gdb-display-mode ()
1809 "Major mode for gdb display. 1804 "Major mode for gdb display.
@@ -1876,9 +1871,13 @@ buffer."
1876 (throw 'frame-found nil))) 1871 (throw 'frame-found nil)))
1877 (setq frames (cdr frames)))))))))) 1872 (setq frames (cdr frames))))))))))
1878 1873
1879(defvar gdb-expressions-mode-map nil) 1874(defvar gdb-expressions-mode-map
1880(setq gdb-expressions-mode-map (make-keymap)) 1875 (let ((map (make-sparse-keymap)))
1881(suppress-keymap gdb-expressions-mode-map) 1876 (suppress-keymap map)
1877 (define-key map "v" 'gdb-array-visualise)
1878 (define-key map "q" 'gdb-delete-display)
1879 (define-key map [mouse-3] 'gdb-expressions-popup-menu)
1880 map))
1882 1881
1883(defvar gdb-expressions-mode-menu 1882(defvar gdb-expressions-mode-menu
1884 '("GDB Expressions Commands" 1883 '("GDB Expressions Commands"
@@ -1887,10 +1886,6 @@ buffer."
1887 ["Delete" gdb-delete-display t]) 1886 ["Delete" gdb-delete-display t])
1888 "Menu for `gdb-expressions-mode'.") 1887 "Menu for `gdb-expressions-mode'.")
1889 1888
1890(define-key gdb-expressions-mode-map "v" 'gdb-array-visualise)
1891(define-key gdb-expressions-mode-map "q" 'gdb-delete-display)
1892(define-key gdb-expressions-mode-map [mouse-3] 'gdb-expressions-popup-menu)
1893
1894(defun gdb-expressions-popup-menu (event) 1889(defun gdb-expressions-popup-menu (event)
1895 "Explicit Popup menu as this buffer doesn't have a menubar." 1890 "Explicit Popup menu as this buffer doesn't have a menubar."
1896 (interactive "@e") 1891 (interactive "@e")
@@ -1971,58 +1966,37 @@ buffer."
1971 (gdb-display-buffer 1966 (gdb-display-buffer
1972 (gdb-get-create-instance-buffer 'gdba))) 1967 (gdb-get-create-instance-buffer 'gdba)))
1973 1968
1974(defun gdb-make-windows-menu (map) 1969;; FIXME: changing GUD's behavior: bad bad bad!!!
1975 ;; FIXME: This adds to the DBX, PerlDB, ... menu as well :-(
1976 ;; Probably we should create gdb-many-windows-map and put those menus
1977 ;; on that map.
1978 (define-key map [menu-bar displays]
1979 (cons "GDB-Windows" (make-sparse-keymap "GDB-Windows")))
1980 (define-key map [menu-bar displays gdb]
1981 '("Gdb" . gdb-display-gdb-buffer))
1982 (define-key map [menu-bar displays locals]
1983 '("Locals" . gdb-display-locals-buffer))
1984 (define-key map [menu-bar displays registers]
1985 '("Registers" . gdb-display-registers-buffer))
1986 (define-key map [menu-bar displays frames]
1987 '("Stack" . gdb-display-stack-buffer))
1988 (define-key map [menu-bar displays breakpoints]
1989 '("Breakpoints" . gdb-display-breakpoints-buffer))
1990 (define-key map [menu-bar displays display]
1991 '("Display" . gdb-display-display-buffer))
1992 (define-key map [menu-bar displays assembler]
1993 '("Assembler" . gdb-display-assembler-buffer)))
1994
1995(define-key gud-minor-mode-map "\C-c\M-\C-r" 'gdb-display-registers-buffer) 1970(define-key gud-minor-mode-map "\C-c\M-\C-r" 'gdb-display-registers-buffer)
1996(define-key gud-minor-mode-map "\C-c\M-\C-f" 'gdb-display-stack-buffer) 1971(define-key gud-minor-mode-map "\C-c\M-\C-f" 'gdb-display-stack-buffer)
1997(define-key gud-minor-mode-map "\C-c\M-\C-b" 'gdb-display-breakpoints-buffer) 1972(define-key gud-minor-mode-map "\C-c\M-\C-b" 'gdb-display-breakpoints-buffer)
1998 1973
1999(gdb-make-windows-menu gud-minor-mode-map) 1974(let ((menu (make-sparse-keymap "GDB-Windows")))
1975 (define-key gud-minor-mode-map [menu-bar debug displays]
1976 `(menu-item "GDB-Windows" ,menu :visible (memq gud-minor-mode '(gdba))))
1977 (define-key menu [gdb] '("Gdb" . gdb-display-gdb-buffer))
1978 (define-key menu [locals] '("Locals" . gdb-display-locals-buffer))
1979 (define-key menu [registers] '("Registers" . gdb-display-registers-buffer))
1980 (define-key menu [frames] '("Stack" . gdb-display-stack-buffer))
1981 (define-key menu [breakpoints] '("Breakpoints" . gdb-display-breakpoints-buffer))
1982 (define-key menu [display] '("Display" . gdb-display-display-buffer))
1983 (define-key menu [assembler] '("Assembler" . gdb-display-assembler-buffer)))
2000 1984
2001(defun gdb-frame-gdb-buffer () 1985(defun gdb-frame-gdb-buffer ()
2002 (interactive) 1986 (interactive)
2003 (switch-to-buffer-other-frame 1987 (switch-to-buffer-other-frame
2004 (gdb-get-create-instance-buffer 'gdba))) 1988 (gdb-get-create-instance-buffer 'gdba)))
2005 1989
2006(defun gdb-make-frames-menu (map) 1990(let ((menu (make-sparse-keymap "GDB-Frames")))
2007 (define-key map [menu-bar frames] 1991 (define-key gud-minor-mode-map [menu-bar debug frames]
2008 (cons "GDB-Frames" (make-sparse-keymap "GDB-Frames"))) 1992 `(menu-item "GDB-Frames" ,menu :visible (memq gud-minor-mode '(gdba))))
2009 (define-key map [menu-bar frames gdb] 1993 (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))
2010 '("Gdb" . gdb-frame-gdb-buffer)) 1994 (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))
2011 (define-key map [menu-bar frames locals] 1995 (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))
2012 '("Locals" . gdb-frame-locals-buffer)) 1996 (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer))
2013 (define-key map [menu-bar frames registers] 1997 (define-key menu [breakpoints] '("Breakpoints" . gdb-frame-breakpoints-buffer))
2014 '("Registers" . gdb-frame-registers-buffer)) 1998 (define-key menu [display] '("Display" . gdb-frame-display-buffer))
2015 (define-key map [menu-bar frames frames] 1999 (define-key menu [assembler] '("Assembler" . gdb-frame-assembler-buffer)))
2016 '("Stack" . gdb-frame-stack-buffer))
2017 (define-key map [menu-bar frames breakpoints]
2018 '("Breakpoints" . gdb-frame-breakpoints-buffer))
2019 (define-key map [menu-bar frames display]
2020 '("Display" . gdb-frame-display-buffer))
2021 (define-key map [menu-bar frames assembler]
2022 '("Assembler" . gdb-frame-assembler-buffer)))
2023
2024(if (display-graphic-p)
2025 (gdb-make-frames-menu gud-minor-mode-map))
2026 2000
2027(defvar gdb-main-file nil "Source file from which program execution begins.") 2001(defvar gdb-main-file nil "Source file from which program execution begins.")
2028 2002
@@ -2103,11 +2077,13 @@ static char *magick[] = {
2103};" 2077};"
2104"XPM file used for breakpoint icon.") 2078"XPM file used for breakpoint icon.")
2105 2079
2106(setq breakpoint-enabled-icon (find-image 2080(defvar breakpoint-enabled-icon
2107 `((:type xpm :data ,breakpoint-xpm-data)))) 2081 (find-image `((:type xpm :data ,breakpoint-xpm-data)))
2108(setq breakpoint-disabled-icon (find-image 2082 "Icon for enabled breakpoint in display margin")
2109 `((:type xpm :data ,breakpoint-xpm-data 2083(defvar breakpoint-disabled-icon
2110 :conversion laplace)))) 2084 (find-image `((:type xpm :data ,breakpoint-xpm-data
2085 :conversion laplace)))
2086 "Icon for disabled breakpoint in display margin")
2111 2087
2112(defun gdb-quit () 2088(defun gdb-quit ()
2113 "Kill the GUD and ancillary (including source) buffers. 2089 "Kill the GUD and ancillary (including source) buffers.
@@ -2237,28 +2213,28 @@ BUFFER nil or omitted means use the current buffer."
2237(defun gdb-array-visualise () 2213(defun gdb-array-visualise ()
2238 "Visualise arrays and slices using graph program from plotutils." 2214 "Visualise arrays and slices using graph program from plotutils."
2239 (interactive) 2215 (interactive)
2240 (if (and (display-graphic-p) gdb-display-string) 2216 (when (and (display-graphic-p) gdb-display-string)
2241 (let ((n 0) m) 2217 (let ((n 0) m)
2242 (catch 'multi-dimensional 2218 (catch 'multi-dimensional
2243 (while (eq (aref gdb-array-start n) (aref gdb-array-stop n)) 2219 (while (eq (aref gdb-array-start n) (aref gdb-array-stop n))
2244 (setq n (+ n 1))) 2220 (setq n (+ n 1)))
2245 (setq m (+ n 1)) 2221 (setq m (+ n 1))
2246 (while (< m (length gdb-array-start)) 2222 (while (< m (length gdb-array-start))
2247 (if (not (eq (aref gdb-array-start m) (aref gdb-array-stop m))) 2223 (if (not (eq (aref gdb-array-start m) (aref gdb-array-stop m)))
2248 (progn 2224 (progn
2249 (x-popup-dialog 2225 (x-popup-dialog
2250 t `(,(concat "Only one dimensional data can be visualised.\n" 2226 t `(,(concat "Only one dimensional data can be visualised.\n"
2251 "Use an array slice to reduce the number of\n" 2227 "Use an array slice to reduce the number of\n"
2252 "dimensions") ("OK" t))) 2228 "dimensions") ("OK" t)))
2253 (throw 'multi-dimensional nil)) 2229 (throw 'multi-dimensional nil))
2254 (setq m (+ m 1)))) 2230 (setq m (+ m 1))))
2255 (shell-command (concat "echo" gdb-display-string " | graph -a 1 " 2231 (shell-command (concat "echo" gdb-display-string " | graph -a 1 "
2256 (int-to-string (aref gdb-array-start n)) 2232 (int-to-string (aref gdb-array-start n))
2257 " -x " 2233 " -x "
2258 (int-to-string (aref gdb-array-start n)) 2234 (int-to-string (aref gdb-array-start n))
2259 " " 2235 " "
2260 (int-to-string (aref gdb-array-stop n)) 2236 (int-to-string (aref gdb-array-stop n))
2261 " 1 -T X")))))) 2237 " 1 -T X"))))))
2262 2238
2263(defun gdb-delete-display () 2239(defun gdb-delete-display ()
2264 "Delete displayed expression and its frame." 2240 "Delete displayed expression and its frame."
@@ -2338,9 +2314,10 @@ BUFFER nil or omitted means use the current buffer."
2338 'gdb-assembler-buffer-name 2314 'gdb-assembler-buffer-name
2339 'gdb-assembler-mode) 2315 'gdb-assembler-mode)
2340 2316
2341(defvar gdb-assembler-mode-map nil) 2317(defvar gdb-assembler-mode-map
2342(setq gdb-assembler-mode-map (make-keymap)) 2318 (let ((map (make-sparse-keymap)))
2343(suppress-keymap gdb-assembler-mode-map) 2319 (suppress-keymap map)
2320 map))
2344 2321
2345(defun gdb-assembler-mode () 2322(defun gdb-assembler-mode ()
2346 "Major mode for viewing code assembler. 2323 "Major mode for viewing code assembler.
@@ -2408,13 +2385,6 @@ BUFFER nil or omitted means use the current buffer."
2408 (gdb-instance-pending-triggers))) 2385 (gdb-instance-pending-triggers)))
2409 (setq gdb-prev-main-or-pc gdb-main-or-pc)))) 2386 (setq gdb-prev-main-or-pc gdb-main-or-pc))))
2410 2387
2411(defun gdb-delete-line ()
2412 "Delete the current line."
2413(interactive)
2414 (let ((start (progn (beginning-of-line) (point)))
2415 (end (progn (end-of-line) (+ (point) 1))))
2416 (delete-region start end)))
2417
2418(provide 'gdb-ui) 2388(provide 'gdb-ui)
2419 2389
2420;;; gdb-ui.el ends here 2390;;; gdb-ui.el ends here