aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1995-01-22 16:44:58 +0000
committerRichard M. Stallman1995-01-22 16:44:58 +0000
commit23a3aa0a12ee7ca2319ad1bcf5da20f88706be64 (patch)
tree229e80ff1b28917950e334cea57d4937f8d347b3
parentfcdeb5d9170830bf9fc183082debcd50abcb483a (diff)
downloademacs-23a3aa0a12ee7ca2319ad1bcf5da20f88706be64.tar.gz
emacs-23a3aa0a12ee7ca2319ad1bcf5da20f88706be64.zip
(gdb): In gud-remove, specify the source file.
(gud-new-keymap): New function. (gud-xdb-find-file, gud-dbx-find-file, gud-sdb-find-file, gud-gdb-find-file): Use it for keymap inheritance. (gud-mode): Use gud-new-keymap, so inherit keymaps..
-rw-r--r--lisp/gud.el27
1 files changed, 18 insertions, 9 deletions
diff --git a/lisp/gud.el b/lisp/gud.el
index 6b0596f6185..5d321369cf1 100644
--- a/lisp/gud.el
+++ b/lisp/gud.el
@@ -228,14 +228,17 @@ we're in the GUD buffer)."
228 228
229 output)) 229 output))
230 230
231(defun gud-new-keymap (map)
232 "Return a new keymap which inherits from MAP and has name `Gud'."
233 (nconc (make-sparse-keymap "Gud") map))
234
231(defun gud-gdb-find-file (f) 235(defun gud-gdb-find-file (f)
232 (save-excursion 236 (save-excursion
233 (let ((buf (find-file-noselect f))) 237 (let ((buf (find-file-noselect f)))
234 (set-buffer buf) 238 (set-buffer buf)
239 (use-local-map (gud-new-keymap (current-local-map)))
235 (define-key (current-local-map) [menu-bar debug] 240 (define-key (current-local-map) [menu-bar debug]
236 ;; The copy-keymap here avoids redefining the gud-menu-map 241 (cons "Gud" (gud-new-keymap gud-menu-map)))
237 ;; items in other buffers.
238 (cons "Gud" (copy-keymap gud-menu-map)))
239 (local-set-key [menu-bar debug tbreak] 242 (local-set-key [menu-bar debug tbreak]
240 '("Temporary breakpoint" . gud-tbreak)) 243 '("Temporary breakpoint" . gud-tbreak))
241 (local-set-key [menu-bar debug finish] '("Finish function" . gud-finish)) 244 (local-set-key [menu-bar debug finish] '("Finish function" . gud-finish))
@@ -269,7 +272,7 @@ and source-file directory for your debugger."
269 272
270 (gud-def gud-break "break %f:%l" "\C-b" "Set breakpoint at current line.") 273 (gud-def gud-break "break %f:%l" "\C-b" "Set breakpoint at current line.")
271 (gud-def gud-tbreak "tbreak %f:%l" "\C-t" "Set temporary breakpoint at current line.") 274 (gud-def gud-tbreak "tbreak %f:%l" "\C-t" "Set temporary breakpoint at current line.")
272 (gud-def gud-remove "clear %l" "\C-d" "Remove breakpoint at current line") 275 (gud-def gud-remove "clear %f:%l" "\C-d" "Remove breakpoint at current line")
273 (gud-def gud-step "step %p" "\C-s" "Step one source line with display.") 276 (gud-def gud-step "step %p" "\C-s" "Step one source line with display.")
274 (gud-def gud-stepi "stepi %p" "\C-i" "Step one instruction with display.") 277 (gud-def gud-stepi "stepi %p" "\C-i" "Step one instruction with display.")
275 (gud-def gud-next "next %p" "\C-n" "Step one line (skip functions).") 278 (gud-def gud-next "next %p" "\C-n" "Step one line (skip functions).")
@@ -455,7 +458,9 @@ available with older versions of GDB."
455 (find-tag-noselect f) 458 (find-tag-noselect f)
456 (find-file-noselect f)))) 459 (find-file-noselect f))))
457 (set-buffer buf) 460 (set-buffer buf)
458 (define-key (current-local-map) [menu-bar debug] (cons "Gud" (copy-keymap gud-menu-map))) 461 (use-local-map (gud-new-keymap (current-local-map)))
462 (define-key (current-local-map) [menu-bar debug]
463 (cons "Gud" (gud-new-keymap gud-menu-map)))
459 (local-set-key [menu-bar debug tbreak] '("Temporary breakpoint" . gud-tbreak)) 464 (local-set-key [menu-bar debug tbreak] '("Temporary breakpoint" . gud-tbreak))
460 buf))) 465 buf)))
461 466
@@ -687,7 +692,9 @@ This works in IRIX 4, 5 and 6.")
687 (save-excursion 692 (save-excursion
688 (let ((buf (find-file-noselect f))) 693 (let ((buf (find-file-noselect f)))
689 (set-buffer buf) 694 (set-buffer buf)
690 (local-set-key [menu-bar debug] (cons "Gud" (copy-keymap gud-menu-map))) 695 (use-local-map (gud-new-keymap (current-local-map)))
696 (define-key (current-local-map) [menu-bar debug]
697 (cons "Gud" (gud-new-keymap gud-menu-map)))
691 (local-set-key [menu-bar debug up] '("Up stack" . gud-up)) 698 (local-set-key [menu-bar debug up] '("Up stack" . gud-up))
692 (local-set-key [menu-bar debug down] '("Down stack" . gud-down)) 699 (local-set-key [menu-bar debug down] '("Down stack" . gud-down))
693 buf))) 700 buf)))
@@ -817,7 +824,9 @@ containing the executable being debugged.")
817 (if realf 824 (if realf
818 (let ((buf (find-file-noselect realf))) 825 (let ((buf (find-file-noselect realf)))
819 (set-buffer buf) 826 (set-buffer buf)
820 (local-set-key [menu-bar debug] (cons "Gud" (copy-keymap gud-menu-map))) 827 (use-local-map (gud-new-keymap (current-local-map)))
828 (define-key (current-local-map) [menu-bar debug]
829 (cons "Gud" (gud-new-keymap gud-menu-map)))
821 (local-set-key [menu-bar debug tbreak] 830 (local-set-key [menu-bar debug tbreak]
822 '("Temporary breakpoint" . gud-tbreak)) 831 '("Temporary breakpoint" . gud-tbreak))
823 (local-set-key [menu-bar debug finish] 832 (local-set-key [menu-bar debug finish]
@@ -1072,10 +1081,10 @@ comint mode, which see."
1072 (setq major-mode 'gud-mode) 1081 (setq major-mode 'gud-mode)
1073 (setq mode-name "Debugger") 1082 (setq mode-name "Debugger")
1074 (setq mode-line-process '(":%s")) 1083 (setq mode-line-process '(":%s"))
1075 (use-local-map (copy-keymap comint-mode-map)) 1084 (use-local-map (gud-new-keymap comint-mode-map))
1076 (define-key (current-local-map) "\C-c\C-l" 'gud-refresh) 1085 (define-key (current-local-map) "\C-c\C-l" 'gud-refresh)
1077 (define-key (current-local-map) [menu-bar debug] 1086 (define-key (current-local-map) [menu-bar debug]
1078 (cons "Gud" gud-menu-map)) 1087 (cons "Gud" (gud-new-keymap gud-menu-map)))
1079 (make-local-variable 'gud-last-frame) 1088 (make-local-variable 'gud-last-frame)
1080 (setq gud-last-frame nil) 1089 (setq gud-last-frame nil)
1081 (make-local-variable 'comint-prompt-regexp) 1090 (make-local-variable 'comint-prompt-regexp)