It would appear that some code I wrote in 1997 to use tempo.el in cc-mode is breaking JDE. The relevant sections are in a file I have called cctempo.el (adds boilerplate to new C files, provides some functionality like jde-javadoc-autodoc-at-line to cc-mode) and uses tempo-user-elements. Commenting out one line (indicated below) to avoid adding to tempo-user-elements make everything work:
;;; ... lots of code omitted.... (defun cctempo:tempo-user-elements (arg) "cctempo elements for cc-mode (C/C++)" (cond ((eq arg 'user) (format "%-20s" (user-full-name))) ((eq arg 'ifndef-header) (let ((tag (mapconcat '(lambda (arg) arg) (split-string (file-name-nondirectory (buffer-file-name)) "[^A-Za-z0-9_]") "_"))) (format "#ifndef __%s\n#define __%s\n" tag tag))) ((eq arg 'endif-header) (let ((tag (mapconcat '(lambda (arg) arg) (split-string (file-name-nondirectory (buffer-file-name)) "[^A-Za-z0-9_]") "_"))) (format "#endif /* __%s */\n" tag tag))) ((eq arg 'function) (let (end) (save-excursion (end-of-defun) (beginning-of-defun) (if (not (looking-at "{")) "" (backward-sexp) ;; Broken for backward, works fine for forward --- why? ;; (re-search-backward "\\s_\\sw") (skip-chars-backward "\t\n\r ") (setq end (point)) (backward-sexp) (buffer-substring (point) end))))) ((eq arg 'arglist) (let (end) (save-excursion (end-of-defun) (beginning-of-defun) (if (not (looking-at "{")) "" ;; Broken for backward, works fine for forward --- why? ;; (re-search-backward "\\s_\\sw") (skip-chars-backward "\t\n\r ") (setq end (point)) (backward-sexp) (cctempo:format-arglist (buffer-substring (1+ (point)) (1- end))))))) (t ""))) ;; ... more code omitted ... ;; adding these break JDE mode jde-javadoc-autodoc-at-line (add-to-list 'tempo-user-elements 'cctempo:tempo-user-elements) I'm now trying to read through tempo to figure out why this breaks things.... regards, roland -- PGP Key ID: 66 BC 3B CD Roland B. Roberts, PhD RL Enterprises [EMAIL PROTECTED] 6818 Madeline Court [EMAIL PROTECTED] Brooklyn, NY 11220