From a5bad486ccfcb53322c2f37daeb94059d21cb3fc Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Wed, 27 Apr 2005 21:59:43 +0000 Subject: [PATCH] (cc-create-define-alist): New function. (cc-define-alist): New variable. (c-mode): Make it local and set it. --- lisp/progmodes/cc-mode.el | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index eaa798217cf..b464c1483b1 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el @@ -639,6 +639,21 @@ Note that the style variables are always made local to the buffer." ;;;###autoload (add-to-list 'auto-mode-alist '("\\.y\\(acc\\)?\\'" . c-mode)) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.lex\\'" . c-mode)) +(defvar cc-define-alist nil "Alist of #define directives for GUD tooltips.") + +(defun cc-create-define-alist () + (let* ((file (buffer-file-name)) + (output + (with-output-to-string + (with-current-buffer standard-output + (call-process "/lib/cpp" + file t nil "-dM")))) + (define-list (split-string output "\n" t)) + (name)) + (dolist (define define-list) + (setq name (nth 1 (split-string define "[( ]"))) + (push (cons name define) cc-define-alist)))) + ;;;###autoload (defun c-mode () "Major mode for editing K&R and ANSI C code. @@ -662,11 +677,13 @@ Key bindings: mode-name "C" local-abbrev-table c-mode-abbrev-table abbrev-mode t) + (make-local-variable 'cc-define-alist) (use-local-map c-mode-map) (c-init-language-vars-for 'c-mode) (c-common-init 'c-mode) (easy-menu-add c-c-menu) (cc-imenu-init cc-imenu-c-generic-expression) + (cc-create-define-alist) (run-mode-hooks 'c-mode-common-hook 'c-mode-hook) (c-update-modeline)) -- 2.39.2