;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Sat Jul 30 16:52:05 1994 ;;; from file /home/fsf/rms/e19/lisp/hideif.el ;;; emacs version 19.25.90.2. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "`/home/fsf/rms/e19/lisp/hideif.el' was compiled for Emacs 19")) (defvar hide-ifdef-mode-submap nil "\ Keymap used with Hide-Ifdef mode.") (defvar hide-ifdef-mode-map nil "\ Keymap used with Hide-Ifdef mode.") (defconst hide-ifdef-mode-prefix-key "" "\ Prefix key for all Hide-Ifdef mode commands.") (byte-code "„PÁ ÂÃÄ#ˆÂÅÆ#ˆÂÇÈ#ˆÂÉÊ#ˆÂËÌ#ˆÂÍÎ#ˆÂÏÐ#ˆÂÑÒ#ˆÂÓÔ#ˆÕÖ×Ø#‰ƒOÂÚ#ˆ)„aÁ Â#ˆÁ‡" [hide-ifdef-mode-submap 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 where hide-ifdef-toggle-outside-read-only hide-ifdef-mode-map hide-ifdef-mode-prefix-key] 5) (defalias 'hif-update-mode-line #[nil "ÀÁ !‡" [set-buffer-modified-p buffer-modified-p] 2 "\ Update mode-line by setting buffer-modified to itself."]) (defvar hide-ifdef-mode nil "\ Non-nil when hide-ifdef-mode is activated.") (defvar hide-ifdef-hiding nil "\ Non-nil when text may be hidden.") (byte-code "À ž„\fÀ\nB BÃ\fž„Å\fBÀ\fž„ Æ\fBÀ‡" [hide-ifdef-mode minor-mode-map-alist hide-ifdef-mode-map hide-ifdef-hiding minor-mode-alist (hide-ifdef-hiding " Hiding") (hide-ifdef-mode " Ifdef")] 2) (defvar hide-ifdef-syntax-table (copy-syntax-table c-mode-syntax-table) "\ Syntax table used for tokenizing #if expressions.") (byte-code "ÀÁ #ˆÀÄÅ #ˆÀÆÅ #‡" [modify-syntax-entry 95 "w" hide-ifdef-syntax-table 38 "." 124] 4) (defalias 'hide-ifdef-mode #[(arg) "ÀÁ!ˆ\n„ ?‚Ã\n!ÄVÅ ˆ ƒJÀÆ!ˆÇÆ!ÀÈ!ˆÇÈ!ÀÉ!ˆ\n ËÌ!ˆ ƒCÎ ˆ‚FÏ ˆÐÑ!‡ƒRÏ ˆÐÒ!‡" [make-local-variable hide-ifdef-mode arg prefix-numeric-value 0 force-mode-line-update hide-ifdef-env default-value hide-ifdef-hiding hif-outside-read-only buffer-read-only run-hooks hide-ifdef-mode-hook hide-ifdef-initially hide-ifdefs show-ifdefs message "Enter hide-ifdef-mode." "Exit hide-ifdef-mode."] 2 "\ Toggle Hide-Ifdef mode. This is a minor mode, albeit a large one. With ARG, turn Hide-Ifdef mode on iff arg is positive. 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}" "P"]) (defalias 'hif-outline-flag-region #[(from to flag) "À ÂŽÃ\f ÇUƒÈ‚ÇÉ%*‡" [buffer-modified-p modp ((set-buffer-modified-p modp)) subst-char-in-region from to flag 10 13 t] 6 "\ 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-show-all #[nil "ÀedÁ#‡" [hif-outline-flag-region 10] 4 "\ Show all of the text in the current buffer." nil]) (defalias 'hide-ifdef-region #[(start end) "À \nÃ#‡" [hif-outline-flag-region start end 13] 4 "\ START is the start of a #if or #else form. END is the ending part. Everything including these lines is made invisible."]) (defalias 'hif-show-ifdef-region #[(start end) "À \nÃ#‡" [hif-outline-flag-region start end 10] 4 "\ Everything between START and END is made visible."]) (defvar hide-ifdef-evaluator (quote eval) "\ The evaluator is given a canonical form and returns T if text under that form should be displayed.") (defvar hif-undefined-symbol nil "\ ...is by default considered to be false.") (defvar hide-ifdef-env nil "\ An alist of defined symbols and their values.") (defalias 'hif-set-var #[(var value) " B\nB‰‡" [var value hide-ifdef-env] 2 "\ Prepend (var value) pair to hide-ifdef-env."]) (byte-code "ÀÁÂ\"ˆÀÃÄ\"ˆÅÅÇPÉP\nËP\fÍP\nÏ\fÏ°À‡" [defalias hif-lookup #[(var) "À \n\"‰ƒ A‚\f)‡" [assoc var hide-ifdef-env val hif-undefined-symbol] 4] hif-defined #[(var) "À !‡" [hif-lookup var] 2] "\\(^\\| \\)[ ]*#[ ]*" hif-cpp-prefix "ifndef" hif-ifndef-regexp "if\\(n?def\\)?[ ]+" hif-ifx-regexp "else" hif-else-regexp "endif" hif-endif-regexp "\\|" hif-ifx-else-endif-regexp] 5) (defalias 'hif-infix-to-prefix #[(token-list) "GÁUƒÂÃ@DD‡Ä!‡" [token-list 1 hif-lookup quote hif-parse-if-exp] 3 "\ Convert list of tokens in infix into prefix list"]) (byte-code "ÀÂć" ["^\\(!\\|&&\\|||\\|[()]\\|\\w+\\)" hif-token-regexp "\\*/" hif-end-of-comment nil] 1) (defalias 'hif-tokenize #[(expr-string) "ÀÁ\nGà ÈŽÉ\n!ˆ WƒðËÌ\n#ƒ1Á•\nSÍIˆ‚ËÎ\n#ƒdÁ•\nSÍIˆË\n#„VËÐ\n#ˆÁ•\nSÍIˆ‚ËÑ\n#ƒ|ËÐ\n#ˆÁ•‰‚Ë\n#ƒè\nÁ•OÁ•\nSÍIˆÔ˜ƒ¤Õ‚ßÖ˜ƒ¯×‚ßؘƒºÙ‚ßÚ˜ƒÅÛ‚ßܘƒÐÝ‚ßÞ˜ƒÛß‚ßà!B)‚áâ\n\"ˆ‚)Ÿ,‡" [nil 0 expr-string syntax-table current-syntax-table expr-length expr-start token-list ((set-syntax-table current-syntax-table)) set-syntax-table hide-ifdef-syntax-table string-match "^[ ]+" 10 "^/\\*" hif-end-of-comment "$" "^//" hif-token-regexp token "||" or "&&" and "!" not "defined" hif-defined "(" lparen ")" rparen intern error "Bad #if expression: %s"] 5 "\ Separate string into a list of tokens"]) (defalias 'hif-parse-if-exp #[(token-list) "À ˆÁ \nƒÃÄ\n\"ˆ‡" [hif-nexttoken hif-expr token error "Error: unexpected token: %s"] 4 "\ Parse the TOKEN-LIST. Return translated list in prefix form."]) (defalias 'hif-nexttoken #[nil "@A ‡" [token-list token] 1 "\ Pop the next token from token-list into the let variable \"token\"."]) (defalias 'hif-expr #[nil "À \nÃ=ƒÄ ˆÃ À E‚ )‡" [hif-term result token or hif-nexttoken] 3 "\ Parse and expression of the form expr : term | expr '||' term."]) (defalias 'hif-term #[nil "À \nÃ=ƒÄ ˆÃ À E‚ )‡" [hif-factor result token and hif-nexttoken] 3 "\ Parse a term of the form term : factor | term '&&' factor."]) (defalias 'hif-factor #[nil "Á=ƒ ˆÁà D‡Ä=ƒ/ ˆÅ Ç=„(ÈÉ\"‚- ˆ)‡Ê=ƒk ˆÄ=„BÈË!ˆÂ ˆ\fÍ>ƒSÈÎ\"ˆÂ ˆÇ=„`ÈÏ!ˆÂ ˆÊÐ\f)DD‡‰\fÑ>ƒxÈÒ!ˆÂ ˆÓÐ\f)DD‡" [token not hif-nexttoken hif-factor lparen hif-expr result rparen error "Bad token in parenthesized expression: %s" hif-defined "Error: expected \"(\" after \"defined\"" ident (or and not hif-defined lparen rparen) "Error: unexpected token: %s" "Error: expected \")\" after identifier" quote (or and) "Error: missing identifier" hif-lookup] 4 "\ Parse a factor of the form factor : '!' factor | '(' expr ')' | 'defined(' id ')' | id."]) (defalias 'hif-canonicalize #[nil "ŠÀ !Ã\f!ˆ`ÅÆwˆ`{ÈÉ!!\n\nƒ%Ë\nD‚'\n,‡" [looking-at hif-ifndef-regexp negate re-search-forward hif-ifx-regexp "^\n " nil expr-string hif-infix-to-prefix hif-tokenize expr not] 3 "\ When at beginning of #ifX, returns a canonical (evaluatable) form for the expression."]) (defalias 'hif-find-any-ifX #[nil "À dÂ#Ãyˆ‡" [re-search-forward hif-ifx-regexp t 0] 4 "\ Position at beginning of next #if, #ifdef, or #ifndef, including one on this line."]) (defalias 'hif-find-next-relevant #[nil "ÀˆÁ\ndÃ#…ÄyˆÀ‡" [nil re-search-forward hif-ifx-else-endif-regexp t 0] 4 "\ Position at beginning of next #ifdef, #ifndef, #else, #endif, NOT including one on this line."]) (defalias 'hif-find-previous-relevant #[nil "ÀyˆÁ\neÃ#…ÀyˆÄ‡" [0 re-search-backward hif-ifx-else-endif-regexp t nil] 4 "\ Position at beginning of previous #ifdef, #ifndef, #else, #endif, NOT including one on this line."]) (byte-code "ÀÁÂ\"ˆÀÃÄ\"ˆÀÅÆ\"‡" [defalias hif-looking-at-ifX #[nil "À !‡" [looking-at hif-ifx-regexp] 2] hif-looking-at-endif #[nil "À !‡" [looking-at hif-endif-regexp] 2] hif-looking-at-else #[nil "À !‡" [looking-at hif-else-regexp] 2]] 3) (defalias 'hif-ifdef-to-endif #[nil "À ˆÁ ƒ ˆÂ ‡Ã ƒ ‡Ä ƒŇÆÇ!‡" [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 "\ If positioned at #ifX or #else form, skip to corresponding #endif."]) (defalias 'hif-endif-to-ifdef #[nil "`Á ˆ`UƒÂÃ!ˆ)Ä ƒÅ ˆÅ ‡Æ ƒ#Å ‡Ç ƒ*ȇɇ" [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 "\ If positioned at #endif form, skip backward to corresponding #ifX."]) (defalias 'forward-ifdef #[(&optional arg) "„ÁÂWƒÃ[!ˆÂW…:[`Å „$Æ ˆÅ ƒ/Ç ˆ‚6\fbˆÈÉ!ˆ)‚‡" [arg 1 0 backward-ifdef start hif-looking-at-ifX hif-find-next-relevant hif-ifdef-to-endif error "No following #ifdef"] 2 "\ Move point to beginning of line of the next ifdef-endif. With argument, do this that many times." "p"]) (defalias 'backward-ifdef #[(&optional arg) "„ÁÂWƒÃ[!ˆÂW…=SÂyˆ`Å „'Æ ˆÅ ƒ2Ç ˆ‚9\fbˆÈÉ!ˆ)‚‡" [arg 1 0 forward-ifdef start hif-looking-at-endif hif-find-previous-relevant hif-endif-to-ifdef error "No previous #ifdef"] 2 "\ Move point to beginning of the previous ifdef-endif. With argument, do this that many times." "p"]) (defalias 'down-ifdef #[nil "`Á ˆÂ †\fà ?…bˆÄÅ!)‡" [start hif-find-next-relevant hif-looking-at-ifX hif-looking-at-else error "No following #ifdef"] 2 "\ Move point to beginning of nested ifdef or else-part." nil]) (defalias 'up-ifdef #[nil "Àyˆ` „ à ˆÂ ƒÄ ˆ `U…ÅÆ!)‡" [0 start hif-looking-at-endif hif-find-previous-relevant hif-endif-to-ifdef error "No previous #ifdef"] 2 "\ Move point to beginning of enclosing ifdef or else-part." nil]) (defalias 'next-ifdef #[(&optional arg) "„ÁÂWƒÃ[!ˆÂW…+SÄ ˆlƒÂyˆÅÆ!ˆ‚‡" [arg 1 0 previous-ifdef hif-find-next-relevant error "No following #ifdefs, #elses, or #endifs"] 2 "\ Move to the beginning of the next #ifX, #else, or #endif. With argument, do this that many times." "p"]) (defalias 'previous-ifdef #[(&optional arg) "„ÁÂWƒÃ[!ˆÂW…-S`Å ˆ\f`Uƒ)ÆÇ!ˆ)‚‡" [arg 1 0 next-ifdef start hif-find-previous-relevant error "No previous #ifdefs, #elses, or #endifs"] 2 "\ Move to the beginning of the previous #ifX, #else, or #endif. With argument, do this that many times." "p"]) (byte-code "ÀÁÂ\"ˆÀÃÄ\"ˆÀÅÆ\"ˆÀÇÈ\"ˆÀÉÊ\"‡" [defalias hif-make-range #[(else-p start end &optional else) " \n F‡" [else-p start else end] 4] hif-range-else-p #[(range) "Áœ‡" [range 0] 2] hif-range-start #[(range) "Áœ‡" [range 1] 2] hif-range-else #[(range) "Áœ‡" [range 2] 2] hif-range-end #[(range) "Áœ‡" [range 3] 2]] 3) (defalias 'hif-find-range #[nil "ŠÀyˆ`Á‰‰Æ ˆÇ ƒÈ ˆÆ ˆ‚É ƒ)Ê`‚+`\fƒKÆ ˆÇ ƒ@È ˆÆ ˆ‚2É ƒIËÌ!ˆ`Í\f \n $-‡" [0 nil end else else-p start 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 "\ Returns a Range structure describing the current #if region. Point is left unchanged."]) (defalias 'hif-hide-line #[(point) "…Š bˆÂ ÄŽÅyˆ`ÆU?…Ç`S`\"+‡" [hide-ifdef-lines point buffer-modified-p modp ((set-buffer-modified-p modp)) 0 1 hide-ifdef-region] 3 "\ Hide the line containing point. Does nothing if `hide-ifdef-lines' is nil."]) (defalias 'hif-recurse-on #[(start end) "ŠŒbˆÁˆ`\n}ˆÃ *‡" [start nil end hide-ifdef-guts] 2 "\ Call `hide-ifdef-guts' after narrowing to end of START line and END line."]) (defalias 'hif-possibly-hide #[nil "À Á ÄÅ\n!!ˆ !ƒAÇ\n!ƒ5ÄÈ\n!!ˆÉÈ\n!Å\n!S\"ˆÊË\n!È\n!\"ˆ‚kÊË\n!Å\n!\"ˆ‚kÇ\n!ƒcÄÈ\n!!ˆÉË\n!È\n!S\"ˆÊÈ\n!Å\n!\"ˆ‚kÉ`Å\n!S\"ˆÄË\n!!ˆÅ\n!bˆÌ*‡" [hif-canonicalize hif-find-range range test hif-hide-line hif-range-end hide-ifdef-evaluator hif-range-else-p hif-range-else hide-ifdef-region hif-recurse-on hif-range-start nil] 4 "\ Called at #ifX expression, this hides those parts that should be hidden, according to judgement of `hide-ifdef-evaluator'."]) (defalias 'hide-ifdef-guts #[nil "ŠebˆÀ …Á ˆ‚)‡" [hif-find-any-ifX hif-possibly-hide] 1 "\ Does the work of `hide-ifdefs', except for the work that's pointless to redo on a recursive entry."]) (defvar hide-ifdef-initially nil "\ *Non-nil if `hide-ifdefs' should be called when Hide-Ifdef mode is first activated.") (defvar hide-ifdef-hiding nil "\ Non-nil if text might be hidden.") (defvar hide-ifdef-read-only nil "\ *Set to non-nil if you want buffer to be read-only while hiding text.") (defvar hif-outside-read-only nil "\ Internal variable. Saves the value of `buffer-read-only' while hiding.") (defvar hide-ifdef-lines nil "\ *Set to t if you don't want to see the #ifX, #else, and #endif lines.") (defalias 'hide-ifdef-toggle-read-only #[nil "?Áƒ ÂÄ\"ˆ ƒ†È ‡" [hide-ifdef-read-only message "Hide-Read-Only %s" "ON" "OFF" hide-ifdef-hiding hif-outside-read-only buffer-read-only hif-update-mode-line] 3 "\ Toggle hide-ifdef-read-only." nil]) (defalias 'hide-ifdef-toggle-outside-read-only #[nil "?Áƒ ÂÄ\"ˆ ƒ†È ‡" [hif-outside-read-only message "Read only %s" "ON" "OFF" hide-ifdef-hiding hide-ifdef-read-only buffer-read-only hif-update-mode-line] 3 "\ Replacement for `toggle-read-only' within Hide Ifdef mode." nil]) (defalias 'hide-ifdef-define #[(var) "À Â\"ˆ … Ä ‡" [hif-set-var var t hide-ifdef-hiding hide-ifdefs] 3 "\ Define a VAR so that #ifdef VAR would be included." "SDefine what? "]) (defalias 'hide-ifdef-undef #[(var) "À Â\"ˆ … Ä ‡" [hif-set-var var nil hide-ifdef-hiding hide-ifdefs] 3 "\ Undefine a VAR so that #ifdef VAR would not be included." "SUndefine what? "]) (defalias 'hide-ifdefs #[nil "ÀÁ!ˆ\n„\fÂÃ!ˆ\fƒÅ ˆÆÆÆÉ ˆ)\n†& \fÀÍ!‡" [message "Hiding..." hide-ifdef-mode 1 hide-ifdef-hiding show-ifdefs t inhibit-read-only selective-display hide-ifdef-guts hide-ifdef-read-only hif-outside-read-only buffer-read-only "Hiding done"] 2 "\ 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'." nil]) (defalias 'show-ifdefs #[nil "ÂÄÆ ˆ)‰‡" [hif-outside-read-only buffer-read-only nil selective-display t inhibit-read-only hif-show-all hide-ifdef-hiding] 2 "\ Cancel the effects of `hide-ifdef'. The contents of all #ifdefs is shown." nil]) (defalias 'hif-find-ifdef-block #[nil "ÀŠÂyˆÃ „Ä „Å ˆ`Ç ˆ`S)ŠÂyˆÈ „)É ˆÄ ƒ7Ç ˆÉ ˆ‚) `S^‰\n*‡" [nil max-bottom 0 hif-looking-at-else hif-looking-at-ifX up-ifdef top hif-ifdef-to-endif hif-looking-at-endif hif-find-next-relevant bottom] 2 "\ Utility for hide and show `ifdef-block'. Set top and bottom of ifdef block."]) (defalias 'hide-ifdef-block #[nil "„ÀÁ!ˆÂĉÂÈ ˆÉ\"ˆ\nƒ,Ë!ˆËT!ˆÂ\f+ †7‰‡" [hide-ifdef-mode 1 t selective-display nil inhibit-read-only bottom top hif-find-ifdef-block hide-ifdef-region hide-ifdef-lines hif-hide-line hide-ifdef-hiding hide-ifdef-read-only hif-outside-read-only buffer-read-only] 3 "\ Hide the ifdef block (true or false part) enclosing or before the cursor." nil]) (defalias 'show-ifdef-block #[nil "À\nƒŠÃyˆÄ`Sň`\")‚'ʼnÈ ˆÄS\"*)‡" [t inhibit-read-only hide-ifdef-lines 0 hif-show-ifdef-region nil bottom top hif-find-ifdef-block] 3 "\ Show the ifdef block (true or false part) enclosing or before the cursor." nil]) (defvar hide-ifdef-define-alist nil "\ A global assoc list of pre-defined symbol lists") (defalias 'hif-compress-define-list #[(env) "ÀÁ\n\"Ƀ @ƒ @\fB A‰„ \f*‡" [mapcar #[(arg) "À @!… @‡" [hif-lookup arg] 2] env nil new-defs defs] 4 "\ Compress the define list ENV into a list of defined symbols only."]) (defalias 'hide-ifdef-set-define-alist #[(name) "Á\n!B B‰‡" [name hif-compress-define-list hide-ifdef-env hide-ifdef-define-alist] 3 "\ Set the association for NAME to `hide-ifdef-env'." "SSet define list: "]) (defalias 'hide-ifdef-use-define-alist #[(name) "À \n\"‰ƒÄÅ A\"‚ÇÈ \"ˆ …Ê )‡" [assoc name hide-ifdef-define-alist define-list mapcar #[(arg) "ÁB‡" [arg t] 2] hide-ifdef-env error "No define list for %s" hide-ifdef-hiding hide-ifdefs] 4 "\ Set `hide-ifdef-env' to the define list specified by NAME." "SUse define list: "])