From 37c7234307a4c14dc41fbf8a430700d31c8c8b6d Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Wed, 30 Apr 2008 02:27:52 +0000 Subject: [PATCH] (gdb-frame-handler-1): Make overlay arrow hollow if not in innermost frame. --- lisp/progmodes/gdb-ui.el | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index a4e53c47fe1..d96dc4b7711 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el @@ -2288,11 +2288,13 @@ corresponding to the mode line clicked." (forward-line 1)) (forward-line -1) (when (looking-at "(More stack frames follow...)") - (add-text-properties (match-beginning 0) (match-end 0) - '(mouse-face highlight - gdb-max-frames t - help-echo - "mouse-2, RET: customize gdb-max-frames to see more frames"))))) + (add-text-properties + (match-beginning 0) (match-end 0) + '(mouse-face highlight + gdb-max-frames t + help-echo + "mouse-2, RET: customize gdb-max-frames to see more frames" + ))))) (when gdb-look-up-stack (goto-char (point-min)) (when (re-search-forward "\\(\\S-+?\\):\\([0-9]+\\)" nil t) @@ -3645,6 +3647,19 @@ from=\"\\(.*?\\)\"\\)") (if (gdb-get-buffer 'gdb-assembler-buffer) (with-current-buffer (gdb-get-buffer 'gdb-assembler-buffer) (setq mode-name (concat "Machine:" gdb-selected-frame))))) + (if (and (match-string 4) (match-string 5) gud-overlay-arrow-position) + (let ((buffer (marker-buffer gud-overlay-arrow-position)) + (position (marker-position gud-overlay-arrow-position))) + (when (and buffer + (string-equal (file-name-nondirectory + (buffer-file-name buffer)) + (file-name-nondirectory (match-string 4)))) + (with-current-buffer buffer + (setq fringe-indicator-alist + (if (string-equal gdb-frame-number "0") + nil + '((overlay-arrow . hollow-right-triangle)))) + (set-marker gud-overlay-arrow-position position))))) (gdb-invalidate-assembler)) ; Uses "-var-list-children --all-values". Needs GDB 6.4 onwards. -- 2.39.5