Mercurial > emacs
changeset 98806:675bbbe81826
(c-defun-name): Make it work for "struct foo bar [] = { ...".
author | Alan Mackenzie <acm@muc.de> |
---|---|
date | Fri, 17 Oct 2008 20:24:45 +0000 |
parents | e6b6e66ef83f |
children | 7b4b534abee3 |
files | lisp/progmodes/cc-cmds.el |
diffstat | 1 files changed, 8 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/cc-cmds.el Fri Oct 17 20:24:02 2008 +0000 +++ b/lisp/progmodes/cc-cmds.el Fri Oct 17 20:24:45 2008 +0000 @@ -1704,17 +1704,16 @@ ;; Pick out the defun name, according to the type of defun. (cond + ;; struct, union, enum, or similar: ((and (looking-at c-type-prefix-key) (progn (c-forward-token-2 2) ; over "struct foo " - (eq (char-after) ?\{))) - ;; struct, union, enum, or similar: - (c-backward-syntactic-ws) - (setq name-end (point)) - (buffer-substring-no-properties - (progn - (c-backward-token-2 2) - (point)) - name-end)) + (or (eq (char-after) ?\{) + (looking-at c-symbol-key)))) ; "struct foo bar ..." + (save-match-data (c-forward-token-2)) + (when (eq (char-after) ?\{) + (c-backward-token-2) + (looking-at c-symbol-key)) + (match-string-no-properties 0)) ((looking-at "DEFUN\\_>") ;; DEFUN ("file-name-directory", Ffile_name_directory, Sfile_name_directory, ...) ==> Ffile_name_directory