;ELC   
;;; Compiled by rms@psilocin.ai.mit.edu on Mon May 18 23:30:05 1998
;;; from file /gd/gnu/emacs/lisp/progmodes/cmacexp.el
;;; in Emacs version 20.2.93.12
;;; with bytecomp version 2.44
;;; 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 "\301\302!\210\303\304!\210\305\306\307\310\311%\207" [:group require cc-mode provide cmacexp custom-declare-group c-macro nil "Expand C macros in a region." c] 6)
#@72 *Non-nil means shrink the *Macroexpansion* window to fit its contents.
(custom-declare-variable 'c-macro-shrink-window-flag 'nil '(#$ . -789) :type 'boolean :group 'c-macro)
#@68 *Non-nil makes `c-macro-expand' prompt for preprocessor arguments.
(custom-declare-variable 'c-macro-prompt-flag 'nil '(#$ . -969) :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) "cpp -C") ((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") (t "/lib/cpp -C")) '(#$ . 1139) :type 'string :group 'c-macro)
#@47 *Preprocessor flags used by `c-macro-expand'.
(custom-declare-variable 'c-macro-cppflags '"" '(#$ . -1626) :type 'string :group 'c-macro)
(byte-code "\302\300	B\300\207" [c-macro-buffer-name current-load-list "*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 (#$ . 1867) "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\"!@ABCDEFGHI\325\216\212\214~\210\326 JHq\210\313K\327 \210\330J!\210)\331I\332L#\210)\333c\210\334\332M\"B\335\332`\"n\203\205 \332\202\206 \312\\Ddb\210\336\337M\340#\203\303 \341\334M`\313\211B%\233\342\232\203\214 \312\225b\210D\335M`\"\\C\315\343CG#c\210\312\224b\210\202\214 \341B8N\344B8O\345B8P\346B8QP\203\344 \320\202\345 \317N\203\361 \347N!\202\373 O\203\372 \350\202\373 \317\333EN\203\n\347N!\202O\203\351\202Q\205\352P\205\353R\211A\315\343DG#\261\210,R\2038\354F!\210\355\332dS\356\211D\313\357T&@R\203U\354F\360P!\210\361 \312U\203b\362c\210\202neb\210\363A!\210\332`|\210\364\365\311G!\366Q\313\356#\203\216\312y\210`U\332y\210U`|\210)\202n\367\370!\203\236\371S!8\235\204\245@\312=\204\311\372\346\373\323!!8!\204\311eb\210\315\374@T#c\210`\375!A@\\b\210\376c\210\377!\210\332\211dS]{.\207" [buffer-file-name default-directory c-macro-preprocessor c-macro-cppflags temporary-file-directory tempname 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-name 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]+ \"" "\"" 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" delete-file 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] 14 (#$ . 3716)])
