;;; compiled by eric@mole.gnu.ai.mit.edu on Mon Apr 26 13:28:57 1993
;;; from file /gd/gnu/emacs/19.0/lisp/cmacexp.el
;;; emacs version 19.5.4.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(defvar c-macro-shrink-window-p nil "\
*Non-nil means shrink the *Macroexpansion* window to fit its contents.")
(defvar c-macro-always-prompt-p nil "\
*Non-nil means always prompt for preprocessor arguments.")
(defvar c-macro-preprocessor "/lib/cpp -C" "\
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.")
(defvar c-macro-default-cppflags "" "\
Default cpp flags used by c-macro-expand.")
(byte-code "ÀÂ‡" ["*Macroexpansion*" c-macro-buffer-name nil] 1)
(defalias 'c-macro-expand #[(start end &optional flag) "…	 ÁÂ\"?pƒ Å!‚ Ç!É\n„, ÁÌ\"ƒ3 ÍÎ\"ƒX ƒX =„X ÑÒ!ˆÓÔ!ˆÕ„X Ç!tƒa ÑÖ !ˆ×ÛQ#\nÑÖ ÜP!ˆƒ– `UÞ\"ˆ\ncˆ…’ ß )‚Ç qˆÕà!ˆá ˆ\ncˆâÕ!ˆã\nÉ\"ƒ¼ Ñä!ˆ‚À å!ˆæç!,‡" [flag equal (16) subst inbuf get-buffer c-macro-buffer-name get-buffer-create displaybuf "" expansion c-macro-always-prompt-p (16) read-string "Preprocessor arguments: " c-macro-default-cppflags buffer-read-only message "Buffer is read only: displaying expansion in alternate window" sit-for 2 nil c-macro-default-message c-macro-expansion start end c-macro-preprocessor " " "done" exchange delete-region exchange-point-and-mark buffer-flush-undo erase-buffer set-buffer-modified-p string= "Null expansion" c-macro-display-buffer t bury-buffer] 6 "\
Expand all C macros occurring in the region using c-macro-preprocessor.
Normally display output in temp buffer.
Prefix arg means replace the region with it.
Prompt for a string of arguments to the preprocessor, (e.g.
-DDEBUG -I ./include) when prefixed with two C-u's.

It is intended for interactive use only.
For non interactive use, see the c-macro-expansion function." "r\nP"])
(fset (quote c-macro-display-buffer) #[(retbuf) "ebˆÀ ˆÁÂ!ˆÃ Äp!ÅÆÇ!	\n\n„- ÌpÍ\"ˆÃ U?	ƒ6 ÎÏ!ˆ…„ \n„E 	…„ Ñ Ò‰ŠÖÄp!!ˆ\nƒ` Ã ‚b ØÙ Ú\"ÛÜÝ!Ú\\]^Ã Z!ˆebˆÖ!,,‡" [c-mode require view window-height get-buffer-window nil boundp view-kill-when-finished niceview popped alreadythere oldwinheight display-buffer t view-mode 1 c-macro-shrink-window-p selected-window 0 maxheight minheight oldwin select-window window-min-height / screen-height 2 enlarge-window vertical-motion 1000000] 5])
(defalias 'c-macro-expansion #[(start end cppcommand) "pÀÁ!\nƒ ÃÄ!\n\"ƒ \nÆÇ!ÈO‚ É ÇÈ\nÏŽŠŒÐ ˆqˆÈÒ ˆÓ!ˆÕÖ#ˆ)ØcˆÙÚÜ#ƒŠ ÝÞßàÖ`\"\"á\"ƒJ ÆÇ!bˆâÖ`\"ãä#\nB‰\n@cˆåæ!ˆçcˆèÇ!bˆ‚J âÖ`\"nƒ– Ö‚— Ç\\àÖ\")ß)8*ë)8,í)8.ï.…º Ø*ƒÃ ð‚É ,…É ñãä#*ƒÙ ð‚ß ,…ß ò.…å ó%,\nB‰\n@cˆåæ!ˆçcˆôÖdõö‰È÷8ùP&ˆú\n!\nû\n@Èö#ƒüý!ˆ\nA‰\n„þ``dÖZ]\".‡" [get-buffer-create " *C Macro Expansion*" buffer-file-name string-match regexp-quote default-directory match-end 0 nil buffer-name linelist linenum filename outbuf inbuf ((kill-buffer outbuf)) widen buffer-read-only erase-buffer set-syntax-table c-mode-syntax-table insert-buffer-substring 1 end " " re-search-backward "\n#\\(endif\\|else\\)\\>" start move equal nthcdr 3 parse-partial-sexp (nil nil nil 0) count-lines format "\n# %d \"%s\"\n" skip-chars-backward "^#" "line" match-beginning startstat startinstring 4 startincomment 5 startafterquote concat "\"" "*/" "/*" "\\" call-process-region "sh" t "-c" cppcommand " 2>/dev/null" reverse search-backward replace-match "" buffer-substring] 11 "\
Expands 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.
Returns the output as a string."])
(defalias 'c-macro-eval #[(start end &optional flag) "ÀÁ!„\n ÂÃ!ˆ„ ÅÇ\"ƒ ÈÉ\n\"\ntƒ& ËÌ !ˆÍÑ\nQ#ÒÓ!ÖŽŠqˆ×Ù ˆcˆtƒR ËÚ!ˆÛÁÝ ÞßE!)Ù ˆƒÍ àÁáÞßâã%!äåÁáÞßæ&[âã&!çåÁáÞßèéâã&!ê&ˆŠàåÁáÞßèéâã&!\"ˆ)ëì×Û#ƒÑ íîïð!ñð!\"ò\"ƒÆ óô!ˆ‚© óõ!ˆ‚© cˆtƒá öðd\"ˆËÝ !‚ã Ý ,‡" [fboundp calc-eval require calc c-macro-always-prompt-p equal flag (16) read-string "Preprocessor arguments: " c-macro-default-cppflags message c-macro-default-message c-macro-expansion start end c-macro-preprocessor " " get-buffer-create " *Macro Evaluation*" evalbuf evaluation ((kill-buffer evalbuf)) nil buffer-read-only erase-buffer "Invoking calc..." t calc-eval-error buffer-string calc-language c insert list calc-simplify-mode binary "(u)" " == " calc-word-size "(d)" calc-number-radix 16 "(x)" re-search-forward "0x\\([^,]+\\)\\(, \\|\\'\\)" string= buffer-substring match-beginning 1 match-end "0" replace-match "FALSE\\2" "TRUE\\2" copy-region-as-kill] 16 "\
Expand region using cpp and evaluate it using calc.
Interactively print value in minibuffer and push it on the kill ring.
With a C-u argument shows the evaluation in a variety of formats.
With two C-u's prompts the user for a string of flags to the preprocessor.

Non interactively returns value of region between START and END
as a string.  Several formats are used if optional FLAG is non-nil." "r\nP"])
(byte-code "ÀÁMˆÂÃ!‡" [c-macro-default-message #[nil "ÀÁ\nÃÅ\"ƒ Å‚ Æ$‡" [format "Invoking %s%s%s on region..." c-macro-preprocessor string= c-macro-default-cppflags "" " "] 6] provide cmacexp] 2)
