(hide-ifdef-mode): Set line-move-ignore-invisible.
(hide-ifdef-region-internal): New function.
(hide-ifdef-region): Use it.
(hif-defined): Return an integer.
(hif-infix-to-prefix): Remove.
(hif-tokenize): Parse from the buffer rather than from a string.
Correctly tokenize integers. Use forward-comment.
(hif-expr): Use hif-or.
(hif-term): Use hif-and.
(hif-factor): Use hif-not. Handle numbers properly.
Don't require parenthesis around `defined's argument.
(hif-and, hif-or, hif-not): New funs.
(hif-canonicalize): Pass a region to hif-tokenize. Use hif-not.
(hif-hide-line): Don't hide the \n before the line.
(hif-possibly-hide): Correctly handle numeric evaluation results.
(hide-ifdef-mode-submap): Put the def in the defvar.
Use substitute-key-definition.
(hide-ifdef-mode): Use define-minor-mode.
(hif-outline-flag-region): Remove.
(hif-show-all): Define in terms of hif-show-ifdef-region.
(hif-after-revert-function): Rename from hif-before-revert-function.
(hide-ifdef-region, hif-show-ifdef-region): Use overlays.
(hif-tokenize): Use with-syntax-table.
(hif-make-range): Use `else' also for `else-p'.
(hif-range-else-p): Remove.
(hif-find-range): Simplify.
(hif-hide-line): Don't bother preserving buffer-modified-p.
(hide-ifdefs, show-ifdefs, hide-ifdef-block, show-ifdef-block):
Don't use selective-display and inhibit-read-only.
Move declaration before first use.
(hif-parse-if-exp, hif-nexttoken, hif-expr, hif-term, hif-eq-expr,
hif-math, hif-factor): Rename token to hif-token and token-list to
hif-token-list.
(hif-token, hif-token-list): Declare them.
(hif-find-ifdef-block): Return cons of top and bottom point
instead of setting dynamically bound variables.
(hide-ifdef-block, show-ifdef-block): Use return value of
hif-find-ifdef-block.
(hif-less-equal): New functions.
(hif-tokenize): Handle new tokens >, <, >=, <=.
(hif-eq-expr): Handle parsing these new tokens.
(hif-token-regexp): Match >, <. >=, <=
Set buffer-read-only directly.
(hide-ifdef-block): Likewise.
(show-ifdef-block): Bind inhibit-read-only; don't set buffer-read-only.
Delete bindings for C-c C-f, C-c C-b, C-c C-u, C-c C-d,
C-c C-p and C-c C-n. Move C-c C-h to C-c C-d.
(define-hide-ifdef-mode-map): Remove this code
from a function and execute it at load time.
(hide-ifdef-mode-submap): New variable holds the list of commands.
(hide-ifdef-mode-map): Set this up with a prefix key
and put it in minor-mode-map-alist.
(hide-ifdef-mode-map-before): Variable deleted.
(hide-ifdef-mode): Use force-mode-line-update.
Delete the code to manipulate keymaps.
(define-hide-ifdef-mode-map):
Pass (keymap) as KEYMAP arg to where-is-internal.