;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:51:10 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/progmodes/hideif.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 "`hideif.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\300\301!\210\302\303\304\305\306\307%\207" [require cc-mode custom-declare-group hide-ifdef nil "Hide selected code within `ifdef'." :group c] 6)
#@35 Keymap used with Hide-Ifdef mode.
(defvar hide-ifdef-mode-submap nil (#$ . 783))
#@35 Keymap used with Hide-Ifdef mode.
(defvar hide-ifdef-mode-map nil (#$ . 870))
#@46 Prefix key for all Hide-Ifdef mode commands.
(defconst hide-ifdef-mode-prefix-key "@" (#$ . 954))
(byte-code "\204N \304 \305\306\307#\210\305\310\311#\210\305\312\313#\210\305\314\315#\210\305\316\317#\210\305\320\321#\210\305\322\323#\210\305\324\325#\210\305\326\327#\210\330\331\332\333#\211\203M \305	\334#\210)\n\204[ \304 \305\n#\210\304\207" [hide-ifdef-mode-submap where hide-ifdef-mode-map hide-ifdef-mode-prefix-key make-sparse-keymap define-key "d" hide-ifdef-define "u" hide-ifdef-undef "D" hide-ifdef-set-define-alist "U" hide-ifdef-use-define-alist "h" hide-ifdefs "s" show-ifdefs "" hide-ifdef-block "" show-ifdef-block "" hide-ifdef-toggle-read-only where-is-internal toggle-read-only (keymap) t hide-ifdef-toggle-outside-read-only] 5)
#@44 Non-nil when hide-ifdef-mode is activated.
(defvar hide-ifdef-mode nil (#$ . 1733))
#@34 Non-nil when text may be hidden.
(defvar hide-ifdef-hiding nil (#$ . 1823))
(byte-code "\303\236\204\f \303	BB\304\n\236\204 \305\nB\303\n\236\204  \306\nB\303\207" [minor-mode-map-alist hide-ifdef-mode-map minor-mode-alist hide-ifdef-mode hide-ifdef-hiding (hide-ifdef-hiding " Hiding") (hide-ifdef-mode " Ifdef")] 2)
#@51 Syntax table used for tokenizing #if expressions.
(defvar hide-ifdef-syntax-table (copy-syntax-table c-mode-syntax-table) (#$ . 2154))
(byte-code "\301\302\303#\210\301\304\305#\210\301\306\305#\207" [hide-ifdef-syntax-table modify-syntax-entry 95 "w" 38 "." 124] 4)
#@47 An alist of defined symbols and their values.
(defvar hide-ifdef-env nil (#$ . 2430))
#@73 Internal variable.  Saves the value of `buffer-read-only' while hiding.
(defvar hif-outside-read-only nil (#$ . 2522))
#@1142 Toggle Hide-Ifdef mode.  This is a minor mode, albeit a large one.
With ARG, turn Hide-Ifdef mode on if arg is positive, off otherwise.
In Hide-Ifdef mode, code within #ifdef constructs that the C preprocessor
would eliminate may be hidden from view.  Several variables affect
how the hiding is done:

hide-ifdef-env
	An association list of defined and undefined symbols for the
	current buffer.  Initially, the global value of `hide-ifdef-env'
	is used.

hide-ifdef-define-alist
	An association list of defined symbol lists.
        Use `hide-ifdef-set-define-alist' to save the current `hide-ifdef-env'
        and `hide-ifdef-use-define-alist' to set the current `hide-ifdef-env'
        from one of the lists in `hide-ifdef-define-alist'.

hide-ifdef-lines
	Set to non-nil to not show #if, #ifdef, #ifndef, #else, and
	#endif lines when hiding.

hide-ifdef-initially
	Indicates whether `hide-ifdefs' should be called when Hide-Ifdef mode
	is activated.

hide-ifdef-read-only
	Set to non-nil if you want to make buffers read only while hiding.
	After `show-ifdefs', read-only status is restored to previous value.

\{hide-ifdef-mode-map}
(defalias 'hide-ifdef-mode #[(arg) "\306\301!\210\204 	?\202 \307!\310V\311 \210	\203F \306\302!\210\312\302!\306\303!\210\312\303!\306\305!\210\f\313\314!\210\203? \315 \210\202B \316 \210\317\320!\207\203M \316 \210\317\321!\207" [arg hide-ifdef-mode hide-ifdef-env hide-ifdef-hiding buffer-read-only hif-outside-read-only make-local-variable prefix-numeric-value 0 force-mode-line-update default-value run-hooks hide-ifdef-mode-hook hide-ifdefs show-ifdefs message "Enter Hide-Ifdef mode" "Exit Hide-Ifdef mode" hide-ifdef-initially] 2 (#$ . 2649) "P"])
#@165 Hides or shows lines from FROM to TO, according to FLAG.
If FLAG is \n (newline character) then text is shown, while if FLAG is \^M
(control-M) the text is hidden.
(defalias 'hif-outline-flag-region #[(from to flag) "\304 \305\216\306	\n\307U\203 \310\202 \307\311%*\207" [modp from to flag buffer-modified-p ((set-buffer-modified-p modp)) subst-char-in-region 10 13 t] 6 (#$ . 4365)])
#@45 Show all of the text in the current buffer.
(defalias 'hif-show-all #[nil "\300ed\301#\207" [hif-outline-flag-region 10] 4 (#$ . 4762) nil])
(defalias 'hif-before-revert-function #[nil "\205 	\205 \302\303!\207" [hide-ifdef-mode hide-ifdef-hiding hide-ifdefs t] 2])
(add-hook 'after-revert-hook 'hif-before-revert-function)
#@122 START is the start of an #if or #else form.  END is the ending part.
Everything including these lines is made invisible.
(defalias 'hide-ifdef-region #[(start end) "\302	\303#\207" [start end hif-outline-flag-region 13] 4 (#$ . 5096)])
#@51 Everything between START and END is made visible.
(defalias 'hif-show-ifdef-region #[(start end) "\302	\303#\207" [start end hif-outline-flag-region 10] 4 (#$ . 5339)])
#@140 The function to use to evaluate a form.
The evaluator is given a canonical form and returns t if text under
that form should be displayed.
(defvar hide-ifdef-evaluator 'eval (#$ . 5516))
#@42 ...is by default considered to be false.
(defvar hif-undefined-symbol nil (#$ . 5709))
#@45 Prepend (var value) pair to hide-ifdef-env.
(defalias 'hif-set-var #[(var value) "	B\nB\211\207" [var value hide-ifdef-env] 2 (#$ . 5802)])
(defalias 'hif-lookup #[(var) "\304	\"\211\203 \nA\202 )\207" [var hide-ifdef-env val hif-undefined-symbol assoc] 4])
(defalias 'hif-defined #[(var) "\301!\207" [var hif-lookup] 2])
(byte-code "\301B\306\302B	\307P\303B	\310P\304B	\311P\305B	\312P\313B\314\f\314\260\315B\316B\301\207" [current-load-list hif-cpp-prefix hif-ifndef-regexp hif-ifx-regexp hif-else-regexp hif-endif-regexp "\\(^\\|\\)[ 	]*#[ 	]*" "ifndef" "if\\(n?def\\)?[ 	]+" "else" "endif" hif-ifx-else-endif-regexp "\\|" hif-token hif-token-list] 5)
#@50 Convert list of tokens in infix into prefix list
(defalias 'hif-infix-to-prefix #[(token-list) "G\301U\203 \302\303@DD\207\304!\207" [token-list 1 hif-lookup quote hif-parse-if-exp] 3 (#$ . 6500)])
(byte-code "\301B\303\302B\304\301\207" [current-load-list hif-token-regexp hif-end-of-comment "^\\(&&\\|||\\|[!=]=\\|!\\|[()+-]\\|[<>]=?\\|\\w+\\)" "\\*/"] 2)
#@39 Separate string into a list of tokens
(defalias 'hif-tokenize #[(expr-string) "\306\307G\310 \311\216\312!\210\nW\2031\313\314#\203* \307\225S\315I\210\202 \313\316#\203V \307\225S\315I\210\3130#\204J \313\317#\210\307\225S\315I\210\202 \313\320#\203k \313\317#\210\307\225\211\202 \3131#\203)\307\225O2\307\225S\315I\2102\321\230\203\217 \322\202\"2\323\230\203\232 \324\202\"2\325\230\203\245 \326\202\"2\327\230\203\260 \330\202\"2\331\230\203\273 \332\202\"2\333\230\203\306 \334\202\"2\335\230\203\321 \336\202\"2\337\230\203\334 \340\202\"2\341\230\203\347 \342\202\"2\343\230\203\362 \344\202\"2\345\230\203\375 \346\202\"2\347\230\203\350\202\"2\351\230\203\352\202\"2\353\230\203\354\202\"\3552!\fB)\202 \356\357\"\210\202 )\f\237,\207" [expr-string current-syntax-table expr-length expr-start token-list hide-ifdef-syntax-table nil 0 syntax-table ((set-syntax-table current-syntax-table)) set-syntax-table string-match "^[ 	]+" 10 "^/\\*" "$" "^//" "||" or "&&" and "==" equal "!=" hif-notequal "!" not "defined" hif-defined "(" lparen ")" rparen ">" hif-greater "<" hif-less ">=" hif-greater-equal "<=" hif-less-equal "+" hif-plus "-" hif-minus intern error "Bad #if expression: %s" hif-end-of-comment hif-token-regexp token] 5 (#$ . 6874)])
#@63 Parse the TOKEN-LIST.  Return translated list in prefix form.
(defalias 'hif-parse-if-exp #[(hif-token-list) "\301 \210\302 \203 \303\304\"\210\207" [hif-token hif-nexttoken hif-expr error "Error: unexpected token: %s"] 4 (#$ . 8216)])
#@71 Pop the next token from token-list into the let variable "hif-token".
(defalias 'hif-nexttoken #[nil "@A	\207" [hif-token-list hif-token] 1 (#$ . 8461)])
#@75 Parse an expression as found in #if.
       expr : term | expr '||' term.
(defalias 'hif-expr #[nil "\302 	\303=\203 \304 \210\303\302 E\202 )\207" [result hif-token hif-term or hif-nexttoken] 3 (#$ . 8625)])
#@45 Parse a term : eq-expr | term '&&' eq-expr.
(defalias 'hif-term #[nil "\302 	\303=\203 \304 \210\303\302 E\202 )\207" [result hif-token hif-eq-expr and hif-nexttoken] 3 (#$ . 8846)])
#@69 Parse an eq-expr : math | eq-expr `=='|`!='|`<'|`>'|`>='|`<=' math.
(defalias 'hif-eq-expr #[nil "\303 \304\n\305>\203 \n\306 \210	\303 E\202 	*\207" [eq-token result hif-token hif-math nil (equal hif-notequal hif-greater hif-less hif-greater-equal hif-less-equal) hif-nexttoken] 3 (#$ . 9041)])
#@95 Parse an expression with + or - and simpler things.
       math : factor | math '+|-' factor.
(defalias 'hif-math #[nil "\303 \304\n\305=\204 \n\306=\203 \n\307 \210	\303 E\202 	*\207" [math-op result hif-token hif-factor nil hif-plus hif-minus hif-nexttoken] 3 (#$ . 9350)])
#@69 Parse a factor: '!' factor | '(' expr ')' | 'defined(' id ')' | id.
(defalias 'hif-factor #[nil "\303=\203 \304 \210\303\305 D\207\306=\203- \304 \210\307 \310=\204' \311\312\"\202+ \304 \210	)\207\313=\203g \304 \210\306=\204@ \311\314!\210\304 \210\315>\203P \311\316\"\210\304 \210\310=\204] \311\317!\210\304 \210\313\320\n)DD\207\211\321>\203s \311\322!\210\304 \210\323\320\n)DD\207" [hif-token result ident not hif-nexttoken hif-factor lparen hif-expr rparen error "Bad token in parenthesized expression: %s" hif-defined "Error: expected \"(\" after \"defined\"" (or and not hif-defined lparen rparen) "Error: unexpected token: %s" "Error: expected \")\" after identifier" quote (or and) "Error: missing identifier" hif-lookup] 4 (#$ . 9640)])
#@54 Treat VAL as a number: if it's t or nil, use 1 or 0.
(defalias 'hif-mathify #[(val) "\301=\203 \302\207\204 \303\207\207" [val t 1 0] 2 (#$ . 10412)])
#@52 Like ordinary plus but treat t and nil as 1 and 0.
(defalias 'hif-plus #[(a b) "\302!\302	!\\\207" [a b hif-mathify] 3 (#$ . 10574)])
#@53 Like ordinary minus but treat t and nil as 1 and 0.
(defalias 'hif-minus #[(a b) "\302!\302	!Z\207" [a b hif-mathify] 3 (#$ . 10715)])
#@43 Like (not (equal A B)) but as one symbol.
(defalias 'hif-notequal #[(a b) "	\232?\207" [a b] 2 (#$ . 10857)])
#@20 Simple comparison.
(defalias 'hif-greater #[(a b) "\302!\302	!V\207" [a b hif-mathify] 3 (#$ . 10974)])
#@20 Simple comparison.
(defalias 'hif-less #[(a b) "\302!\302	!W\207" [a b hif-mathify] 3 (#$ . 11085)])
#@20 Simple comparison.
(defalias 'hif-greater-equal #[(a b) "\302!\302	!Y\207" [a b hif-mathify] 3 (#$ . 11193)])
#@20 Simple comparison.
(defalias 'hif-less-equal #[(a b) "\302!\302	!X\207" [a b hif-mathify] 3 (#$ . 11310)])
#@73 When at beginning of #ifX, returns a Lisp expression for its condition.
(defalias 'hif-canonicalize #[nil "\212\305!\306\n!\210`\307\310w\210`{\311\312!!	\203! \313\fD\202\" \f,\207" [hif-ifndef-regexp negate hif-ifx-regexp expr-string expr looking-at re-search-forward "^\n" nil hif-infix-to-prefix hif-tokenize not] 3 (#$ . 11424)])
#@53 Move to next #if..., or #ifndef, at point or after.
(defalias 'hif-find-any-ifX #[nil "\301d\302#\303 \210\207" [hif-ifx-regexp re-search-forward t beginning-of-line] 4 (#$ . 11771)])
#@64 Move to next #if..., #else, or #endif, after the current line.
(defalias 'hif-find-next-relevant #[nil "\301\210\302d\303#\205 \304 \207" [hif-ifx-else-endif-regexp nil re-search-forward t beginning-of-line] 4 (#$ . 11962)])
#@69 Move to previous #if..., #else, or #endif, before the current line.
(defalias 'hif-find-previous-relevant #[nil "\301 \210\302e\303#\205 \301 \207" [hif-ifx-else-endif-regexp beginning-of-line re-search-backward t] 4 (#$ . 12196)])
(defalias 'hif-looking-at-ifX #[nil "\301!\207" [hif-ifx-regexp looking-at] 2])
(defalias 'hif-looking-at-endif #[nil "\301!\207" [hif-endif-regexp looking-at] 2])
(defalias 'hif-looking-at-else #[nil "\301!\207" [hif-else-regexp looking-at] 2])
#@68 If positioned at #ifX or #else form, skip to corresponding #endif.
(defalias 'hif-ifdef-to-endif #[nil "\300 \210\301 \203 \302 \210\302 \207\303 \203 \302 \207\304 \203 \305\207\306\307!\207" [hif-find-next-relevant hif-looking-at-ifX hif-ifdef-to-endif hif-looking-at-else hif-looking-at-endif done error "Mismatched #ifdef #endif pair"] 2 (#$ . 12685)])
#@68 If positioned at #endif form, skip backward to corresponding #ifX.
(defalias 'hif-endif-to-ifdef #[nil "`\301 \210`U\203 \302\303!\210)\304 \203 \305 \210\305 \207\306 \203# \305 \207\307 \203* \310\207\311\207" [start hif-find-previous-relevant error "Mismatched #ifdef #endif pair" hif-looking-at-endif hif-endif-to-ifdef hif-looking-at-else hif-looking-at-ifX done t] 2 (#$ . 13051)])
#@98 Move point to beginning of line of the next ifdef-endif.
With argument, do this that many times.
(defalias 'forward-ifdef #[(&optional arg) "\204 \302\303W\203 \304[!\210\303W\205: [`\305 \204$ \306 \210\305 \203/ \307 \210\2026 	b\210\310\311!\210)\202 \207" [arg start 1 0 backward-ifdef hif-looking-at-ifX hif-find-next-relevant hif-ifdef-to-endif error "No following #ifdef"] 2 (#$ . 13449) "p"])
#@94 Move point to beginning of the previous ifdef-endif.
With argument, do this that many times.
(defalias 'backward-ifdef #[(&optional arg) "\204 \302\303W\203 \304[!\210\303W\205= S\305 \210`\306 \204' \307 \210\306 \2032 \310 \210\2029 	b\210\311\312!\210)\202 \207" [arg start 1 0 forward-ifdef beginning-of-line hif-looking-at-endif hif-find-previous-relevant hif-endif-to-ifdef error "No previous #ifdef"] 2 (#$ . 13867) "p"])
#@55 Move point to beginning of nested ifdef or else-part.
(defalias 'down-ifdef #[nil "`\301 \210\302 \206\f \303 ?\205 b\210\304\305!)\207" [start hif-find-next-relevant hif-looking-at-ifX hif-looking-at-else error "No following #ifdef"] 2 (#$ . 14313) nil])
#@58 Move point to beginning of enclosing ifdef or else-part.
(defalias 'up-ifdef #[nil "\301 \210`\302 \204 \303 \210\302 \203 \304 \210`U\205 \305\306!)\207" [start beginning-of-line hif-looking-at-endif hif-find-previous-relevant hif-endif-to-ifdef error "No previous #ifdef"] 2 (#$ . 14578) nil])
#@99 Move to the beginning of the next #ifX, #else, or #endif.
With argument, do this that many times.
(defalias 'next-ifdef #[(&optional arg) "\204 \301\302W\203 \303[!\210\302W\205+ S\304 \210l\203 \305 \210\306\307!\210\202 \207" [arg 1 0 previous-ifdef hif-find-next-relevant beginning-of-line error "No following #ifdefs, #elses, or #endifs"] 2 (#$ . 14885) "p"])
#@103 Move to the beginning of the previous #ifX, #else, or #endif.
With argument, do this that many times.
(defalias 'previous-ifdef #[(&optional arg) "\204 \302\303W\203 \304[!\210\303W\205- S`\305 \210	`U\203) \306\307!\210)\202 \207" [arg start 1 0 next-ifdef hif-find-previous-relevant error "No previous #ifdefs, #elses, or #endifs"] 2 (#$ . 15267) "p"])
(defalias 'hif-make-range #[(else-p start end &optional else) "	\nF\207" [else-p start else end] 4])
(defalias 'hif-range-else-p #[(range) "\301\234\207" [range 0] 2])
(defalias 'hif-range-start #[(range) "\301\234\207" [range 1] 2])
(defalias 'hif-range-else #[(range) "\301\234\207" [range 2] 2])
(defalias 'hif-range-end #[(range) "\301\234\207" [range 3] 2])
#@87 Returns a Range structure describing the current #if region.
Point is left unchanged.
(defalias 'hif-find-range #[nil "\212\304 \210`\305\211\211\306 \210\307 \203 \310 \210\306 \210\202 \311 \203) \312`\202+ `\n\203K \306 \210\307 \203@ \310 \210\306 \210\2022 \311 \203I \313\314!\210`\315\n	$-\207" [end else else-p start beginning-of-line nil hif-find-next-relevant hif-looking-at-ifX hif-ifdef-to-endif hif-looking-at-else t error "Found two elses in a row?  Broken!" hif-make-range] 5 (#$ . 16008)])
#@77 Hide the line containing point.  Does nothing if `hide-ifdef-lines' is nil.
(defalias 'hif-hide-line #[(point) "\205 \212	b\210\303 \304\216\305 \210`\306U?\205 \307`S`\"+\207" [hide-ifdef-lines point modp buffer-modified-p ((set-buffer-modified-p modp)) beginning-of-line 1 hide-ifdef-region] 3 (#$ . 16532)])
#@75 Call `hide-ifdef-guts' after narrowing to end of START line and END line.
(defalias 'hif-recurse-on #[(start end) "\212\214b\210\302\210`	}\210\303 *\207" [start end nil hide-ifdef-guts] 2 (#$ . 16853)])
#@123 Called at #ifX expression, this hides those parts that should be hidden.
It uses the judgement of `hide-ifdef-evaluator'.
(defalias 'hif-possibly-hide #[nil "\303 \304 \305\306!!\210\n	!\203@ \307!\2034 \305\310!!\210\311\310!\306!S\"\210\312\313!\310!\"\210\202j \312\313!\306!\"\210\202j \307!\203b \305\310!!\210\311\313!\310!S\"\210\312\310!\306!\"\210\202j \311`\306!S\"\210\305\313!!\210\306!b\210\314*\207" [range test hide-ifdef-evaluator hif-canonicalize hif-find-range hif-hide-line hif-range-end hif-range-else-p hif-range-else hide-ifdef-region hif-recurse-on hif-range-start nil] 4 (#$ . 17066)])
#@112 Does most of the work of `hide-ifdefs'.
It does not do the work that's pointless to redo on a recursive entry.
(defalias 'hide-ifdef-guts #[nil "\212eb\210\300 \205 \301 \210\202 )\207" [hif-find-any-ifX hif-possibly-hide] 1 (#$ . 17704)])
#@76 *Non-nil means call `hide-ifdefs' when Hide-Ifdef mode is first activated.
(custom-declare-variable 'hide-ifdef-initially 'nil '(#$ . -17952) :type 'boolean :group 'hide-ifdef)
#@71 *Set to non-nil if you want buffer to be read-only while hiding text.
(custom-declare-variable 'hide-ifdef-read-only 'nil '(#$ . -18135) :type 'boolean :group 'hide-ifdef)
#@56 *Non-nil means hide the #ifX, #else, and #endif lines.
(custom-declare-variable 'hide-ifdef-lines 'nil '(#$ . -18313) :type 'boolean :group 'hide-ifdef)
#@30 Toggle hide-ifdef-read-only.
(defalias 'hide-ifdef-toggle-read-only #[nil "?\304\305\203 \306\202 \307\"\210	\203 \206 \n\310 \207" [hide-ifdef-read-only hide-ifdef-hiding hif-outside-read-only buffer-read-only message "Hide-Read-Only %s" "ON" "OFF" force-mode-line-update] 3 (#$ . 18472) nil])
#@60 Replacement for `toggle-read-only' within Hide-Ifdef mode.
(defalias 'hide-ifdef-toggle-outside-read-only #[nil "?\304\305\203 \306\202 \307\"\210	\203 \n\206 \310 \207" [hif-outside-read-only hide-ifdef-hiding hide-ifdef-read-only buffer-read-only message "Read only %s" "ON" "OFF" force-mode-line-update] 3 (#$ . 18782) nil])
#@52 Define a VAR so that #ifdef VAR would be included.
(defalias 'hide-ifdef-define #[(var) "\302\303\"\210	\205 \304 \207" [var hide-ifdef-hiding hif-set-var 1 hide-ifdefs] 3 (#$ . 19125) "SDefine what? "])
#@58 Undefine a VAR so that #ifdef VAR would not be included.
(defalias 'hide-ifdef-undef #[(var) "\302\303\"\210	\205 \304 \207" [var hide-ifdef-hiding hif-set-var nil hide-ifdefs] 3 (#$ . 19337) "SUndefine what? "])
#@275 Hide the contents of some #ifdefs.
Assume that defined symbols have been added to `hide-ifdef-env'.
The text hidden is the text that would not be included by the C
preprocessor if it were given the file with those symbols defined.

Turn off hiding by calling `show-ifdefs'.
(defalias 'hide-ifdefs #[(&optional nomsg) "\306\307!\210\n\204 \302\310!\210\203 \311 \210\312\312\312\313 \210)\206% 	\206. \306\314!\207" [buffer-read-only hif-outside-read-only hide-ifdef-mode hide-ifdef-hiding inhibit-read-only selective-display message "Hiding..." 1 show-ifdefs t hide-ifdef-guts "Hiding done" hide-ifdef-read-only nomsg] 2 (#$ . 19559) nil])
#@71 Cancel the effects of `hide-ifdef': show the contents of all #ifdefs.
(defalias 'show-ifdefs #[nil "\305\306\307 \210)\305\211\207" [hif-outside-read-only buffer-read-only selective-display inhibit-read-only hide-ifdef-hiding nil t hif-show-all] 2 (#$ . 20218) nil])
#@94 Utility for hide and show `ifdef-block'.
Return as (TOP . BOTTOM) the extent of ifdef block.
(defalias 'hif-find-ifdef-block #[nil "\301\212\302 \210\303 \204 \304 \204 \305 \210`\306 \210`S)\212\302 \210\307 \204' \310 \210\304 \2035 \306 \210\310 \210\202' `S^*B\207" [max-bottom nil beginning-of-line hif-looking-at-else hif-looking-at-ifX up-ifdef hif-ifdef-to-endif hif-looking-at-endif hif-find-next-relevant] 3 (#$ . 20496)])
#@75 Hide the ifdef block (true or false part) enclosing or before the cursor.
(defalias 'hide-ifdef-block #[nil "\204 \300\306!\210\307\310 \307\311@A\"\210\f\203% \312@!\210\312AT!\210\307*\206/ \f\211\207" [hide-ifdef-mode selective-display inhibit-read-only top-bottom hide-ifdef-lines hide-ifdef-hiding 1 t hif-find-ifdef-block hide-ifdef-region hif-hide-line hide-ifdef-read-only hif-outside-read-only buffer-read-only] 3 (#$ . 20940) nil])
#@75 Show the ifdef block (true or false part) enclosing or before the cursor.
(defalias 'show-ifdef-block #[nil "\303	\203 \212\304 \210\305`S\306\210`\")\202! \307 \305\n@S\nA\"))\207" [inhibit-read-only hide-ifdef-lines top-bottom t beginning-of-line hif-show-ifdef-region nil hif-find-ifdef-block] 3 (#$ . 21403) nil])
#@49 A global assoc list of pre-defined symbol lists
(defvar hide-ifdef-define-alist nil (#$ . 21731))
#@67 Compress the define list ENV into a list of defined symbols only.
(defalias 'hif-compress-define-list #[(env) "\303\304\"\305\211\203 \n@\203 \n@	B\nA\211\204 	*\207" [env new-defs defs mapcar #[(arg) "\301@!\205	 @\207" [arg hif-lookup] 2] nil] 4 (#$ . 21835)])
#@51 Set the association for NAME to `hide-ifdef-env'.
(defalias 'hide-ifdef-set-define-alist #[(name) "\303	!B\nB\211\207" [name hide-ifdef-env hide-ifdef-define-alist hif-compress-define-list] 3 (#$ . 22114) "SSet define list: "])
#@60 Set `hide-ifdef-env' to the define list specified by NAME.
(defalias 'hide-ifdef-use-define-alist #[(name) "\305	\"\211\203 \306\307\nA\"\202 \310\311\"\210\f\205 \312 )\207" [name hide-ifdef-define-alist define-list hide-ifdef-env hide-ifdef-hiding assoc mapcar #[(arg) "\301B\207" [arg t] 2] error "No define list for %s" hide-ifdefs] 4 (#$ . 22350) "SUse define list: "])
(provide 'hideif)
