2006-02-10 Ken Manheimer This omnibus patch settles some serious bugs and converts allout to use invisible-text overlays instead of selective display for concealed text. Overlays eliminate the need for some very kludgy provisions for dynamic exposure during isearch, undo aggregation, and discretionary response to attempted edits of concealed text. Also, lots of general cleanup, including ditching of many accumulated unused variables. This version also works out compatability with emacs and XEmacs 21.4. (allout-version) Incremented, corrected, revised, and refined module commentary. (provide 'allout) moved to the bottom, added a require of overlay (which is needed by some emacs versions). (allout-encrypt-unencrypted-on-saves): Now defaults to t instead of 'except-current, since i've tamed the behavior (allout-write-file-hook-handler): Minimize delay. (count-trailing-whitespace-region): New function so auto-encryption of current topic can resituate cursor exactly. PGP/GPG encryption trims trailing whitespace from lines, which must be accounted for across encryption then decryption. (allout-command-prefix): Now defaults to "\C-c" rather than just plain "\C-c", to avoid intruding on user's keybinding space. (allout-toggle-current-subtree-encryption): pass along fetch-pass parameter, so user request to provide a new password is done. (allout-outside-normal-auto-fill-function, allout-auto-fill): Refined mechanism for auto-filling behavior while in allout mode. (allout-mode): Explicitly specified the mode map in the docstring so command-key substitutions resolve properly, and refined the docstring a lot. Clarified provision for various write-file hook var names. Adjusted for invisible-text overlays instead of selective-display. (allout-depth): Really return 0 if not within any topic. This rectifies `allout-beginning-of-level' and sequence numbering errors that occur when cutting and pasting numbered topics. Changed from a in-line subst to a regular function, as well. (allout-pre-next-prefix): Renamed from allout-pre-next-preface. (allout-end-of-subtree, allout-end-of-subtree, allout-end-of-entry, allout-end-of-current-heading, allout-next-visible-heading, allout-open-topic, allout-show-entry, allout-show-children, allout-show-to-offshoot, allout-hide-current-entry, allout-show-current-entry): Rectified handling of trailing blank lines between items, rationalizing the code i think. (allout-line-boundary-regexp, set-allout-regexp, allout-depth, allout-current-depth, allout-unprotected, allout-hidden-p, allout-on-current-heading-p, allout-listify-exposed, allout-chart-subtree, allout-goto-prefix, allout-back-to-current-heading, allout-get-body-text, allout-snug-back, allout-flag-current-subtree, allout-show-all, allout-hide-region-body, allout-toggle-subtree-encryption, allout-encrypt-string, allout-encrypted-key-info, allout-next-topic-pending-encryption, allout-encrypt-decrypted, allout-file-vars-section-data): Adjusted for use with invisible-text overlays instead of selective-display. (allout-kill-line, allout-kill-topic, allout-yank-processing): Reworked for use with invisible text overlays. (allout-current-topic-collapsed-p): New function makes allout-hide-current-subtree's job easier. (allout-hide-current-subtree): Use new allout-current-topic-collapsed-p to know when to close the containing topic. (allout-post-command-business): Reduced dramatically with simplification of undo-batching and dynamic isearch exposure provisions. (allout-pre-command-business): Also reduced with simplification of undo-batching and dynamic isearch exposure provisions. (allout-set-overlay-category): New for invisible-text overlays. Sets properties of allout-overlay-category, used by allout-flag-region to set invisible-text overlay properties. (allout-get-invisibility-overlay): get the first qualifying invisibility overlay, so we can find the extent of it. (allout-back-to-visible-text): get to just before the beginnining of the current invisibility overlay, if any. (allout-overlay-insert-in-front-handler, allout-overlay-interior-modification-handler, allout-before-change-handler, allout-isearch-end-handler): New functions to handle extraordinary actions affecting concealed text. (allout-flag-region): Use overlays instead of selective-display for invisible text - by inheritence from the properties of allout-overlay-category in mainline emacs, and applied property-by-property in xemacs, some recent versions of which don't inherit the properties from the category. Provisions to respond to concealed-text edits simplified drastically. (allout-isearch-rectification, allout-isearch-was-font-lock, allout-isearch-expose, allout-enwrap-isearch, allout-isearch-abort, allout-pre-was-isearching, allout-isearch-prior-pos, allout-isearch-did-quit, allout-isearch-dynamic-expose, allout-hide-current-entry-completely): Removed - obsoleted by switch to overlays for invisible text (allout-undo-aggregation, Explicit undo aggregation no longer necessary due to transition away from selective-display. (set-allout-regexp, allout-up-current-level, allout-next-visible-heading, allout-forward-current-level, allout-open-topic, allout-reindent-body, allout-rebullet-topic, allout-kill-line, allout-yank-processing, allout-show-children, allout-expose-topic, allout-old-expose-topic, allout-listify-exposed, allout-insert-latex-header, allout-toggle-subtree-encryption, allout-encrypt-string, remove-from-invisibility-spec, allout-hide-current-subtree): Ditched unused variables.