;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:50:30 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/progmodes/cmacexp.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`cmacexp.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\300\301!\210\302\303!\210\304\305\306\307\310\311%\207" [require cc-mode provide cmacexp custom-declare-group c-macro nil "Expand C macros in a region." :group c] 6)
#@72 *Non-nil means shrink the *Macroexpansion* window to fit its contents.
(custom-declare-variable 'c-macro-shrink-window-flag 'nil '(#$ . -805) :type 'boolean :group 'c-macro)
#@68 *Non-nil makes `c-macro-expand' prompt for preprocessor arguments.
(custom-declare-variable 'c-macro-prompt-flag 'nil '(#$ . -985) :type 'boolean :group 'c-macro)
#@157 The preprocessor used by the cmacexp package.

If you change this, be sure to preserve the `-C' (don't strip comments)
option, or to set an equivalent one.
(custom-declare-variable 'c-macro-preprocessor '(cond ((eq system-type 'ms-dos) "gcc -E -C -o - -") ((and (string-match "^[^-]*-[^-]*-\\(solaris\\|sunos5\\)" system-configuration) (file-exists-p "/opt/SUNWspro/SC3.0.1/bin/acomp")) "/opt/SUNWspro/SC3.0.1/bin/acomp -C -E") ((file-exists-p "/usr/ccs/lib/cpp") "/usr/ccs/lib/cpp -C") (t "/lib/cpp -C")) '(#$ . 1155) :type 'string :group 'c-macro)
#@47 *Preprocessor flags used by `c-macro-expand'.
(custom-declare-variable 'c-macro-cppflags '"" '(#$ . -1711) :type 'string :group 'c-macro)
(byte-code "\301B\302\301\207" [current-load-list c-macro-buffer-name "*Macroexpansion*"] 2)
#@434 Expand C macros in the region, using the C preprocessor.
Normally display output in temp buffer, but
prefix arg means replace the region with it.

`c-macro-preprocessor' specifies the preprocessor to use.
Prompt for arguments to the preprocessor (e.g. `-DDEBUG -I ./include')
if the user option `c-macro-prompt-flag' is non-nil.

Noninteractive args are START, END, SUBST.
For use inside Lisp programs, see also `c-macro-expansion'.
(defalias 'c-macro-expand #[(start end subst) "p\203 \306	!\202 \307	!\310\203 \311\312\"\203C \203C \204C \f=\204C \313\314!\210\315\316!\210\317\204C \307	!\320\321Q\322$\203o `U |\210\nc\210 \205k \323 )\202\234 q\210\317\324!\210\325 \210\nc\210\326\317!\210\n\310\230\203\220 \313\327!\210\202\223 \330 \210\322\317!\331!+\207" [subst c-macro-buffer-name expansion displaybuf inbuf c-macro-prompt-flag get-buffer get-buffer-create "" read-string "Preprocessor arguments: " message "Buffer is read only: displaying expansion in alternate window" sit-for 2 nil c-macro-expansion " " t exchange-point-and-mark buffer-disable-undo erase-buffer set-buffer-modified-p "Null expansion" c-macro-display-buffer bury-buffer c-macro-cppflags buffer-read-only inhibit-read-only start end c-macro-preprocessor exchange buffer-auto-save-file-name] 6 (#$ . 1952) "r\nP"])
(defalias 'c-macro-display-buffer #[nil "eb\210\306 \210\307 \310p!\311	\204 \312p\313\"\210\n\307 U?\205a 	\204* \205a \314 \315\211\212\316\310p!!\210	\203B \307 \202D \317 \320\245\321\f\322d!\320\\]^\307 Z!\210eb\210\316!,+\207" [popped alreadythere oldwinheight c-macro-shrink-window-flag maxheight minheight c-mode window-height get-buffer-window nil display-buffer t selected-window 0 select-window frame-height 2 enlarge-window vertical-motion oldwin window-min-height] 5])
#@324 Run a preprocessor on region and return the output as a string.
Expand the region between START and END in the current buffer using
the shell command CPPCOMMAND (e.g. "/lib/cpp -C -DDEBUG").
Be sure to use a -C (don't strip comments) or equivalent option.
Optional arg DISPLAY non-nil means show messages in the echo area.
(defalias 'c-macro-expansion #[(start end cppcommand &optional display) "p\306\307!\203 \310\311	!\"\203 \312\225\313O\202 \314 \315\316\n\317\230\203( \317\202) \320$\321\312\211\313\317\312\322\323\324\f\2069 \"!@ABCDEFGHIJ\325\216\212\214~\210\326 KIq\210\313L\327 \210\330K!\210)\331J\332M#\210)\333c\210\334\332N\"C\335\332`\"n\203\212 \332\202\213 \312\\Edb\210\336\337N\340#\203\310 \341\334N`\313\211C%\233\342\232\203\221 \312\225b\210E\335N`\"\\D\315\343DH#c\210\312\224b\210\202\221 \341C8O\344C8P\345C8Q\346C8RQ\203\351 \320\202\352 \317O\203\366 \347O!\202 P\203\377 \350\202 \317\333FO\203\347O!\202P\203\351\202R\205\352Q\205$\353R\211B\315\343EH#\261\210,S\203=\354G!\210\355\332dT\356\211@D\313\357U&AS\203[\354G\360P!\210\361 \312U\203h\362c\210\202teb\210\363B!\210\332`|\210\364\365\311H!\366Q\313\356#\203\224\367 \210`V\332y\210V`|\210)\202t\370\371!\203\244\372T!9\235\204\253A\312=\204\321\373\346\374\323@!!8!\204\321eb\210\315\375AU#c\210`\376@!A@\\b\210\377c\210\201W @!\210\332\211dS]{.\207" [buffer-file-name default-directory c-macro-preprocessor c-macro-cppflags small-temporary-file-directory temporary-file-directory get-buffer-create " *C Macro Expansion*" string-match regexp-quote 0 nil buffer-name format "Invoking %s%s%s on region..." "" " " "??? !!! ??? start of c-macro expansion ??? !!! ???" make-temp-file expand-file-name "cmacexp" ((kill-buffer outbuf)) syntax-table erase-buffer set-syntax-table insert-buffer-substring 1 "\n" parse-partial-sexp count-lines re-search-backward "\n#\\(endif\\|else\\)\\>" move 3 (nil nil nil 0 nil) "\n#line %d \"%s\"\n" 4 5 7 char-to-string "*/" "/*" "//" "\\" message call-process-region t "-c" "done" buffer-size "\nPreprocessor produced no output\n" search-forward re-search-forward "^# [0-9]+ \"" "\"" beginning-of-line boundp msdos-shells file-name-nondirectory zerop file-attributes "/* Preprocessor terminated with status %s\n\n   Messages from `%s':\n\n" insert-file-contents "\n\n*/\n" tempname exit-status startmarker startstat linenum startlinenum uniquestring mymsg filename outbuf inbuf in-syntax-table buffer-read-only end start startinstring startincomment startafterquote startinbcomment display shell-file-name cppcommand beg delete-file] 14 (#$ . 3801)])
