From 7f359a2155d61726a9c14071e163a5319fc23dcf Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 29 Jul 1993 22:35:23 +0000 Subject: [PATCH] (dbx): Use %d in gud-break. (gud-format-command): Support %d. Delete spurious progns. --- lisp/gud.el | 71 ++++++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/lisp/gud.el b/lisp/gud.el index abf515d454c..ada164633b3 100644 --- a/lisp/gud.el +++ b/lisp/gud.el @@ -84,7 +84,8 @@ This association list has elements of the form optional doc string DOC. Certain %-escapes in the string arguments are interpreted specially if present. These are: - %f name of current source file. + %f name (without directory) of current source file. + %d directory of current source file. %l number of current source line %e text of the C lvalue or function-call expression surrounding point. %a text of the hexadecimal address surrounding point @@ -330,7 +331,7 @@ and source-file directory for your debugger." (gud-common-init command-line) - (gud-def gud-break "file \"%f\"\nstop at %l" + (gud-def gud-break "file \"%d%f\"\nstop at %l" "\C-b" "Set breakpoint at current line.") ;; (gud-def gud-break "stop at \"%f\":%l" ;; "\C-b" "Set breakpoint at current line.") @@ -723,42 +724,44 @@ Obeying it means displaying in another window the specified file and line." (defun gud-format-command (str arg) (let ((insource (not (eq (current-buffer) gud-comint-buffer)))) (if (string-match "\\(.*\\)%f\\(.*\\)" str) - (progn - (setq str (concat - (substring str (match-beginning 1) (match-end 1)) - (file-name-nondirectory (if insource - (buffer-file-name) - (car gud-last-frame))) - (substring str (match-beginning 2) (match-end 2)))))) + (setq str (concat + (substring str (match-beginning 1) (match-end 1)) + (file-name-nondirectory (if insource + (buffer-file-name) + (car gud-last-frame))) + (substring str (match-beginning 2) (match-end 2))))) + (if (string-match "\\(.*\\)%d\\(.*\\)" str) + (setq str (concat + (substring str (match-beginning 1) (match-end 1)) + (file-name-directory (if insource + (buffer-file-name) + (car gud-last-frame))) + (substring str (match-beginning 2) (match-end 2))))) (if (string-match "\\(.*\\)%l\\(.*\\)" str) - (progn - (setq str (concat - (substring str (match-beginning 1) (match-end 1)) - (if insource - (save-excursion - (beginning-of-line) - (save-restriction (widen) - (1+ (count-lines 1 (point))))) - (cdr gud-last-frame)) - (substring str (match-beginning 2) (match-end 2)))))) + (setq str (concat + (substring str (match-beginning 1) (match-end 1)) + (if insource + (save-excursion + (beginning-of-line) + (save-restriction (widen) + (1+ (count-lines 1 (point))))) + (cdr gud-last-frame)) + (substring str (match-beginning 2) (match-end 2))))) (if (string-match "\\(.*\\)%e\\(.*\\)" str) - (progn - (setq str (concat - (substring str (match-beginning 1) (match-end 1)) - (find-c-expr) - (substring str (match-beginning 2) (match-end 2)))))) + (setq str (concat + (substring str (match-beginning 1) (match-end 1)) + (find-c-expr) + (substring str (match-beginning 2) (match-end 2))))) (if (string-match "\\(.*\\)%a\\(.*\\)" str) - (progn - (setq str (concat - (substring str (match-beginning 1) (match-end 1)) - (gud-read-address) - (substring str (match-beginning 2) (match-end 2)))))) + (setq str (concat + (substring str (match-beginning 1) (match-end 1)) + (gud-read-address) + (substring str (match-beginning 2) (match-end 2))))) (if (string-match "\\(.*\\)%p\\(.*\\)" str) - (progn - (setq str (concat - (substring str (match-beginning 1) (match-end 1)) - (if arg (int-to-string arg) "") - (substring str (match-beginning 2) (match-end 2)))))) + (setq str (concat + (substring str (match-beginning 1) (match-end 1)) + (if arg (int-to-string arg) "") + (substring str (match-beginning 2) (match-end 2))))) ) str ) -- 2.39.5