comparison lisp/allout.el @ 48858:f4d079377a9a

Avoid name conflicts with outline.el. Use 3 installments to keep diffs understandable. Change 3: Doc changes to adjust to the change to prefix "allout-". Don't provide 'outline. Use " Allout" as mode line string, not " Outl". Put group 'allout in group 'editing. Update Copyright notice. Autoload `allout-init'.
author Markus Rost <rost@math.uni-bielefeld.de>
date Mon, 16 Dec 2002 00:42:23 +0000
parents 8641226163f1
children 1c806f4edc19
comparison
equal deleted inserted replaced
48857:8641226163f1 48858:f4d079377a9a
1 ;;; allout.el --- extensive outline mode for use alone and with other modes 1 ;;; allout.el --- extensive outline mode for use alone and with other modes
2 2
3 ;; Copyright (C) 1992, 1993, 1994, 2001 Free Software Foundation, Inc. 3 ;; Copyright (C) 1992, 1993, 1994, 2001, 2002 Free Software Foundation, Inc.
4 4
5 ;; Author: Ken Manheimer <klm@python.org> 5 ;; Author: Ken Manheimer <klm@python.org>
6 ;; Maintainer: Ken Manheimer <klm@python.org> 6 ;; Maintainer: Ken Manheimer <klm@python.org>
7 ;; Created: Dec 1991 - first release to usenet 7 ;; Created: Dec 1991 - first release to usenet
8 ;; Version: $Id: allout.el,v 1.35 2002/12/16 00:20:42 rost Exp $|| 8 ;; Version: $Id: allout.el,v 1.36 2002/12/16 00:26:22 rost Exp $||
9 ;; Keywords: outlines mode wp languages 9 ;; Keywords: outlines mode wp languages
10 10
11 ;; This file is part of GNU Emacs. 11 ;; This file is part of GNU Emacs.
12 12
13 ;; GNU Emacs is free software; you can redistribute it and/or modify 13 ;; GNU Emacs is free software; you can redistribute it and/or modify
44 ;; exposure control. (See the `allout-mode' docstring.) 44 ;; exposure control. (See the `allout-mode' docstring.)
45 ;; 45 ;;
46 ;; and many other features. 46 ;; and many other features.
47 ;; 47 ;;
48 ;; The outline menubar additions provide quick reference to many of 48 ;; The outline menubar additions provide quick reference to many of
49 ;; the features, and see the docstring of the variable `allout-init' 49 ;; the features, and see the docstring of the function `allout-init'
50 ;; for instructions on priming your emacs session for automatic 50 ;; for instructions on priming your emacs session for automatic
51 ;; activation of `allout-mode'. 51 ;; activation of `allout-mode'.
52 ;; 52 ;;
53 ;; See the docstring of the variables `allout-layout' and 53 ;; See the docstring of the variables `allout-layout' and
54 ;; `allout-auto-activation' for details on automatic activation of 54 ;; `allout-auto-activation' for details on automatic activation of
61 ;; Ken Manheimer klm@python.org 61 ;; Ken Manheimer klm@python.org
62 62
63 ;;; Code: 63 ;;; Code:
64 64
65 ;;;_* Provide 65 ;;;_* Provide
66 (provide 'outline)
67 (provide 'allout) 66 (provide 'allout)
68 67
69 ;;;_* USER CUSTOMIZATION VARIABLES: 68 ;;;_* USER CUSTOMIZATION VARIABLES:
70 (defgroup allout nil 69 (defgroup allout nil
71 "Extensive outline mode for use alone and with other modes." 70 "Extensive outline mode for use alone and with other modes."
72 :prefix "allout-" 71 :prefix "allout-"
73 :group 'outlines) 72 :group 'editing)
74 73
75 ;;;_ + Layout, Mode, and Topic Header Configuration 74 ;;;_ + Layout, Mode, and Topic Header Configuration
76 75
77 ;;;_ = allout-auto-activation 76 ;;;_ = allout-auto-activation
78 (defcustom allout-auto-activation nil 77 (defcustom allout-auto-activation nil
82 outline mode is automatically activated when the buffer-specific 81 outline mode is automatically activated when the buffer-specific
83 variable `allout-layout' is non-nil, and whether or not the layout 82 variable `allout-layout' is non-nil, and whether or not the layout
84 dictated by `allout-layout' should be imposed on mode activation. 83 dictated by `allout-layout' should be imposed on mode activation.
85 84
86 With value `t', auto-mode-activation and auto-layout are enabled. 85 With value `t', auto-mode-activation and auto-layout are enabled.
87 \(This also depends on `allout-find-file-hooks' being installed in 86 \(This also depends on `allout-find-file-hook' being installed in
88 `find-file-hooks', which is also done by `allout-init'.) 87 `find-file-hooks', which is also done by `allout-init'.)
89 88
90 With value `ask', auto-mode-activation is enabled, and endorsement for 89 With value `ask', auto-mode-activation is enabled, and endorsement for
91 performing auto-layout is asked of the user each time. 90 performing auto-layout is asked of the user each time.
92 91
108 "*Layout specification and provisional mode trigger for allout outlines. 107 "*Layout specification and provisional mode trigger for allout outlines.
109 108
110 Buffer-specific. 109 Buffer-specific.
111 110
112 A list value specifies a default layout for the current buffer, to be 111 A list value specifies a default layout for the current buffer, to be
113 applied upon activation of allout `allout-mode'. Any non-nil value will 112 applied upon activation of `allout-mode'. Any non-nil value will
114 automatically trigger allout `allout-mode', provided `allout-init' 113 automatically trigger `allout-mode', provided `allout-init'
115 has been called to enable it. 114 has been called to enable it.
116 115
117 See the docstring for `allout-init' for details on setting up for 116 See the docstring for `allout-init' for details on setting up for
118 auto-mode-activation, and for `allout-expose-topic' for the format of 117 auto-mode-activation, and for `allout-expose-topic' for the format of
119 the layout specification. 118 the layout specification.
259 character, like an \"_\" underscore, to distinguish the lead string 258 character, like an \"_\" underscore, to distinguish the lead string
260 from regular comments that start at bol.") 259 from regular comments that start at bol.")
261 260
262 ;;;_ = allout-old-style-prefixes 261 ;;;_ = allout-old-style-prefixes
263 (defcustom allout-old-style-prefixes nil 262 (defcustom allout-old-style-prefixes nil
264 "*When non-nil, use only old-and-crusty allout-mode `*' topic prefixes. 263 "*When non-nil, use only old-and-crusty `outline-mode' `*' topic prefixes.
265 264
266 Non-nil restricts the topic creation and modification 265 Non-nil restricts the topic creation and modification
267 functions to asterix-padded prefixes, so they look exactly 266 functions to asterix-padded prefixes, so they look exactly
268 like the original emacs-outline style prefixes. 267 like the original emacs-outline style prefixes.
269 268
507 506
508 ;;;_ #1 Internal Outline Formatting and Configuration 507 ;;;_ #1 Internal Outline Formatting and Configuration
509 ;;;_ : Version 508 ;;;_ : Version
510 ;;;_ = allout-version 509 ;;;_ = allout-version
511 (defvar allout-version 510 (defvar allout-version
512 (let ((rcs-rev "$Revision: 1.35 $")) 511 (let ((rcs-rev "$Revision: 1.36 $"))
513 (condition-case err 512 (condition-case err
514 (save-match-data 513 (save-match-data
515 (string-match "Revision: \\([0-9]+\\.[0-9]+\\)" rcs-rev) 514 (string-match "Revision: \\([0-9]+\\.[0-9]+\\)" rcs-rev)
516 (substring rcs-rev (match-beginning 1) (match-end 1))) 515 (substring rcs-rev (match-beginning 1) (match-end 1)))
517 ('error rcs-rev))) 516 ('error rcs-rev)))
545 (defvar allout-bullets-string-len 0 544 (defvar allout-bullets-string-len 0
546 "Length of current buffers' `allout-plain-bullets-string'.") 545 "Length of current buffers' `allout-plain-bullets-string'.")
547 (make-variable-buffer-local 'allout-bullets-string-len) 546 (make-variable-buffer-local 'allout-bullets-string-len)
548 ;;;_ = allout-line-boundary-regexp 547 ;;;_ = allout-line-boundary-regexp
549 (defvar allout-line-boundary-regexp () 548 (defvar allout-line-boundary-regexp ()
550 "Allout-regexp with allout-style beginning-of-line anchor. 549 "`allout-regexp' with outline style beginning-of-line anchor.
551 550
552 \(Ie, C-j, *or* C-m, for prefixes of hidden topics). This is properly 551 \(Ie, C-j, *or* C-m, for prefixes of hidden topics). This is properly
553 set when `allout-regexp' is produced by `set-allout-regexp', so 552 set when `allout-regexp' is produced by `set-allout-regexp', so
554 that (match-beginning 2) and (match-end 2) delimit the prefix.") 553 that (match-beginning 2) and (match-end 2) delimit the prefix.")
555 (make-variable-buffer-local 'allout-line-boundary-regexp) 554 (make-variable-buffer-local 'allout-line-boundary-regexp)
797 ["Set Header Lead" allout-reset-header-lead t] 796 ["Set Header Lead" allout-reset-header-lead t]
798 ["Set New Exposure" allout-expose-topic t]))) 797 ["Set New Exposure" allout-expose-topic t])))
799 ;;;_ : Mode-Specific Variable Maintenance Utilities 798 ;;;_ : Mode-Specific Variable Maintenance Utilities
800 ;;;_ = allout-mode-prior-settings 799 ;;;_ = allout-mode-prior-settings
801 (defvar allout-mode-prior-settings nil 800 (defvar allout-mode-prior-settings nil
802 "Internal outline mode use; settings to be resumed on mode deactivation.") 801 "Internal `allout-mode' use; settings to be resumed on mode deactivation.")
803 (make-variable-buffer-local 'allout-mode-prior-settings) 802 (make-variable-buffer-local 'allout-mode-prior-settings)
804 ;;;_ > allout-resumptions (name &optional value) 803 ;;;_ > allout-resumptions (name &optional value)
805 (defun allout-resumptions (name &optional value) 804 (defun allout-resumptions (name &optional value)
806 805
807 "Registers or resumes settings over `allout-mode' activation/deactivation. 806 "Registers or resumes settings over `allout-mode' activation/deactivation.
909 "Horrible hack used to prevent invalid multiple triggering of outline 908 "Horrible hack used to prevent invalid multiple triggering of outline
910 mode from prop-line file-var activation. Used by `allout-mode' function 909 mode from prop-line file-var activation. Used by `allout-mode' function
911 to track repeats.") 910 to track repeats.")
912 ;;;_ > allout-write-file-hook () 911 ;;;_ > allout-write-file-hook ()
913 (defun allout-write-file-hook () 912 (defun allout-write-file-hook ()
914 "In outline mode, run as a `local-write-file-hooks' activity. 913 "In `allout-mode', run as a `local-write-file-hooks' activity.
915 914
916 Currently just sets `allout-during-write-cue', so allout-change-protection 915 Currently just sets `allout-during-write-cue', so outline change-protection
917 knows to keep inactive during file write." 916 knows to keep inactive during file write."
918 (setq allout-during-write-cue t) 917 (setq allout-during-write-cue t)
919 nil) 918 nil)
920 919
921 ;;;_ #2 Mode activation 920 ;;;_ #2 Mode activation
926 (defmacro allout-mode-p () 925 (defmacro allout-mode-p ()
927 "Return t if `allout-mode' is active in current buffer." 926 "Return t if `allout-mode' is active in current buffer."
928 'allout-mode) 927 'allout-mode)
929 ;;;_ = allout-explicitly-deactivated 928 ;;;_ = allout-explicitly-deactivated
930 (defvar allout-explicitly-deactivated nil 929 (defvar allout-explicitly-deactivated nil
931 "Allout-mode was last deliberately deactivated. 930 "Non-nil if `allout-mode' was last deliberately deactivated.
932 So `allout-post-command-business' should not reactivate it...") 931 So `allout-post-command-business' should not reactivate it...")
933 (make-variable-buffer-local 'allout-explicitly-deactivated) 932 (make-variable-buffer-local 'allout-explicitly-deactivated)
934 ;;;_ > allout-init (&optional mode) 933 ;;;_ > allout-init (&optional mode)
934 ;;;###autoload
935 (defun allout-init (&optional mode) 935 (defun allout-init (&optional mode)
936 "Prime `allout-mode' to enable/disable auto-activation, wrt `allout-layout'. 936 "Prime `allout-mode' to enable/disable auto-activation, wrt `allout-layout'.
937 937
938 MODE is one of the following symbols: 938 MODE is one of the following symbols:
939 939
948 Use this function to setup your emacs session for automatic activation 948 Use this function to setup your emacs session for automatic activation
949 of allout outline mode, contingent to the buffer-specific setting of 949 of allout outline mode, contingent to the buffer-specific setting of
950 the `allout-layout' variable. (See `allout-layout' and 950 the `allout-layout' variable. (See `allout-layout' and
951 `allout-expose-topic' docstrings for more details on auto layout). 951 `allout-expose-topic' docstrings for more details on auto layout).
952 952
953 `allout-init' works by setting up (or removing) the allout-mode 953 `allout-init' works by setting up (or removing)
954 find-file-hook, and giving `allout-auto-activation' a suitable 954 `allout-find-file-hook' in `find-file-hooks', and giving
955 setting. 955 `allout-auto-activation' a suitable setting.
956 956
957 To prime your emacs session for full auto-outline operation, include 957 To prime your emacs session for full auto-outline operation, include
958 the following two lines in your emacs init file: 958 the following two lines in your emacs init file:
959 959
960 \(require 'allout) 960 \(require 'allout)
1006 "Outline mode auto-activation and -layout enabled.") 1006 "Outline mode auto-activation and -layout enabled.")
1007 'full))))))) 1007 'full)))))))
1008 1008
1009 ;;;_ > allout-setup-menubar () 1009 ;;;_ > allout-setup-menubar ()
1010 (defun allout-setup-menubar () 1010 (defun allout-setup-menubar ()
1011 "Populate the current buffer's menubar with allout allout-mode stuff." 1011 "Populate the current buffer's menubar with `allout-mode' stuff."
1012 (let ((menus (list allout-mode-exposure-menu 1012 (let ((menus (list allout-mode-exposure-menu
1013 allout-mode-editing-menu 1013 allout-mode-editing-menu
1014 allout-mode-navigation-menu 1014 allout-mode-navigation-menu
1015 allout-mode-misc-menu)) 1015 allout-mode-misc-menu))
1016 cur) 1016 cur)
1025 "Toggle minor mode for controlling exposure and editing of text outlines. 1025 "Toggle minor mode for controlling exposure and editing of text outlines.
1026 1026
1027 Optional arg forces mode to re-initialize iff arg is positive num or 1027 Optional arg forces mode to re-initialize iff arg is positive num or
1028 symbol. Allout outline mode always runs as a minor mode. 1028 symbol. Allout outline mode always runs as a minor mode.
1029 1029
1030 Allout outline mode provides extensive allout-oriented formatting and 1030 Allout outline mode provides extensive outline oriented formatting and
1031 manipulation. It enables structural editing of outlines, as well as 1031 manipulation. It enables structural editing of outlines, as well as
1032 navigation and exposure. It also is specifically aimed at 1032 navigation and exposure. It also is specifically aimed at
1033 accommodating syntax-sensitive text like programming languages. \(For 1033 accommodating syntax-sensitive text like programming languages. \(For
1034 an example, see the allout code itself, which is organized as an allout 1034 an example, see the allout code itself, which is organized as an allout
1035 outline.) 1035 outline.)
1174 The string at the beginning of a topic prefix, normally a `.'. 1174 The string at the beginning of a topic prefix, normally a `.'.
1175 It can be customized by changing the setting of 1175 It can be customized by changing the setting of
1176 `allout-header-prefix' and then reinitializing `allout-mode'. 1176 `allout-header-prefix' and then reinitializing `allout-mode'.
1177 1177
1178 By setting the prefix-lead to the comment-string of a 1178 By setting the prefix-lead to the comment-string of a
1179 programming language, you can embed allout-structuring in 1179 programming language, you can embed outline structuring in
1180 program code without interfering with the language processing 1180 program code without interfering with the language processing
1181 of that code. See `allout-use-mode-specific-leader' 1181 of that code. See `allout-use-mode-specific-leader'
1182 docstring for more detail. 1182 docstring for more detail.
1183 PREFIX-PADDING: 1183 PREFIX-PADDING:
1184 Spaces or asterisks which separate the prefix-lead and the 1184 Spaces or asterisks which separate the prefix-lead and the
1235 ;; Emacs v 19.18, 19.19 file-var code invokes prop-line-designated 1235 ;; Emacs v 19.18, 19.19 file-var code invokes prop-line-designated
1236 ;; modes twice when file is visited. We have to avoid toggling mode 1236 ;; modes twice when file is visited. We have to avoid toggling mode
1237 ;; off on second invocation, so we detect it as best we can, and 1237 ;; off on second invocation, so we detect it as best we can, and
1238 ;; skip everything. 1238 ;; skip everything.
1239 ((and same-complex-command ; Still in same complex command 1239 ((and same-complex-command ; Still in same complex command
1240 ; as last time `allout-mode' invoked. 1240 ; as last time `allout-mode' invoked.
1241 active ; Already activated. 1241 active ; Already activated.
1242 (not explicit-activation) ; Prop-line file-vars don't have args. 1242 (not explicit-activation) ; Prop-line file-vars don't have args.
1243 (string-match "^19.1[89]" ; Bug only known to be in v19.18 and 1243 (string-match "^19.1[89]" ; Bug only known to be in v19.18 and
1244 emacs-version)); 19.19. 1244 emacs-version)); 19.19.
1245 t) 1245 t)
1362 (list (concat paragraph-separate "\\|^\\(" 1362 (list (concat paragraph-separate "\\|^\\("
1363 allout-regexp "\\)"))) 1363 allout-regexp "\\)")))
1364 1364
1365 (or (assq 'allout-mode minor-mode-alist) 1365 (or (assq 'allout-mode minor-mode-alist)
1366 (setq minor-mode-alist 1366 (setq minor-mode-alist
1367 (cons '(allout-mode " Outl") minor-mode-alist))) 1367 (cons '(allout-mode " Allout") minor-mode-alist)))
1368 1368
1369 (allout-setup-menubar) 1369 (allout-setup-menubar)
1370 1370
1371 (if allout-layout 1371 (if allout-layout
1372 (setq do-layout t)) 1372 (setq do-layout t))
1648 1648
1649 Optional argument LEVELS specifies the depth \(relative to start 1649 Optional argument LEVELS specifies the depth \(relative to start
1650 depth) for the chart. Subsequent optional args are not for public 1650 depth) for the chart. Subsequent optional args are not for public
1651 use. 1651 use.
1652 1652
1653 Charts are used to capture outline structure, so that allout-altering 1653 Charts are used to capture outline structure, so that outline altering
1654 routines need assess the structure only once, and then use the chart 1654 routines need assess the structure only once, and then use the chart
1655 for their elaborate manipulations. 1655 for their elaborate manipulations.
1656 1656
1657 Topics are entered in the chart so the last one is at the car. 1657 Topics are entered in the chart so the last one is at the car.
1658 The entry for each topic consists of an integer indicating the point 1658 The entry for each topic consists of an integer indicating the point
2017 (goto-char start-point) 2017 (goto-char start-point)
2018 (if depth (allout-depth) start-depth) 2018 (if depth (allout-depth) start-depth)
2019 nil)))) 2019 nil))))
2020 ;;;_ > allout-previous-sibling (&optional depth backward) 2020 ;;;_ > allout-previous-sibling (&optional depth backward)
2021 (defun allout-previous-sibling (&optional depth backward) 2021 (defun allout-previous-sibling (&optional depth backward)
2022 "Like `allout-forward-current-level',but backwards & respect invisible topics. 2022 "Like `allout-forward-current-level', but backwards & respect invisible topics.
2023 2023
2024 Optional DEPTH specifies depth to traverse, default current depth. 2024 Optional DEPTH specifies depth to traverse, default current depth.
2025 2025
2026 Optional BACKWARD reverses direction. 2026 Optional BACKWARD reverses direction.
2027 2027
2331 (defun allout-pre-command-business () 2331 (defun allout-pre-command-business ()
2332 "Outline `pre-command-hook' function for outline buffers. 2332 "Outline `pre-command-hook' function for outline buffers.
2333 Implements special behavior when cursor is on bullet char. 2333 Implements special behavior when cursor is on bullet char.
2334 2334
2335 Self-insert characters are reinterpreted control-character references 2335 Self-insert characters are reinterpreted control-character references
2336 into the `allout-mode-map'. The `allout-mode' post-command hook will 2336 into the `allout-mode-map'. The `allout-mode' `post-command-hook' will
2337 position a cursor that has moved as a result of such reinterpretation, 2337 position a cursor that has moved as a result of such reinterpretation,
2338 on the destination topic's bullet, when the cursor wound up in the 2338 on the destination topic's bullet, when the cursor wound up in the
2339 2339
2340 The upshot is that you can get easy, single (ie, unmodified) key 2340 The upshot is that you can get easy, single (ie, unmodified) key
2341 outline maneuvering operations by positioning the cursor on the bullet 2341 outline maneuvering operations by positioning the cursor on the bullet
2492 (signal 'quit nil)))) 2492 (signal 'quit nil))))
2493 2493
2494 ;;; Prevent unnecessary font-lock while isearching! 2494 ;;; Prevent unnecessary font-lock while isearching!
2495 (defvar isearch-was-font-locking nil) 2495 (defvar isearch-was-font-locking nil)
2496 (defun isearch-inhibit-font-lock () 2496 (defun isearch-inhibit-font-lock ()
2497 "Inhibit font-lock while isearching - for use on `isearch-mode-hook'." 2497 "Inhibit `font-lock-mode' while isearching - for use on `isearch-mode-hook'."
2498 (if (and (allout-mode-p) (boundp 'font-lock-mode) font-lock-mode) 2498 (if (and (allout-mode-p) (boundp 'font-lock-mode) font-lock-mode)
2499 (setq isearch-was-font-locking t 2499 (setq isearch-was-font-locking t
2500 font-lock-mode nil))) 2500 font-lock-mode nil)))
2501 (add-hook 'isearch-mode-hook 'isearch-inhibit-font-lock) 2501 (add-hook 'isearch-mode-hook 'isearch-inhibit-font-lock)
2502 (defun isearch-reenable-font-lock () 2502 (defun isearch-reenable-font-lock ()
2905 ;;;_ = allout-former-auto-filler 2905 ;;;_ = allout-former-auto-filler
2906 (defvar allout-former-auto-filler nil 2906 (defvar allout-former-auto-filler nil
2907 "Name of modal fill function being wrapped by `allout-auto-fill'.") 2907 "Name of modal fill function being wrapped by `allout-auto-fill'.")
2908 ;;;_ > allout-auto-fill () 2908 ;;;_ > allout-auto-fill ()
2909 (defun allout-auto-fill () 2909 (defun allout-auto-fill ()
2910 "Allout-mode autofill function. 2910 "`allout-mode' autofill function.
2911 2911
2912 Maintains outline hanging topic indentation if 2912 Maintains outline hanging topic indentation if
2913 `allout-use-hanging-indents' is set." 2913 `allout-use-hanging-indents' is set."
2914 (let ((fill-prefix (if allout-use-hanging-indents 2914 (let ((fill-prefix (if allout-use-hanging-indents
2915 ;; Check for topic header indentation: 2915 ;; Check for topic header indentation:
3320 (save-excursion 3320 (save-excursion
3321 (allout-renumber-to-depth depth)))) 3321 (allout-renumber-to-depth depth))))
3322 ;;;_ > allout-yank-processing () 3322 ;;;_ > allout-yank-processing ()
3323 (defun allout-yank-processing (&optional arg) 3323 (defun allout-yank-processing (&optional arg)
3324 3324
3325 "Incidental allout-specific business to be done just after text yanks. 3325 "Incidental outline specific business to be done just after text yanks.
3326 3326
3327 Does depth adjustment of yanked topics, when: 3327 Does depth adjustment of yanked topics, when:
3328 3328
3329 1 the stuff being yanked starts with a valid outline header prefix, and 3329 1 the stuff being yanked starts with a valid outline header prefix, and
3330 2 it is being yanked at the end of a line which consists of only a valid 3330 2 it is being yanked at the end of a line which consists of only a valid
3336 the amount it takes to make the first topic have the depth of the 3336 the amount it takes to make the first topic have the depth of the
3337 header into which it's being yanked. 3337 header into which it's being yanked.
3338 3338
3339 The point is left in front of yanked, adjusted topics, rather than 3339 The point is left in front of yanked, adjusted topics, rather than
3340 at the end (and vice-versa with the mark). Non-adjusted yanks, 3340 at the end (and vice-versa with the mark). Non-adjusted yanks,
3341 however, are left exactly like normal, non-allout-specific yanks." 3341 however, are left exactly like normal, not outline specific yanks."
3342 3342
3343 (interactive "*P") 3343 (interactive "*P")
3344 ; Get to beginning, leaving 3344 ; Get to beginning, leaving
3345 ; region around subject: 3345 ; region around subject:
3346 (if (< (my-mark-marker t) (point)) 3346 (if (< (my-mark-marker t) (point))
3446 (message "")))) 3446 (message ""))))
3447 (if (not resituate) 3447 (if (not resituate)
3448 (exchange-point-and-mark)))) 3448 (exchange-point-and-mark))))
3449 ;;;_ > allout-yank (&optional arg) 3449 ;;;_ > allout-yank (&optional arg)
3450 (defun allout-yank (&optional arg) 3450 (defun allout-yank (&optional arg)
3451 "Allout-mode yank, with depth and numbering adjustment of yanked topics. 3451 "`allout-mode' yank, with depth and numbering adjustment of yanked topics.
3452 3452
3453 Non-topic yanks work no differently than normal yanks. 3453 Non-topic yanks work no differently than normal yanks.
3454 3454
3455 If a topic is being yanked into a bare topic prefix, the depth of the 3455 If a topic is being yanked into a bare topic prefix, the depth of the
3456 yanked topic is adjusted to the depth of the topic prefix. 3456 yanked topic is adjusted to the depth of the topic prefix.
3470 exactly like normal yanks. 3470 exactly like normal yanks.
3471 3471
3472 Numbering of yanked topics, and the successive siblings at the depth 3472 Numbering of yanked topics, and the successive siblings at the depth
3473 into which they're being yanked, is adjusted. 3473 into which they're being yanked, is adjusted.
3474 3474
3475 `Allout-yank-pop' works with `allout-yank' just like normal yank-pop 3475 `allout-yank-pop' works with `allout-yank' just like normal yank-pop
3476 works with normal yank in non-outline buffers." 3476 works with normal yank in non-outline buffers."
3477 3477
3478 (interactive "*P") 3478 (interactive "*P")
3479 (setq this-command 'yank) 3479 (setq this-command 'yank)
3480 (yank arg) 3480 (yank arg)
3559 (defun allout-show-entry () 3559 (defun allout-show-entry ()
3560 "Like `allout-show-current-entry', reveals entries nested in hidden topics. 3560 "Like `allout-show-current-entry', reveals entries nested in hidden topics.
3561 3561
3562 This is a way to give restricted peek at a concealed locality without the 3562 This is a way to give restricted peek at a concealed locality without the
3563 expense of exposing its context, but can leave the outline with aberrant 3563 expense of exposing its context, but can leave the outline with aberrant
3564 exposure. `allout-hide-current-entry-completely' or `allout-show-offshoot' 3564 exposure. `allout-hide-current-entry-completely' or `allout-show-to-offshoot'
3565 should be used after the peek to rectify the exposure." 3565 should be used after the peek to rectify the exposure."
3566 3566
3567 (interactive) 3567 (interactive)
3568 (save-excursion 3568 (save-excursion
3569 (let ((at (point)) 3569 (let ((at (point))