;ELC   
;;; Compiled by apenwarr@gmail.com on Tue May 21 02:34:17 2013
;;; from file /usr/local/google/prism/kvmtc/build/host-autoconf-2.65/lib/emacs/elc.28768/autoconf-mode.el
;;; in Emacs version 23.3.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\301B\302\301!\204 \303\301\304\"\210\301\207" [current-load-list autoconf-font-lock-keywords default-boundp set-default (("\\bdnl \\(.*\\)" 1 font-lock-comment-face t) ("\\$[0-9*#@]" . font-lock-variable-name-face) ("\\b\\(m4_\\)?\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|gnu\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(exit\\|wrap\\)\\|aketemp\\|kstemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|un\\(d\\(efine\\|ivert\\)\\|ix\\)\\)\\b" . font-lock-keyword-face) ("^\\(\\(m4_\\)?define\\(_default\\)?\\|A._DEFUN\\|m4_defun\\(_once\\|_init\\)?\\)(\\[?\\([A-Za-z0-9_]+\\)" 5 font-lock-function-name-face) "default font-lock-keywords")] 3)
#@36 syntax table used in autoconf mode
(defvar autoconf-mode-syntax-table nil (#$ . 1515))
(byte-code "\303 \304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\304\325\326#\210\327	B\330\327!\204R \331\327\332 \333\n\334\335#\210\n)\"\210\303\207" [autoconf-mode-syntax-table current-load-list map make-syntax-table modify-syntax-entry 34 "\"" 35 "<\n" 10 ">#" 40 "()" 41 ")(" 91 "(]" 93 ")[" 42 "." 95 "_" autoconf-mode-map default-boundp set-default make-sparse-keymap define-key [(control c) (\;)] comment-region] 6)
#@107 Autoconf value for `add-log-current-defun-function'.
This tells add-log.el how to find the current macro.
(defalias 'autoconf-current-defun #[nil "\212\300\301\302\303#\205 \304\224\304\225{)\207" [re-search-backward "^\\(m4_define\\(_default\\)?\\|m4_defun\\(_once\\|_init\\)?\\|A._DEFUN\\)(\\[*\\([A-Za-z0-9_]+\\)" nil t 4] 4 (#$ . 2135)])
#@78 A major-mode to edit Autoconf files like configure.ac.
\{autoconf-mode-map}

(defalias 'autoconf-mode #[nil "\306 \210\307!\210\310\301!\210\311\310\302!\210\312\310\303!\210\313\310\314!\210\315\316\317\f\320!\210\321\322!\207" [autoconf-mode-map add-log-current-defun-function comment-start parse-sexp-ignore-comments major-mode mode-name kill-all-local-variables use-local-map make-local-variable autoconf-current-defun "# " t font-lock-defaults autoconf-mode "Autoconf" (autoconf-font-lock-keywords nil) set-syntax-table run-hooks autoconf-mode-hook autoconf-mode-syntax-table] 2 (#$ . 2484) nil])
(provide 'autoconf-mode)
