changeset 94483:3a51a1333f0f

(gdb-frame-handler-1): Make overlay arrow hollow if not in innermost frame.
author Nick Roberts <nickrob@snap.net.nz>
date Wed, 30 Apr 2008 02:27:52 +0000
parents 67355325dc88
children a014af844313
files lisp/progmodes/gdb-ui.el
diffstat 1 files changed, 20 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/gdb-ui.el	Wed Apr 30 02:24:56 2008 +0000
+++ b/lisp/progmodes/gdb-ui.el	Wed Apr 30 02:27:52 2008 +0000
@@ -2288,11 +2288,13 @@
 	      (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 @@
       (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.