Mercurial > emacs
changeset 52511:261a321c464e
(gud-find-class): Make jdb work again since
cc-mode changed the syntactic information.
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Mon, 15 Sep 2003 19:14:00 +0000 |
parents | a891bc3b4158 |
children | c7ef303c76f2 |
files | lisp/progmodes/gud.el |
diffstat | 1 files changed, 12 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/gud.el Mon Sep 15 19:08:21 2003 +0000 +++ b/lisp/progmodes/gud.el Mon Sep 15 19:14:00 2003 +0000 @@ -2817,8 +2817,13 @@ (save-match-data (let ((cplist (append gud-jdb-sourcepath gud-jdb-classpath)) (fbuffer (get-file-buffer f)) - class-found) + syntax-symbol syntax-point class-found) (setq f (file-name-sans-extension (file-truename f))) + ;; Syntax-symbol returns the symbol of the *first* element + ;; in the syntactical analysis result list, syntax-point + ;; returns the buffer position of same + (fset 'syntax-symbol (lambda (x) (c-langelem-sym (car x)))) + (fset 'syntax-point (lambda (x) (c-langelem-pos (car x)))) ;; Search through classpath list for an entry that is ;; contained in f (while (and cplist (not class-found)) @@ -2841,17 +2846,17 @@ ;; with the 'topmost-intro symbol, there may be ;; nested classes... (while (not (eq 'topmost-intro - (car (car (c-guess-basic-syntax))))) + (syntax-symbol (c-guess-basic-syntax)))) ;; Check if the current position c-syntactic ;; analysis has 'inclass (setq syntax (c-guess-basic-syntax)) (while - (and (not (eq 'inclass (car (car syntax)))) + (and (not (eq 'inclass (syntax-symbol syntax))) (cdr syntax)) (setq syntax (cdr syntax))) - (if (eq 'inclass (car (car syntax))) + (if (eq 'inclass (syntax-symbol syntax)) (progn - (goto-char (cdr (car syntax))) + (goto-char (syntax-point syntax)) ;; Now we're at the beginning of a class ;; definition. Find class name (looking-at @@ -2860,9 +2865,9 @@ (append (list (match-string-no-properties 1)) nclass))) (setq syntax (c-guess-basic-syntax)) - (while (and (not (cdr (car syntax))) (cdr syntax)) + (while (and (not (syntax-point syntax)) (cdr syntax)) (setq syntax (cdr syntax))) - (goto-char (cdr (car syntax))) + (goto-char (syntax-point syntax)) )) (string-match (concat (car nclass) "$") class-found) (setq class-found