2006-07-08 Ken Manheimer * allout.el: Require 'cl. (allout-mode-deactivate-hook): New hook, is run when allout mode deactivates. (allout-developer): New allout customization subgroup. (allout-run-unit-tests-after-load): New allout-developer customization variable, when true allout unit tests are run after file load. (allout-inhibit-auto-fill): Disable auto-fill activity even during auto-fill-mode. (allout-resumptions): Removed, to be replaced by... (allout-add-resumptions): Register variable settings to be reinstated by `allout-do-resumptions'. The settings are made buffer-local, but the locality/globality of the suspended setting is restored on resumption. (allout-do-resumptions): Reinstate all settings suspended using `allout-add-resumptions'. (allout-test-resumptions): Unit tests (and intermediate variables) for resumptions. (allout-tests-globally-unbound, allout-tests-globally-true) (allout-tests-locally-true): Intermediate variables for resumptions unit tests. (allout-overlay-preparations): Replaces `allout-set-overlay-category'. (allout-exposure-category): Replaces 'allout-overlay-category variable. (allout-mode): Use `allout-add-resumptions' and `allout-do-resumptions' instead of retired `allout-resumptions'. For hook functions, use `local' parameter so hook settings are created and removed as buffer-local settings. Revise (resumptions) setting auto-fill-function so it is set only if already active. (The related fill-function settings are all made in either case, so that activating auto-fill-mode activity will have the custom allout-mode behaviors (hanging indent on topics, if configured for it). Also, remove all allout-exposure-category overlays on mode deactivation. (allout-hotspot-key-handler): New function extracted from `allout-pre-command-business', so the functionality can be used for other purposes, eg as a binding in an overlay. (allout-pre-command-business): Use new `allout-hotspot-key-handler'. (allout-auto-fill): Respect new `allout-inhibit-auto-fill' customization variable. (allout-run-unit-tests): Run the (currently quite small) repertoire of unit tests. Called from an eval-after-load statement if user has customized `allout-run-unit-tests-after-load' non-nil. 2006-06-17 Ken Manheimer * allout.el: (allout-inhibit-auto-fill): New custom configuration variable, makes it easy to inhibit allout auto fill in general or on a buffer-by-buffer basis. (allout-overlay-preparations): Better name than allout-set-overlay-category (particularly when i add a few more overlays). (allout-next-heading): Fixed bug where it would skip the first heading if preceded in the buffer by only a blank line. Also, fixed docstring cut-and-paste error. (allout-kill-topic): Add collapsed-cue text property within allout-unprotected. 2006-05-11 Ken Manheimer * allout.el: (allout-show-bodies, allout-old-style-prefixes) (allout-stylish-prefixes, allout-numbered-bullet) (allout-file-xref-bullet, allout-use-hanging-indents): Use simple predicates to qualify `safe-local-variable' property, when available, else use equivalent lambda. (allout-current-topic-collapsed-p): Do the right thing regarding trailing blank lines. 2006-05-12 Ken Manheimer * allout.el: (allout-view-change-hook): Mark as being deprecated, to be replaced by `allout-exposure-change-hook'. (allout-exposure-change-hook): New, replacing `allout-view-change-hook'. (allout-flag-region): Run new hook `allout-exposure-change-hook', in addition to `allout-view-change-hook'. (allout-show-bodies, allout-old-style-prefixes) (allout-stylish-prefixes, allout-use-hanging-indents): Quote the lambda forms to prevent their showing up in variable help presentations as inscrutable byte-compiled code. (allout-numbered-bullet, allout-file-xref-bullet, allout-layout): Use string-or-null-p to qualify safe-local-variable values. (allout-reindent-bodies): Use memq to qualify matches against valid safe-local-variable values. Also, quote the lambda as above. (allout-use-mode-specific-leader): Add missing candidate-value symbols, use memq, and quote the lambda. (allout-overlay-interior-modification-handler): Remove unused variables `msg' and 'opened'. (allout-hidden-p): Constrain invisibility consideration to allout's invisibility spec, disregarding invisibility for other reasons. 2006-04-17 Ken Manheimer * allout.el: Remove local autoload declaration for pgg-gpg-symmetric-key-p, since that's now done in pgg-gpg.el. (allout-show-bodies, allout-header-prefix, allout-primary-bullet) (allout-plain-bullets-string, allout-distinctive-bullets-string) (allout-use-mode-specific-leader, allout-old-style-prefixes) (allout-stylish-prefixes, allout-numbered-bullet) (allout-file-xref-bullet, allout-presentation-padding) (allout-use-hanging-indents, allout-reindent-bodies): Mark as safe-local-variable with suitable value spec, and add autoload cookie for loaddefs inclusion. We now use an explicit spec everywhere. (move-beginning-of-line, move-end-of-line): Repair so these compat functions now actually resituate the point, when appropriate. 2006-04-26 Stefan Monnier * allout.el (allout-layout, allout-passphrase-verifier-string) (allout-passphrase-hint-string): Tighten up a bit the safety predicate. 2006-03-14 Ken Manheimer * allout.el: Increment version to 2.2.1 in file commentary. (allout-version): Increment to 2.2.1. (allout-default-layout): New customization variable, used when the file lacks a specific allout-layout. Uses allout-layout-type for recursively nested definition. (allout-layout-type): Widget defining allout layouts, necessary for self-recursive definition. (allout-mode): Incorporate allout-default-layout as fallback for allout-layout. (allout-layout): Mark as 'safe-local-variable', and refer mention fallback to `allout-default-layout' in absence of a specified value. (allout-passphrase-verifier-string) (allout-passphrase-hint-string): Mark as 'safe-local-variable'. (allout-file-passphrase-verifier-string): Obsolete variable, removed. (allout-get-encryption-passphrase-verifier): Use correct name of passphrase verifier in docstring. 2006-03-03 Ken Manheimer * allout.el: Restablish intermediate missing comment header to preserve outline structure. (allout-beginning-of-current-entry): Skip invisible text. (allout-open-topic): Fix opening a topic at end-of-buffer. (allout-minor-mode): Move nearer to allout-mode function. 2006-02-17 Eli Zaretskii * allout.el (allout-hidden-p): Move this defsubst before allout-overlay-interior-modification-handler, where it is first used. 2006-02-17 Ken Manheimer * allout.el: Use allout invisible-text overlays instead of selective display for concealed text. Also, lots of general cleanup, and improved compatibility code. (allout-version) Incremented, corrected, revised, and refined module commentary. (provide 'allout): Moved to the bottom, added a require of overlay. (allout-encrypt-unencrypted-on-saves): Defaults to t instead of `except-current'. (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 specify the mode map in the docstring. Clarify 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. (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. (allout-hide-current-subtree): Use allout-current-topic-collapsed-p to know when to close the containing topic. (allout-pre-command-business, allout-post-command-business): Simplify undo-batching and dynamic isearch exposure. (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): Functions deleted. (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. 2005-12-02 Ken Manheimer * allout.el (eval-when-compile): Remove unnecessary load of cl. Add fset of allout-real-isearch-abort during compile to fix byte-compilation warnings. (allout-mode-p): Move definition of this macro above all uses, or byte compilation in barren emacs (eg, during emacs build) will lack the definition. (allout-mode): Move this variable above any uses, or byte compilation will fail. (allout-resolve-xref): Remove use of personal file-reference function. (allout-toggle-current-subtree-encryption): Do the current (ie, visible containing) topic, rather than nearest around point. Doc fix. (allout-toggle-subtree-encryption): New function, workhorse that works on nearest topic containing point. (allout-encrypt-string): Signal requirement for newer version of pgg. (allout-resumptions): Doc fix. 2005-10-23 Ken Manheimer * allout.el: Remove autoloads for mailcrypt and crypt++. Require pgg, pgg-gpg during compilation. (allout-version): Increment version number to 2.1, and use a literal rather than RCS Id. (allout-default-encryption-scheme): Remove. (allout-passphrase-verifier-handling) (allout-passphrase-verifier-string) (allout-file-passphrase-verifier-string) (allout-passphrase-hint-string): Rename -key- to -passphrase-. (allout-passphrase-hint-handling): Rename and simplify. (allout-init): Use `find-file-hook' if available, otherwise `find-file-hooks'. (allout-mode): Use `write-file-functions' if available, otherwise `local-write-file-hooks' and, instead of making auto-save-hook buffer local, make the write-file-hook activity contingent to allout-mode. (allout-mode): Use key-binding substitution in the docstring. (allout-kill-line): Spell-out kill ring data structure mutation instead of using byte-compiler-complaint-provoking `pop'. (allout-insert-listified): Use `insert' rather than `insert-string' (allout-toggle-current-subtree-encryption): Update docstring, adjust to new gpp-based encryption, use new `allout-encrypted-topic-p'. (allout-encrypt-string): Totally revamped vis new underlying encryption facilities. (allout-mc-activate-passwd): Remove. (allout-obtain-passphrase): New, more or less replaces allout-mc-activate-passwd. (allout-encrypted-key-info): More or less replaces allout-encrypted-text-type. (outlineify-sticky, outlinify-sticky): Add autoload cookie. (my-mark-marker): Use `(featurep 'xemacs)'. 2005-10-20 Ken Manheimer * allout.el: Add autoloads of crypt++ and mailcrypt routines, all for encryption functionality. Move allout customization subgroup from `editing' to `outlines' group. Fix commentary keywords to legitimate ones. Update author info (using my current email address, obscurified). (allout-encrypt-string, allout-encryption-produce-work-buffer) (allout-encrypted-topic-p, allout-encrypted-text-type) (allout-mc-activate-passwd, allout-create-encryption-key-verifier) (allout-situate-encryption-key-verifier) (allout-get-encryption-key-verifier, allout-verify-key) (allout-next-topic-pending-encryption) (allout-encrypt-decrypted, allout-encrypted-type-prefix): New funcs. (outline-topic-encryption-bullet, outline-default-encryption-scheme) (outline-key-verifier-handling, outline-key-hint-handling) (outline-encrypt-unencrypted-on-saves): New defcustoms. (allout-file-key-verifier-string, allout-encryption-scheme) (allout-key-verifier-string, allout-key-hint-string) (allout-after-save-decrypt): New variables. (allout-write-file-hook-handler, allout-auto-save-hook-handler) (allout-after-saves-handler): New hook functions. (allout-post-command-business): Do allout-after-save-decrypt. (allout-enable-file-variable-adjustment): Custom var to enable mechanism for adding and adjusting settings of Emacs file variables. (allout-adjust-file-variable, allout-file-vars-section-data): New functions, implement the mechanism. (outlineify-sticky): Use the file vars mechanism. (allout-inhibit-protection, allout-during-write-cue) (allout-override-protect, allout-before-change-protect): Remove. (allout-flag-region, allout-open-topic): Adjust read-only text. (allout-open-line-not-read-only): Add to facilitate read-only text based protection. (allout-kill-line): Revise to adjust read-only text, clue the user about the inhibition. (allout-unprotected): Use unwind-protect. (allout-shift-in, allout-shift-out): Disallow manually shifting a topic deeper than the offspring depth of the previous topic - avoiding confusing "containment discontinuities". (allout-reindent-bodies): Fix retention of body relative hanging indent during promotion of collapsed bodies. (allout-open-topic): Make it easy to open new topic with same bullet as current topic - topic creation functions provided with any universal argument provokes now prompt for bullet, defaulting to the bullet of the previous topic. (allout-plain-bullets-string, allout-distinctive-bullets-string): Plain bullet alternates `.' period and `,' comma only. All other bullets are relegated to special status (but customizable). (allout-end-of-entry): Rename from allout-end-of-current-entry since it actually operates w.r.t. most immediately containing entry, visible or not. (allout-hide-current-entry, allout-show-current-entry): Use the revised version. (allout-old-expose-topic): Solidify deprecation. (allout-end-of-subtree): Add so we can span concealed as well as visible topics. (allout-end-of-current-subtree): Use `allout-end-of-subtree'. (allout-end-of-current-heading): Tweak to just respect the first line. (allout-get-body-text): Add. (allout-ascend-to-depth, allout-ascend): Position at end of prefix when invoked interactively. (allout-up-current-level): Use `interactive-p'. (allout-mode, allout-init): Miscellaneous docstring and operational refinements, as well as hookups of new encryption stuff. (allout-beginning-of-current-entry): Now works as advertised. (allout-end-of-current-entry): Remove of superfluous allout-show-entry. (allout-isearch-rectification): Refine condition for isearching. (allout-isearch-abort, allout-enwrap-isearch) (allout-flag-region, my-region-active-p): Relocate some macros. (allout-title): Fallback title is (buffer-name), not non-existing (current-buffer-name). (subst-char-in-string): Define if absent (for some XEmacs versions).