aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2006-09-16 10:25:27 +0000
committerEli Zaretskii2006-09-16 10:25:27 +0000
commit8a559d4e6abc036f2f94174b1b9d2f6bc2340c21 (patch)
treeb34fcdec962d6b6ca9c3adf057a0edce095cc6c7
parent1e9265ddc4931d0895dab30d8956dea38a442e2b (diff)
downloademacs-8a559d4e6abc036f2f94174b1b9d2f6bc2340c21.tar.gz
emacs-8a559d4e6abc036f2f94174b1b9d2f6bc2340c21.zip
(allout-regexp, allout-line-boundary-regexp)
(allout-bob-regexp): Correct grouping and boundaries to fix backwards traversal. (allout-depth-specific-regexp, allout-depth-one-regexp): New versions that exploit \\{M\\} regexp syntax, to avoid geometric or worse time in allout-ascend. (allout-doublecheck-at-and-shallower): Identify depth threshold below which topics are checked for and disqualified by containment discontinuities. (allout-hotspot-key-handler): Correctly handle multiple-key strokes. Remove some unused variables. (allout-mode-leaders): Clarify that mode-specific comment-start will be used (set-allout-regexp): Correctly regexp-quote allout regexps to properly accept alternative header-leads and primary bullets with regexp-specific characters (eg, C "/*", mathematica "(*"). Include new regular expressions among those configured. (allout-infer-header-lead-and-primary-bullet): Rename allout-infer-header-lead. (allout-recent-depth): Manifest as a variable as well as a function. (allout-prefix-data): Simplify into an inline instead of a macro, assuming current match data rather than being explicitly passed it. Establish allout-recent-depth value as well as allout-recent-prefix-beginning and allout-recent-prefix-end. (allout-aberrant-container-p): True when an item's immediate offspring discontinuously contained. Useful for disqualifying unintended topic prefixes, likely at low depths. (allout-goto-prefix-doublechecked): Elaborated version of allout-goto-prefix which disqualifies aberrant pseudo-items. (allout-pre-next-prefix): Layer on top of lower-level routines, to get disqualification of aberrant containers. (allout-end-of-prefix, allout-end-of-subtree): Disqualify aberrant containers. (allout-beginning-of-current-entry): Position at start of buffer when in container (depth 0) entry. (nullify-allout-prefix-data): Invalidate allout-recent-* prefix data. (allout-current-bullet): Strip text properties. (allout-get-prefix-bullet): Use right match groups. (allout-beginning-of-line, allout-next-heading): Disqualify aberrant containers. (allout-previous-heading): Disqualify aberrant containers, and change to regular (rather than inline) function, to allow self-recursion. (allout-get-invisibility-overlay): Increment so progress is made when the first overlay is not the sought one. (allout-end-of-prefix): Disqualify aberrant containers. (allout-end-of-line): Cycle something like allout-beginning-of-line. (allout-mode): Make allout-old-style-prefixes (ie, enabling use with outline.el outlines) functional again. Change the primary bullet along with the header-lead - level 1 new-style bullets now work. Engage allout-before-change-handler in mainline emacs, not just xemacs, to do undo handling. (allout-before-change-handler): Expose undo changes occurring in hidden regions. Use allout-get-invisibility-overlay instead of reimplementing it inline. (allout-chart-subtree): Use start rather than end of prefix in charts. Use allout-recent-depth variable. (allout-chart-siblings): Disqualify aberrant topics. (allout-beginning-of-current-entry): Position correctly. (allout-ascend): Use new allout-depth-specific-regexp and allout-depth-one-regexp for linear instead of O(N^2) or worse behavior. (allout-ascend-to-depth): Depend on allout-ascend, rather than reimplementing an algorithm. (allout-up-current-level): Depend on allout-ascend, rather than reimplementing an algorithm. Return to start-point if we fail. (allout-descend-to-depth): Use allout-recent-depth variable instead of function. (allout-next-sibling): On traversal of numerous intervening topics, resort to economical allout-next-sibling-leap. (allout-next-sibling-leap): Specialized version of allout-next-sibling that uses allout-ascend cleverly, to depend on a regexp search to leap large numbers of contained topics, rather than arbitrarily many one-by-one traversals. (allout-next-visible-heading): Disqualify aberrant topics. (allout-previous-visible-heading): Position consistently when interactive. (allout-forward-current-level): Base on allout-previous-sibling rather than (differently) reimplmenting the algorithm. Remove some unused variables. (allout-solicit-alternate-bullet): Present default choice stripped of text properties. (allout-rebullet-heading): Use bullet stripped of text properties. Register changes using allout-exposure-change-hook. Disregard aberrant topics. (allout-shift-in): With universal-argument, make topic a peer of it's former offspring. Simplify the code by separating out allout-shift-out functionality. (allout-shift-out): With universal-argument, make offspring peers of their former container, and its siblings. Implement the functionality here, rather than inappropriately muddling the implementation of allout-shift-in. (allout-rebullet-topic): Respect additional argument for new parent-child separation function. (allout-yank-processing): Use allout-ascend directly. (allout-show-entry): Disqualify aberrant topics. (allout-show-children): Handle discontinuous children gracefully, extending the depth being revealed to expose them and posting a message indicating the situation. (allout-show-to-offshoot): Remove obsolete and incorrect comment. Leave cursor in correct position. (allout-hide-current-subtree): Use allout-ascend directly. Disqualify aberrant topics. (allout-kill-line, allout-kill-topic): Preserve exposure layout in a way that the yanks can restore it, as used to happen. (allout-yank-processing): Restore exposure layout as recorded by allout-kill-*, as used to happen. (allout-annotate-hidden, allout-hide-by-annotation): New routines for preseving and restoring exposure layout across kills. (allout-toggle-subtree-encryption): Run allout-exposure-change-hook. (allout-encrypt-string): Strip text properties. Rearranged order and outline-headings for some of the miscellaneous functions. (allout-resolve-xref): No need to quote the error name in the condition-case handler section. (allout-flatten): Classic recursive (and recursively intensive, without tail-recursion) list-flattener, needed by allout-shift-out when confronted with discontinuous children.
-rw-r--r--lisp/ChangeLog186
-rw-r--r--lisp/allout.el40
2 files changed, 120 insertions, 106 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 04a32dad602..96e362a243c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,79 +1,4 @@
12006-09-16 Jason Rumney <jasonr@gnu.org> 12006-09-16 Ken Manheimer <ken.manheimer@gmail.com>
2
3 * dnd.el (dnd-open-remote-file-function): Use dnd-open-local-file
4 on ms-windows.
5 (dnd-open-unc-file): Remove.
6 (dnd-open-local-file): Mention in doc string that it also handles
7 remote files if the system natively supports unc file-names.
8
92006-09-15 Kim F. Storm <storm@cua.dk>
10
11 * help.el (describe-key): Handle C-h k in *Help* buffer; collect
12 all necessary information about the event before erasing *Help*.
13
14 * simple.el (line-move-partial): Use window-line-visiblity to
15 quickly check whether last line is partially visible, and only do
16 the hard (and slow) part in that case.
17
182006-09-15 Jay Belanger <belanger@truman.edu>
19
20 * COPYING: Replace "Library Public License" by "Lesser Public
21 License" throughout.
22
232006-09-15 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
24
25 * term/x-win.el (x-menu-bar-open): New function for F10.
26
272006-09-15 Chong Yidong <cyd@stupidchicken.com>
28
29 * progmodes/compile.el (compilation-error-regexp-alist-alist):
30 Disallow filenames containing " -" to avoid confusion with libtool
31 compilation messages. Suggested by Stefan Monnier.
32
332006-09-15 David Kastrup <dak@gnu.org>
34
35 * mouse-sel.el (mouse-sel-follow-link-p): Use event position
36 instead of buffer position for `mouse-on-link-p'.
37
38 * mouse.el (mouse-posn-property): New function looking up the
39 properties at a click position in overlays and text properties in
40 either buffer or strings.
41 (mouse-on-link-p): Use `mouse-posn-property' to streamline lookup
42 of both `follow-link' as well as `mouse-face' properties.
43 (mouse-drag-track): Check `mouse-on-link-p' on event position, not
44 buffer position.
45
46 * help.el (describe-key-briefly): When reading a down-event on
47 mode lines or scroll bar, swallow the following up event, too.
48 Use the new mouse sensitity of `key-binding' for lookup.
49 (describe-key): The same here.
50
512006-09-15 Juanma Barranquero <lekktu@gmail.com>
52
53 * play/life.el (life-patterns): Add a few more interesting patterns.
54 (life-setup): Force `show-trailing-whitespace' to nil.
55
562006-09-14 Richard Stallman <rms@gnu.org>
57
58 * startup.el (fancy-splash-text): Change text to improve alignment.
59 (fancy-splash-screens): Don't set non-standard tab width.
60 Bind cursor-type temporarily, and make it easy to patch to
61 preserve the splash buffer.
62 (normal-splash-screen, fancy-splash-tail): Spell out "Meta-x".
63 (fancy-splash-screens): Display echo-area message explicitly.
64 Don't set fancy-splash-help-echo.
65
66 * simple.el (line-number-mode): Group mode-line instead of
67 editing-basics.
68 (column-number-mode, size-indication-mode): Likewise.
69
70 * faces.el (mode-line-faces): Group mode-line instead of modeline.
71
72 * time.el (display-time): Group mode-line instead of modeline.
73
74 * cus-edit.el (mode-line): Renamed from modeline. All uses changed.
75
762006-09-14 Ken Manheimer <ken.manheimer@gmail.com>
77 2
78 * allout.el (allout-regexp, allout-line-boundary-regexp) 3 * allout.el (allout-regexp, allout-line-boundary-regexp)
79 (allout-bob-regexp): Correct grouping and boundaries to fix 4 (allout-bob-regexp): Correct grouping and boundaries to fix
@@ -87,25 +12,28 @@
87 (allout-hotspot-key-handler): Correctly handle multiple-key 12 (allout-hotspot-key-handler): Correctly handle multiple-key
88 strokes. Remove some unused variables. 13 strokes. Remove some unused variables.
89 (allout-mode-leaders): Clarify that mode-specific comment-start 14 (allout-mode-leaders): Clarify that mode-specific comment-start
90 will be used 15 will be used.
91 (set-allout-regexp): Correctly regexp-quote allout regexps to 16 (set-allout-regexp): Correctly regexp-quote allout regexps to
92 properly accept alternative header-leads and primary bullets with 17 properly accept alternative header-leads and primary bullets with
93 regexp-specific characters (eg, C "/*", mathematica "(*"). 18 regexp-specific characters (eg, C "/*", mathematica "(*").
94 Include new regular expressions among those configured. 19 Include new regular expressions among those configured.
95 (allout-infer-header-lead-and-primary-bullet): Rename 20 (allout-infer-header-lead-and-primary-bullet): Rename
96 allout-infer-header-lead. 21 allout-infer-header-lead.
97 (allout-recent-depth): Manifest as a variable as well as a function. 22 (allout-recent-depth): Manifest as a variable as well as a
23 function.
98 (allout-prefix-data): Simplify into an inline instead of a macro, 24 (allout-prefix-data): Simplify into an inline instead of a macro,
99 assuming current match data rather than being explicitly passed it. 25 assuming current match data rather than being explicitly passed
100 Establish allout-recent-depth value as well as 26 it. Establish allout-recent-depth value as well as
101 allout-recent-prefix-beginning and allout-recent-prefix-end. 27 allout-recent-prefix-beginning and allout-recent-prefix-end.
102 (allout-aberrant-container-p): True when an item's immediate 28 (allout-aberrant-container-p): True when an item's immediate
103 offspring discontinuously contained. Useful for disqualifying 29 offspring discontinuously contained. Useful for disqualifying
104 unintended topic prefixes, likely at low depths. 30 unintended topic prefixes, likely at low depths.
105 (allout-goto-prefix-doublechecked): Elaborated version of 31 (allout-goto-prefix-doublechecked): Elaborated version of
106 allout-goto-prefix which disqualifies aberrant pseudo-items. 32 allout-goto-prefix which disqualifies aberrant pseudo-items.
107 (allout-end-of-prefix, allout-pre-next-prefix) 33 (allout-pre-next-prefix): Layer on top of lower-level routines, to
108 (allout-end-of-subtree): Disqualify aberrant containers. 34 get disqualification of aberrant containers.
35 (allout-end-of-prefix, allout-end-of-subtree): Disqualify aberrant
36 containers.
109 (allout-beginning-of-current-entry): Position at start of buffer 37 (allout-beginning-of-current-entry): Position at start of buffer
110 when in container (depth 0) entry. 38 when in container (depth 0) entry.
111 (nullify-allout-prefix-data): Invalidate allout-recent-* prefix data. 39 (nullify-allout-prefix-data): Invalidate allout-recent-* prefix data.
@@ -113,7 +41,9 @@
113 (allout-get-prefix-bullet): Use right match groups. 41 (allout-get-prefix-bullet): Use right match groups.
114 (allout-beginning-of-line, allout-next-heading): Disqualify 42 (allout-beginning-of-line, allout-next-heading): Disqualify
115 aberrant containers. 43 aberrant containers.
116 (allout-previous-heading): Disqualify aberrant containers. 44 (allout-previous-heading): Disqualify aberrant containers, and
45 change to regular (rather than inline) function, to allow
46 self-recursion.
117 (allout-get-invisibility-overlay): Increment so progress is made 47 (allout-get-invisibility-overlay): Increment so progress is made
118 when the first overlay is not the sought one. 48 when the first overlay is not the sought one.
119 (allout-end-of-prefix): Disqualify aberrant containers. 49 (allout-end-of-prefix): Disqualify aberrant containers.
@@ -131,10 +61,14 @@
131 (allout-chart-siblings): Disqualify aberrant topics. 61 (allout-chart-siblings): Disqualify aberrant topics.
132 (allout-beginning-of-current-entry): Position correctly. 62 (allout-beginning-of-current-entry): Position correctly.
133 (allout-ascend): Use new allout-depth-specific-regexp and 63 (allout-ascend): Use new allout-depth-specific-regexp and
134 allout-depth-one-regexp for linear instead of O(N^2) or worse behavior. 64 allout-depth-one-regexp for linear instead of O(N^2) or worse
135 (allout-ascend-to-depth, allout-up-current-level): Depend on 65 behavior.
136 allout-ascend, rather than reimplementing an algorithm. 66 (allout-ascend-to-depth): Depend on allout-ascend, rather than
137 (allout-descend-to-depth): Use allout-recent-depth var instead of fun. 67 reimplementing an algorithm.
68 (allout-up-current-level): Depend on allout-ascend, rather than
69 reimplementing an algorithm. Return to start-point if we fail.
70 (allout-descend-to-depth): Use allout-recent-depth variable
71 instead of function.
138 (allout-next-sibling): On traversal of numerous intervening 72 (allout-next-sibling): On traversal of numerous intervening
139 topics, resort to economical allout-next-sibling-leap. 73 topics, resort to economical allout-next-sibling-leap.
140 (allout-next-sibling-leap): Specialized version of 74 (allout-next-sibling-leap): Specialized version of
@@ -145,7 +79,8 @@
145 (allout-previous-visible-heading): Position consistently when 79 (allout-previous-visible-heading): Position consistently when
146 interactive. 80 interactive.
147 (allout-forward-current-level): Base on allout-previous-sibling 81 (allout-forward-current-level): Base on allout-previous-sibling
148 rather than reimplmenting the algorithm. Remove unused vars. 82 rather than (differently) reimplmenting the algorithm. Remove some
83 unused variables.
149 (allout-solicit-alternate-bullet): Present default choice stripped 84 (allout-solicit-alternate-bullet): Present default choice stripped
150 of text properties. 85 of text properties.
151 (allout-rebullet-heading): Use bullet stripped of text properties. 86 (allout-rebullet-heading): Use bullet stripped of text properties.
@@ -185,6 +120,81 @@
185 without tail-recursion) list-flattener, needed by allout-shift-out 120 without tail-recursion) list-flattener, needed by allout-shift-out
186 when confronted with discontinuous children. 121 when confronted with discontinuous children.
187 122
1232006-09-16 Jason Rumney <jasonr@gnu.org>
124
125 * dnd.el (dnd-open-remote-file-function): Use dnd-open-local-file
126 on ms-windows.
127 (dnd-open-unc-file): Remove.
128 (dnd-open-local-file): Mention in doc string that it also handles
129 remote files if the system natively supports unc file-names.
130
1312006-09-15 Kim F. Storm <storm@cua.dk>
132
133 * help.el (describe-key): Handle C-h k in *Help* buffer; collect
134 all necessary information about the event before erasing *Help*.
135
136 * simple.el (line-move-partial): Use window-line-visiblity to
137 quickly check whether last line is partially visible, and only do
138 the hard (and slow) part in that case.
139
1402006-09-15 Jay Belanger <belanger@truman.edu>
141
142 * COPYING: Replace "Library Public License" by "Lesser Public
143 License" throughout.
144
1452006-09-15 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
146
147 * term/x-win.el (x-menu-bar-open): New function for F10.
148
1492006-09-15 Chong Yidong <cyd@stupidchicken.com>
150
151 * progmodes/compile.el (compilation-error-regexp-alist-alist):
152 Disallow filenames containing " -" to avoid confusion with libtool
153 compilation messages. Suggested by Stefan Monnier.
154
1552006-09-15 David Kastrup <dak@gnu.org>
156
157 * mouse-sel.el (mouse-sel-follow-link-p): Use event position
158 instead of buffer position for `mouse-on-link-p'.
159
160 * mouse.el (mouse-posn-property): New function looking up the
161 properties at a click position in overlays and text properties in
162 either buffer or strings.
163 (mouse-on-link-p): Use `mouse-posn-property' to streamline lookup
164 of both `follow-link' as well as `mouse-face' properties.
165 (mouse-drag-track): Check `mouse-on-link-p' on event position, not
166 buffer position.
167
168 * help.el (describe-key-briefly): When reading a down-event on
169 mode lines or scroll bar, swallow the following up event, too.
170 Use the new mouse sensitity of `key-binding' for lookup.
171 (describe-key): The same here.
172
1732006-09-15 Juanma Barranquero <lekktu@gmail.com>
174
175 * play/life.el (life-patterns): Add a few more interesting patterns.
176 (life-setup): Force `show-trailing-whitespace' to nil.
177
1782006-09-14 Richard Stallman <rms@gnu.org>
179
180 * startup.el (fancy-splash-text): Change text to improve alignment.
181 (fancy-splash-screens): Don't set non-standard tab width.
182 Bind cursor-type temporarily, and make it easy to patch to
183 preserve the splash buffer.
184 (normal-splash-screen, fancy-splash-tail): Spell out "Meta-x".
185 (fancy-splash-screens): Display echo-area message explicitly.
186 Don't set fancy-splash-help-echo.
187
188 * simple.el (line-number-mode): Group mode-line instead of
189 editing-basics.
190 (column-number-mode, size-indication-mode): Likewise.
191
192 * faces.el (mode-line-faces): Group mode-line instead of modeline.
193
194 * time.el (display-time): Group mode-line instead of modeline.
195
196 * cus-edit.el (mode-line): Renamed from modeline. All uses changed.
197
1882006-09-14 Chong Yidong <cyd@stupidchicken.com> 1982006-09-14 Chong Yidong <cyd@stupidchicken.com>
189 199
190 * startup.el (fancy-splash-text): Move editing instructions to 200 * startup.el (fancy-splash-text): Move editing instructions to
diff --git a/lisp/allout.el b/lisp/allout.el
index f60f91bd636..ef567d8a660 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -2442,7 +2442,8 @@ We skip anomolous low-level topics, a la `allout-aberrant-container-p'."
2442 (when (re-search-forward allout-line-boundary-regexp nil 0) 2442 (when (re-search-forward allout-line-boundary-regexp nil 0)
2443 (allout-prefix-data) 2443 (allout-prefix-data)
2444 (and (<= allout-recent-depth allout-doublecheck-at-and-shallower) 2444 (and (<= allout-recent-depth allout-doublecheck-at-and-shallower)
2445 ;; register non-aberrant or disqualifying offspring as allout-recent-* 2445 ;; this will set allout-recent-* on the first non-aberrant topic,
2446 ;; whether it's the current one or one that disqualifies it:
2446 (allout-aberrant-container-p)) 2447 (allout-aberrant-container-p))
2447 (goto-char allout-recent-prefix-beginning))) 2448 (goto-char allout-recent-prefix-beginning)))
2448;;;_ > allout-this-or-next-heading 2449;;;_ > allout-this-or-next-heading
@@ -2452,7 +2453,7 @@ We skip anomolous low-level topics, a la `allout-aberrant-container-p'."
2452 ;; and usable by allout-mode. 2453 ;; and usable by allout-mode.
2453 (if (not (allout-goto-prefix-doublechecked)) (allout-next-heading))) 2454 (if (not (allout-goto-prefix-doublechecked)) (allout-next-heading)))
2454;;;_ > allout-previous-heading () 2455;;;_ > allout-previous-heading ()
2455(defsubst allout-previous-heading () 2456(defun allout-previous-heading ()
2456 "Move to the prior \(possibly invisible) heading line. 2457 "Move to the prior \(possibly invisible) heading line.
2457 2458
2458Return the location of the beginning of the heading, or nil if not found. 2459Return the location of the beginning of the heading, or nil if not found.
@@ -2470,10 +2471,11 @@ We skip anomolous low-level topics, a la `allout-aberrant-container-p'."
2470 (if (and (<= allout-recent-depth allout-doublecheck-at-and-shallower) 2471 (if (and (<= allout-recent-depth allout-doublecheck-at-and-shallower)
2471 (allout-aberrant-container-p)) 2472 (allout-aberrant-container-p))
2472 (or (allout-previous-heading) 2473 (or (allout-previous-heading)
2473 (goto-char start-point) 2474 (and (goto-char start-point)
2474 ;; recalibrate allout-recent-*: 2475 ;; recalibrate allout-recent-*:
2475 (allout-depth))) 2476 (allout-depth)
2476 (point))))) 2477 nil))
2478 (point))))))
2477;;;_ > allout-get-invisibility-overlay () 2479;;;_ > allout-get-invisibility-overlay ()
2478(defun allout-get-invisibility-overlay () 2480(defun allout-get-invisibility-overlay ()
2479 "Return the overlay at point that dictates allout invisibility." 2481 "Return the overlay at point that dictates allout invisibility."
@@ -2721,9 +2723,9 @@ otherwise skip white space between bullet and ensuing text."
2721(defun allout-current-bullet-pos () 2723(defun allout-current-bullet-pos ()
2722 "Return position of current \(visible) topic's bullet." 2724 "Return position of current \(visible) topic's bullet."
2723 2725
2724 (if (not (allout-current-depth)) 2726 (if (not (allout-current-depth))
2725 nil 2727 nil
2726 (1- allout-recent-prefix-end))) 2728 (1- allout-recent-prefix-end)))
2727;;;_ > allout-back-to-current-heading () 2729;;;_ > allout-back-to-current-heading ()
2728(defun allout-back-to-current-heading () 2730(defun allout-back-to-current-heading ()
2729 "Move to heading line of current topic, or beginning if already on the line. 2731 "Move to heading line of current topic, or beginning if already on the line.
@@ -2752,8 +2754,8 @@ in which case we return nil."
2752 2754
2753Returns that character position." 2755Returns that character position."
2754 2756
2755 (if (re-search-forward allout-line-boundary-regexp nil 'move) 2757 (if (allout-next-heading)
2756 (goto-char (1- (allout-prefix-data))))) 2758 (goto-char (1- allout-recent-prefix-beginning))))
2757;;;_ > allout-end-of-subtree (&optional current include-trailing-blank) 2759;;;_ > allout-end-of-subtree (&optional current include-trailing-blank)
2758(defun allout-end-of-subtree (&optional current include-trailing-blank) 2760(defun allout-end-of-subtree (&optional current include-trailing-blank)
2759 "Put point at the end of the last leaf in the containing topic. 2761 "Put point at the end of the last leaf in the containing topic.
@@ -2863,7 +2865,7 @@ collapsed."
2863 "Ascend one level, returning t if successful, nil if not." 2865 "Ascend one level, returning t if successful, nil if not."
2864 (prog1 2866 (prog1
2865 (if (allout-beginning-of-level) 2867 (if (allout-beginning-of-level)
2866 (allout-previous-heading)) 2868 (allout-previous-heading))
2867 (if (interactive-p) (allout-end-of-prefix)))) 2869 (if (interactive-p) (allout-end-of-prefix))))
2868;;;_ > allout-descend-to-depth (depth) 2870;;;_ > allout-descend-to-depth (depth)
2869(defun allout-descend-to-depth (depth) 2871(defun allout-descend-to-depth (depth)
@@ -2887,11 +2889,13 @@ Returning depth if successful, nil if not."
2887(defun allout-up-current-level (arg) 2889(defun allout-up-current-level (arg)
2888 "Move out ARG levels from current visible topic." 2890 "Move out ARG levels from current visible topic."
2889 (interactive "p") 2891 (interactive "p")
2890 (allout-back-to-current-heading) 2892 (let ((start-point (point)))
2891 (if (not (allout-ascend)) 2893 (allout-back-to-current-heading)
2892 (error "Can't ascend past outermost level") 2894 (if (not (allout-ascend))
2893 (if (interactive-p) (allout-end-of-prefix)) 2895 (progn (goto-char start-point)
2894 allout-recent-prefix-beginning)) 2896 (error "Can't ascend past outermost level"))
2897 (if (interactive-p) (allout-end-of-prefix))
2898 allout-recent-prefix-beginning)))
2895 2899
2896;;;_ - Linear 2900;;;_ - Linear
2897;;;_ > allout-next-sibling (&optional depth backward) 2901;;;_ > allout-next-sibling (&optional depth backward)
@@ -6531,8 +6535,8 @@ If BEG is bigger than END we return 0."
6531 "Return a list of all atoms in list." 6535 "Return a list of all atoms in list."
6532 ;; classic. 6536 ;; classic.
6533 (cond ((null list) nil) 6537 (cond ((null list) nil)
6534 ((atom (car list)) (cons (car list) (flatten (cdr list)))) 6538 ((atom (car list)) (cons (car list) (allout-flatten (cdr list))))
6535 (t (append (flatten (car list)) (flatten (cdr list)))))) 6539 (t (append (allout-flatten (car list)) (allout-flatten (cdr list))))))
6536;;;_ : Compatability: 6540;;;_ : Compatability:
6537;;;_ > allout-mark-marker to accommodate divergent emacsen: 6541;;;_ > allout-mark-marker to accommodate divergent emacsen:
6538(defun allout-mark-marker (&optional force buffer) 6542(defun allout-mark-marker (&optional force buffer)