Mercurial > emacs
comparison lisp/progmodes/gud.el @ 70248:4fc61ee2deb2
(gud-comint-buffer): Move forward to stop byte compiler warnings.
(gud-basic-call, gud-find-expr): Let user select an expression
for printing. Print expression as well as value in GUD buffer.
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Wed, 26 Apr 2006 23:03:56 +0000 |
parents | e6c80fdc0101 |
children | da2f6762c09a |
comparison
equal
deleted
inserted
replaced
70247:039ae41bde1a | 70248:4fc61ee2deb2 |
---|---|
80 (defun gud-marker-filter (&rest args) | 80 (defun gud-marker-filter (&rest args) |
81 (apply gud-marker-filter args)) | 81 (apply gud-marker-filter args)) |
82 | 82 |
83 (defvar gud-minor-mode nil) | 83 (defvar gud-minor-mode nil) |
84 (put 'gud-minor-mode 'permanent-local t) | 84 (put 'gud-minor-mode 'permanent-local t) |
85 | |
86 (defvar gud-comint-buffer nil) | |
85 | 87 |
86 (defvar gud-keep-buffer nil) | 88 (defvar gud-keep-buffer nil) |
87 | 89 |
88 (defun gud-symbol (sym &optional soft minor-mode) | 90 (defun gud-symbol (sym &optional soft minor-mode) |
89 "Return the symbol used for SYM in MINOR-MODE. | 91 "Return the symbol used for SYM in MINOR-MODE. |
738 (defvar gud-gdb-fetch-lines-break) | 740 (defvar gud-gdb-fetch-lines-break) |
739 | 741 |
740 ;; The completion list is constructed by the process filter. | 742 ;; The completion list is constructed by the process filter. |
741 (defvar gud-gdb-fetched-lines) | 743 (defvar gud-gdb-fetched-lines) |
742 | 744 |
743 (defvar gud-comint-buffer nil) | |
744 | |
745 (defun gud-gdb-complete-command (&optional command a b) | 745 (defun gud-gdb-complete-command (&optional command a b) |
746 "Perform completion on the GDB command preceding point. | 746 "Perform completion on the GDB command preceding point. |
747 This is implemented using the GDB `complete' command which isn't | 747 This is implemented using the GDB `complete' command which isn't |
748 available with older versions of GDB." | 748 available with older versions of GDB." |
749 (interactive) | 749 (interactive) |
2887 ;; Arrange for the current prompt to get deleted. | 2887 ;; Arrange for the current prompt to get deleted. |
2888 (save-excursion | 2888 (save-excursion |
2889 (set-buffer gud-comint-buffer) | 2889 (set-buffer gud-comint-buffer) |
2890 (save-restriction | 2890 (save-restriction |
2891 (widen) | 2891 (widen) |
2892 (goto-char (process-mark proc)) | 2892 (if (marker-position gud-delete-prompt-marker) |
2893 (forward-line 0) | 2893 ;; We get here when printing an expression. |
2894 (goto-char gud-delete-prompt-marker) | |
2895 (goto-char (process-mark proc)) | |
2896 (forward-line 0)) | |
2894 (if (looking-at comint-prompt-regexp) | 2897 (if (looking-at comint-prompt-regexp) |
2895 (set-marker gud-delete-prompt-marker (point))) | 2898 (set-marker gud-delete-prompt-marker (point))) |
2896 (if (memq gud-minor-mode '(gdbmi gdba)) | 2899 (if (memq gud-minor-mode '(gdbmi gdba)) |
2897 (apply comint-input-sender (list proc command)) | 2900 (apply comint-input-sender (list proc command)) |
2898 (process-send-string proc (concat command "\n"))))))) | 2901 (process-send-string proc (concat command "\n"))))))) |
2909 ;; around point. | 2912 ;; around point. |
2910 | 2913 |
2911 (defvar gud-find-expr-function 'gud-find-c-expr) | 2914 (defvar gud-find-expr-function 'gud-find-c-expr) |
2912 | 2915 |
2913 (defun gud-find-expr (&rest args) | 2916 (defun gud-find-expr (&rest args) |
2914 (apply gud-find-expr-function args)) | 2917 (let ((expr (if (and transient-mark-mode mark-active) |
2918 (buffer-substring (region-beginning) (region-end)) | |
2919 (apply gud-find-expr-function args)))) | |
2920 (save-match-data | |
2921 (if (string-match "\n" expr) | |
2922 (error "Expression must not include a newline")) | |
2923 (with-current-buffer gud-comint-buffer | |
2924 (save-excursion | |
2925 (goto-char (process-mark (get-buffer-process gud-comint-buffer))) | |
2926 (forward-line 0) | |
2927 (when (looking-at comint-prompt-regexp) | |
2928 (set-marker gud-delete-prompt-marker (point)) | |
2929 (set-marker-insertion-type gud-delete-prompt-marker t)) | |
2930 (insert (concat expr " = "))))) | |
2931 expr)) | |
2915 | 2932 |
2916 ;; The next eight functions are hacked from gdbsrc.el by | 2933 ;; The next eight functions are hacked from gdbsrc.el by |
2917 ;; Debby Ayers <ayers@asc.slb.com>, | 2934 ;; Debby Ayers <ayers@asc.slb.com>, |
2918 ;; Rich Schaefer <schaefer@asc.slb.com> Schlumberger, Austin, Tx. | 2935 ;; Rich Schaefer <schaefer@asc.slb.com> Schlumberger, Austin, Tx. |
2919 | 2936 |