Mercurial > emacs
changeset 94452:149436454788
Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1132
author | Miles Bader <miles@gnu.org> |
---|---|
date | Tue, 29 Apr 2008 01:03:43 +0000 |
parents | 760ef541936c (current diff) 7fd5e261aca4 (diff) |
children | b354d19386f9 |
files | lisp/ChangeLog lisp/progmodes/gdb-ui.el |
diffstat | 2 files changed, 45 insertions(+), 39 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Apr 29 01:03:33 2008 +0000 +++ b/lisp/ChangeLog Tue Apr 29 01:03:43 2008 +0000 @@ -1,3 +1,10 @@ +2008-04-28 Nick Roberts <nickrob@snap.net.nz> + + * progmodes/gdb-ui.el (gdb-info-breakpoints-custom): Make breakpoint + icons work for assembler, i.e. FILE.s, FILE.S (not disassembly). + (gdb-goto-breakpoint): Likewise for visiting breakpoints. + (gdb-assembler-custom): Be careful not to match other addresses. + 2008-04-29 Jason Rumney <jasonr@gnu.org> * battery.el (battery-status-function): Use w32-battery-status
--- a/lisp/progmodes/gdb-ui.el Tue Apr 29 01:03:33 2008 +0000 +++ b/lisp/progmodes/gdb-ui.el Tue Apr 29 01:03:43 2008 +0000 @@ -1928,33 +1928,32 @@ (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer) (save-excursion (let ((buffer-read-only nil)) - (goto-char (point-min)) - (while (< (point) (- (point-max) 1)) - (forward-line 1) - (if (looking-at gdb-breakpoint-regexp) - (progn - (setq bptno (or (match-string 1) (match-string 2))) - (setq flag (char-after (match-beginning 3))) - (if (match-string 1) - (setq gdb-parent-bptno-enabled (eq flag ?y))) - (add-text-properties - (match-beginning 3) (match-end 3) - (if (eq flag ?y) - '(face font-lock-warning-face) - '(face font-lock-type-face))) - (let ((bl (point)) - (el (line-end-position))) - (if (re-search-forward " in \\(.*\\) at\\s-+" el t) - (progn - (add-text-properties - (match-beginning 1) (match-end 1) - '(face font-lock-function-name-face)) - (looking-at "\\(\\S-+\\):\\([0-9]+\\)") + (goto-char (point-min)) + (while (< (point) (- (point-max) 1)) + (forward-line 1) + (if (looking-at gdb-breakpoint-regexp) + (progn + (setq bptno (or (match-string 1) (match-string 2))) + (setq flag (char-after (match-beginning 3))) + (if (match-string 1) + (setq gdb-parent-bptno-enabled (eq flag ?y))) + (add-text-properties + (match-beginning 3) (match-end 3) + (if (eq flag ?y) + '(face font-lock-warning-face) + '(face font-lock-type-face))) + (let ((bl (point)) + (el (line-end-position))) + (when (re-search-forward " in \\(.*\\) at" el t) + (add-text-properties + (match-beginning 1) (match-end 1) + '(face font-lock-function-name-face))) + (if (re-search-forward ".*\\s-+\\(\\S-+\\):\\([0-9]+\\)$") (let ((line (match-string 2)) (file (match-string 1))) (add-text-properties bl el - '(mouse-face highlight - help-echo "mouse-2, RET: visit breakpoint")) + '(mouse-face highlight + help-echo "mouse-2, RET: visit breakpoint")) (unless (file-exists-p file) (setq file (cdr (assoc bptno gdb-location-alist)))) (if (and file @@ -1975,20 +1974,20 @@ (gdb-enqueue-input (list (concat gdb-server-prefix "info source\n") `(lambda () (gdb-get-location - ,bptno ,line ,flag))))))) - (if (re-search-forward - "<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>" - el t) + ,bptno ,line ,flag)))))) + (if (re-search-forward + "<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>" + el t) + (add-text-properties + (match-beginning 1) (match-end 1) + '(face font-lock-function-name-face)) + (end-of-line) + (re-search-backward "\\s-\\(\\S-*\\)" + bl t) (add-text-properties (match-beginning 1) (match-end 1) - '(face font-lock-function-name-face)) - (end-of-line) - (re-search-backward "\\s-\\(\\S-*\\)" - bl t) - (add-text-properties - (match-beginning 1) (match-end 1) - '(face font-lock-variable-name-face))))))) - (end-of-line)))))) + '(face font-lock-variable-name-face))))))) + (end-of-line)))))) (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom)) ;; Breakpoints buffer is always present. Hack to just update @@ -2201,7 +2200,7 @@ (if event (posn-set-point (event-end event))) (save-excursion (beginning-of-line 1) - (if (looking-at "\\([0-9]+\\.?[0-9]*\\) .+ in .+ at\\s-+\\(\\S-+\\):\\([0-9]+\\)") + (if (looking-at "\\([0-9]+\\.?[0-9]*\\) .*\\s-+\\(\\S-+\\):\\([0-9]+\\)$") (let ((bptno (match-string 1)) (file (match-string 2)) (line (match-string 3))) @@ -2218,7 +2217,7 @@ (error "No location specified.")))) -;; Frames buffer. This displays a perpetually correct bactracktrace +;; Frames buffer. This displays a perpetually correct backtrace ;; (from the command `where'). ;; ;; Alas, if your stack is deep, it is costly. @@ -3475,7 +3474,7 @@ (with-current-buffer buffer (save-excursion (goto-char (point-min)) - (if (search-forward address nil t) + (if (re-search-forward (concat "^0x0*" address) nil t) (gdb-put-breakpoint-icon (eq flag ?y) bptno))))))) (if (not (equal gdb-pc-address "main")) (with-current-buffer buffer