unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* allout bugfixes - small bugs in charts, exposure specs
@ 2006-09-29 18:56 Ken Manheimer
  2006-09-30 17:04 ` Richard Stallman
  0 siblings, 1 reply; 5+ messages in thread
From: Ken Manheimer @ 2006-09-29 18:56 UTC (permalink / raw


[-- Attachment #1: Type: text/plain, Size: 1342 bytes --]

thanks are due bill white for uncovering and diagnosing some chart
bugs, and contributing a fix for one.  in addition, there's one loose
end repaired for the recently introduced aberrant-topics provisions.

2006-09-29  Ken Manheimer  <ken.manheimer@gmail.com>

	(allout-current-depth): Do aberrent check only at or below
	doublecheck depth.
	(allout-chart-subtree): Make it explicit that LEVELS being nil
	means unlimited depth.  Drop undocumented support for LEVELS value
	t meaning unlimited depth.  (This is consistent with
	allout-chart-to-reveal, but contrary to allout-show-children,
	which needs to use nil to default to depth of 1.)
	(allout-goto-prefix-doublechecked): Wrap long docstring line.
	(allout-chart-to-reveal): Be explicit in docstring about meaning
	of nil LEVELS, and drop support for LEVELS value t.
	(allout-show-children): Translate the level spec used by this
	routine to that used by allout-chart-subtree and
	allout-chart-to-reveal.
	(allout-show-to-offshoot): Retry once when stuck, after opening
	subtree - improvements in discontinuity handling likely will
	enable progress.
	(allout-expose-topic): Rectify implementation of "+" spec, so that
	the subtrees are hidden and only the headlines are exposed.
	(Thanks to bill white for contributing this fix.)

-- 
ken
ken.manheimer@gmail.com
http://myriadicity.net

[-- Attachment #2: allout-patch.txt --]
[-- Type: text/plain, Size: 5860 bytes --]

--- allout.el	19 Sep 2006 17:55:44 -0400	1.84
+++ allout.el	29 Sep 2006 13:19:06 -0400	
@@ -2202,8 +2202,9 @@
   (save-excursion
     (allout-beginning-of-current-line)
     (and (looking-at allout-regexp)
-         (not (allout-aberrant-container-p))
-	 (allout-prefix-data))))
+         (allout-prefix-data)
+         (or (> allout-recent-depth allout-doublecheck-at-and-shallower)
+             (not (allout-aberrant-container-p))))))
 ;;;_    > allout-on-heading-p ()
 (defalias 'allout-on-heading-p 'allout-on-current-heading-p)
 ;;;_    > allout-e-o-prefix-p ()
@@ -2329,7 +2330,7 @@
 
   (save-excursion
     (cond ((and depth (<= depth 0) 0))
-          ((or (not depth) (= depth (allout-depth)))
+          ((or (null depth) (= depth (allout-depth)))
            (let ((index 1))
              (while (allout-previous-sibling allout-recent-depth nil)
 	       (setq index (1+ index)))
@@ -2505,13 +2506,13 @@
 (defun allout-chart-subtree (&optional levels visible orig-depth prev-depth)
   "Produce a location \"chart\" of subtopics of the containing topic.
 
-Optional argument LEVELS specifies the depth \(relative to start
-depth) for the chart.
+Optional argument LEVELS specifies a depth limit \(relative to start
+depth) for the chart.  Null LEVELS means no limit.
 
 When optional argument VISIBLE is non-nil, the chart includes
 only the visible subelements of the charted subjects.
 
-The remaining optional args are not for internal use by the function.
+The remaining optional args are for internal use by the function.
 
 Point is left at the end of the subtree.
 
@@ -2618,16 +2619,19 @@
 
   "Return a flat list of hidden points in subtree CHART, up to DEPTH.
 
+If DEPTH is nil, include hidden points at any depth.
+
 Note that point can be left at any of the points on chart, or at the
 start point."
 
   (let (result here)
-    (while (and (or (eq depth t) (> depth 0))
+    (while (and (or (null depth) (> depth 0))
 		chart)
       (setq here (car chart))
       (if (listp here)
-	  (let ((further (allout-chart-to-reveal here (or (eq depth t)
-							   (1- depth)))))
+	  (let ((further (allout-chart-to-reveal here (if (null depth)
+                                                          depth
+                                                        (1- depth)))))
 	    ;; We're on the start of a subtree - recurse with it, if there's
 	    ;; more depth to go:
 	    (if further (setq result (append further result)))
@@ -2697,7 +2701,10 @@
 (defun allout-goto-prefix-doublechecked ()
   "Put point at beginning of immediately containing outline topic.
 
-Like `allout-goto-prefix', but shallow topics \(according to `allout-doublecheck-at-and-shallower') are checked and disqualified for child containment discontinuity, according to `allout-aberrant-container-p'."
+Like `allout-goto-prefix', but shallow topics \(according to
+`allout-doublecheck-at-and-shallower') are checked and
+disqualified for child containment discontinuity, according to
+`allout-aberrant-container-p'."
   (allout-goto-prefix)
   (if (and (<= allout-recent-depth allout-doublecheck-at-and-shallower)
            (allout-aberrant-container-p))
@@ -4620,8 +4627,13 @@
         (allout-beginning-of-current-line)
         (save-restriction
           (let* (depth
-                 (chart (allout-chart-subtree (or level 1)))
-                 (to-reveal (or (allout-chart-to-reveal chart (or level 1))
+                 ;; translate the level spec for this routine to the ones
+                 ;; used by -chart-subtree and -chart-to-reveal:
+                 (chart-level (cond ((not level) 1)
+                                    ((eq level t) nil)
+                                    (t level)))
+                 (chart (allout-chart-subtree chart-level))
+                 (to-reveal (or (allout-chart-to-reveal chart chart-level)
                                 ;; interactive, show discontinuous children:
                                 (and chart
                                      (interactive-p)
@@ -4672,22 +4684,22 @@
           (orig-pt (point))
 	  (orig-pref (allout-goto-prefix-doublechecked))
 	  (last-at (point))
-	  bag-it)
-      (while (or bag-it (allout-hidden-p))
+	  (bag-it 0))
+      (while (or (> bag-it 1) (allout-hidden-p))
         (while (allout-hidden-p)
           (move-beginning-of-line 1)
           (if (allout-hidden-p) (forward-char -1)))
 	(if (= last-at (setq last-at (point)))
-	    ;; Oops, we're not making any progress!  Show the current
-	    ;; topic completely, and bag this try.
+	    ;; Oops, we're not making any progress!  Show the current topic
+	    ;; completely, and try one more time here, if we haven't already.
 	    (progn (beginning-of-line)
 		   (allout-show-current-subtree)
 		   (goto-char orig-pt)
-		   (setq bag-it t)
-		   (beep)
-		   (message "%s: %s"
-			    "allout-show-to-offshoot: "
-			    "Aberrant nesting encountered."))
+		   (setq bag-it (1+ bag-it))
+                   (if (> bag-it 1)
+                       (error "allout-show-to-offshoot: %s"
+                              "Stumped by aberrant nesting.")))
+          (if (> bag-it 0) (setq bag-it 0))
           (allout-show-children)
           (goto-char orig-pref)))
       (goto-char orig-pt)))
@@ -4895,7 +4907,10 @@
 	  (cond ((eq curr-elem '*) (allout-show-current-subtree)
 		 (if (> allout-recent-end-of-subtree max-pos)
 		     (setq max-pos allout-recent-end-of-subtree)))
-		((eq curr-elem '+) (allout-show-current-branches)
+                ((eq curr-elem '+)
+                 (if (not (allout-hidden-p))
+                     (save-excursion (allout-hide-current-subtree t)))
+                 (allout-show-current-branches)
 		 (if (> allout-recent-end-of-subtree max-pos)
 		     (setq max-pos allout-recent-end-of-subtree)))
 		((eq curr-elem '-) (allout-show-current-entry))

[-- Attachment #3: ChangeLog-entry.txt --]
[-- Type: text/plain, Size: 1079 bytes --]

2006-09-29  Ken Manheimer  <ken.manheimer@gmail.com>

	(allout-current-depth): Do aberrent check only at or below
	doublecheck depth.
	(allout-chart-subtree): Make it explicit that LEVELS being nil
	means unlimited depth.  Drop undocumented support for LEVELS value
	t meaning unlimited depth.  (This is consistent with
	allout-chart-to-reveal, but contrary to allout-show-children,
	which needs to use nil to default to depth of 1.)
	(allout-goto-prefix-doublechecked): Wrap long docstring line.
	(allout-chart-to-reveal): Be explicit in docstring about meaning
	of nil LEVELS, and drop support for LEVELS value t.
	(allout-show-children): Translate the level spec used by this
	routine to that used by allout-chart-subtree and
	allout-chart-to-reveal.
	(allout-show-to-offshoot): Retry once when stuck, after opening
	subtree - improvements in discontinuity handling likely will
	enable progress.
	(allout-expose-topic): Rectify implementation of "+" spec, so that
	the subtrees are hidden and only the headlines are exposed.
	(Thanks to bill white for contributing this fix.)

[-- Attachment #4: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: allout bugfixes - small bugs in charts, exposure specs
  2006-09-29 18:56 allout bugfixes - small bugs in charts, exposure specs Ken Manheimer
@ 2006-09-30 17:04 ` Richard Stallman
  2006-09-30 19:08   ` Stephen Berman
  0 siblings, 1 reply; 5+ messages in thread
From: Richard Stallman @ 2006-09-30 17:04 UTC (permalink / raw
  Cc: emacs-devel

	    (allout-expose-topic): Rectify implementation of "+" spec, so that
	    the subtrees are hidden and only the headlines are exposed.
	    (Thanks to bill white for contributing this fix.)

Please don't ever put other people's code under your name in the
change log file.  That would confuse our copyright clerk.

If that change was written by Bill White, you should put it
in a change log entry with his name on it, not under your name.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: allout bugfixes - small bugs in charts, exposure specs
  2006-09-30 17:04 ` Richard Stallman
@ 2006-09-30 19:08   ` Stephen Berman
  2006-09-30 21:29     ` Ken Manheimer
  2006-10-01 15:15     ` Richard Stallman
  0 siblings, 2 replies; 5+ messages in thread
From: Stephen Berman @ 2006-09-30 19:08 UTC (permalink / raw


On Sat, 30 Sep 2006 13:04:24 -0400 Richard Stallman <rms@gnu.org> wrote:

> 	    (allout-expose-topic): Rectify implementation of "+" spec, so that
> 	    the subtrees are hidden and only the headlines are exposed.
> 	    (Thanks to bill white for contributing this fix.)
>
> Please don't ever put other people's code under your name in the
> change log file.  That would confuse our copyright clerk.
>
> If that change was written by Bill White, you should put it
> in a change log entry with his name on it, not under your name.

Since you seem to want an accurate record, I feel compelled to say
that, unless Bill White happened to send Ken the same patch as I did,
I think the change he referred to is one I sent him.  Since it's only
a three line patch, I have no objection to it appearing under Ken's
name.  If you think it's important that it appear under my name, of
course I have no objection to that either (and if copyright assignment
is necessary, I did sign papers for Emacs some years ago).

Steve Berman

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: allout bugfixes - small bugs in charts, exposure specs
  2006-09-30 19:08   ` Stephen Berman
@ 2006-09-30 21:29     ` Ken Manheimer
  2006-10-01 15:15     ` Richard Stallman
  1 sibling, 0 replies; 5+ messages in thread
From: Ken Manheimer @ 2006-09-30 21:29 UTC (permalink / raw
  Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1488 bytes --]

my apologies, steve - i was too cursory when i looked back through my
allout correspondance.  i really do appreciate the fix, even if i
didn't  keep your name straight!

i've attached a new ChangeLog fragment, with separate entries for
stephen's and my changes (and a formatting error corrected, besides),
and the same, consolidated patch as before.

ken

On 9/30/06, Stephen Berman <Stephen.Berman@gmx.net> wrote:
> On Sat, 30 Sep 2006 13:04:24 -0400 Richard Stallman <rms@gnu.org> wrote:
>
> >           (allout-expose-topic): Rectify implementation of "+" spec, so that
> >           the subtrees are hidden and only the headlines are exposed.
> >           (Thanks to bill white for contributing this fix.)
> >
> > Please don't ever put other people's code under your name in the
> > change log file.  That would confuse our copyright clerk.
> >
> > If that change was written by Bill White, you should put it
> > in a change log entry with his name on it, not under your name.
>
> Since you seem to want an accurate record, I feel compelled to say
> that, unless Bill White happened to send Ken the same patch as I did,
> I think the change he referred to is one I sent him.  Since it's only
> a three line patch, I have no objection to it appearing under Ken's
> name.  If you think it's important that it appear under my name, of
> course I have no objection to that either (and if copyright assignment
> is necessary, I did sign papers for Emacs some years ago).
>
> Steve Berman

[-- Attachment #2: allout-patch.txt --]
[-- Type: text/plain, Size: 5860 bytes --]

--- allout.el	19 Sep 2006 17:55:44 -0400	1.84
+++ allout.el	29 Sep 2006 13:19:06 -0400	
@@ -2202,8 +2202,9 @@
   (save-excursion
     (allout-beginning-of-current-line)
     (and (looking-at allout-regexp)
-         (not (allout-aberrant-container-p))
-	 (allout-prefix-data))))
+         (allout-prefix-data)
+         (or (> allout-recent-depth allout-doublecheck-at-and-shallower)
+             (not (allout-aberrant-container-p))))))
 ;;;_    > allout-on-heading-p ()
 (defalias 'allout-on-heading-p 'allout-on-current-heading-p)
 ;;;_    > allout-e-o-prefix-p ()
@@ -2329,7 +2330,7 @@
 
   (save-excursion
     (cond ((and depth (<= depth 0) 0))
-          ((or (not depth) (= depth (allout-depth)))
+          ((or (null depth) (= depth (allout-depth)))
            (let ((index 1))
              (while (allout-previous-sibling allout-recent-depth nil)
 	       (setq index (1+ index)))
@@ -2505,13 +2506,13 @@
 (defun allout-chart-subtree (&optional levels visible orig-depth prev-depth)
   "Produce a location \"chart\" of subtopics of the containing topic.
 
-Optional argument LEVELS specifies the depth \(relative to start
-depth) for the chart.
+Optional argument LEVELS specifies a depth limit \(relative to start
+depth) for the chart.  Null LEVELS means no limit.
 
 When optional argument VISIBLE is non-nil, the chart includes
 only the visible subelements of the charted subjects.
 
-The remaining optional args are not for internal use by the function.
+The remaining optional args are for internal use by the function.
 
 Point is left at the end of the subtree.
 
@@ -2618,16 +2619,19 @@
 
   "Return a flat list of hidden points in subtree CHART, up to DEPTH.
 
+If DEPTH is nil, include hidden points at any depth.
+
 Note that point can be left at any of the points on chart, or at the
 start point."
 
   (let (result here)
-    (while (and (or (eq depth t) (> depth 0))
+    (while (and (or (null depth) (> depth 0))
 		chart)
       (setq here (car chart))
       (if (listp here)
-	  (let ((further (allout-chart-to-reveal here (or (eq depth t)
-							   (1- depth)))))
+	  (let ((further (allout-chart-to-reveal here (if (null depth)
+                                                          depth
+                                                        (1- depth)))))
 	    ;; We're on the start of a subtree - recurse with it, if there's
 	    ;; more depth to go:
 	    (if further (setq result (append further result)))
@@ -2697,7 +2701,10 @@
 (defun allout-goto-prefix-doublechecked ()
   "Put point at beginning of immediately containing outline topic.
 
-Like `allout-goto-prefix', but shallow topics \(according to `allout-doublecheck-at-and-shallower') are checked and disqualified for child containment discontinuity, according to `allout-aberrant-container-p'."
+Like `allout-goto-prefix', but shallow topics \(according to
+`allout-doublecheck-at-and-shallower') are checked and
+disqualified for child containment discontinuity, according to
+`allout-aberrant-container-p'."
   (allout-goto-prefix)
   (if (and (<= allout-recent-depth allout-doublecheck-at-and-shallower)
            (allout-aberrant-container-p))
@@ -4620,8 +4627,13 @@
         (allout-beginning-of-current-line)
         (save-restriction
           (let* (depth
-                 (chart (allout-chart-subtree (or level 1)))
-                 (to-reveal (or (allout-chart-to-reveal chart (or level 1))
+                 ;; translate the level spec for this routine to the ones
+                 ;; used by -chart-subtree and -chart-to-reveal:
+                 (chart-level (cond ((not level) 1)
+                                    ((eq level t) nil)
+                                    (t level)))
+                 (chart (allout-chart-subtree chart-level))
+                 (to-reveal (or (allout-chart-to-reveal chart chart-level)
                                 ;; interactive, show discontinuous children:
                                 (and chart
                                      (interactive-p)
@@ -4672,22 +4684,22 @@
           (orig-pt (point))
 	  (orig-pref (allout-goto-prefix-doublechecked))
 	  (last-at (point))
-	  bag-it)
-      (while (or bag-it (allout-hidden-p))
+	  (bag-it 0))
+      (while (or (> bag-it 1) (allout-hidden-p))
         (while (allout-hidden-p)
           (move-beginning-of-line 1)
           (if (allout-hidden-p) (forward-char -1)))
 	(if (= last-at (setq last-at (point)))
-	    ;; Oops, we're not making any progress!  Show the current
-	    ;; topic completely, and bag this try.
+	    ;; Oops, we're not making any progress!  Show the current topic
+	    ;; completely, and try one more time here, if we haven't already.
 	    (progn (beginning-of-line)
 		   (allout-show-current-subtree)
 		   (goto-char orig-pt)
-		   (setq bag-it t)
-		   (beep)
-		   (message "%s: %s"
-			    "allout-show-to-offshoot: "
-			    "Aberrant nesting encountered."))
+		   (setq bag-it (1+ bag-it))
+                   (if (> bag-it 1)
+                       (error "allout-show-to-offshoot: %s"
+                              "Stumped by aberrant nesting.")))
+          (if (> bag-it 0) (setq bag-it 0))
           (allout-show-children)
           (goto-char orig-pref)))
       (goto-char orig-pt)))
@@ -4895,7 +4907,10 @@
 	  (cond ((eq curr-elem '*) (allout-show-current-subtree)
 		 (if (> allout-recent-end-of-subtree max-pos)
 		     (setq max-pos allout-recent-end-of-subtree)))
-		((eq curr-elem '+) (allout-show-current-branches)
+                ((eq curr-elem '+)
+                 (if (not (allout-hidden-p))
+                     (save-excursion (allout-hide-current-subtree t)))
+                 (allout-show-current-branches)
 		 (if (> allout-recent-end-of-subtree max-pos)
 		     (setq max-pos allout-recent-end-of-subtree)))
 		((eq curr-elem '-) (allout-show-current-entry))

[-- Attachment #3: ChangeLog-entry.txt --]
[-- Type: text/plain, Size: 1084 bytes --]

2006-09-29  Stephen Berman <Stephen.Berman@gmx.net>
	* allout.el (allout-expose-topic): Rectify implementation of "+"
	spec, so that bodies are not exposed with headlines.

2006-09-29  Ken Manheimer  <ken.manheimer@gmail.com>

	* allout.el (allout-current-depth): Do aberrent check only at or
	below doublecheck depth.
	(allout-chart-subtree): Make it explicit that LEVELS being nil
	means unlimited depth.  Drop undocumented support for LEVELS value
	t meaning unlimited depth.  (This is consistent with
	allout-chart-to-reveal, but contrary to allout-show-children,
	which needs to use nil to default to depth of 1.)
	(allout-goto-prefix-doublechecked): Wrap long docstring line.
	(allout-chart-to-reveal): Be explicit in docstring about meaning
	of nil LEVELS, and drop support for LEVELS value t.
	(allout-show-children): Translate the level spec used by this
	routine to that used by allout-chart-subtree and
	allout-chart-to-reveal.
	(allout-show-to-offshoot): Retry once when stuck, after opening
	subtree - improvements in discontinuity handling likely will
	enable progress.

[-- Attachment #4: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: allout bugfixes - small bugs in charts, exposure specs
  2006-09-30 19:08   ` Stephen Berman
  2006-09-30 21:29     ` Ken Manheimer
@ 2006-10-01 15:15     ` Richard Stallman
  1 sibling, 0 replies; 5+ messages in thread
From: Richard Stallman @ 2006-10-01 15:15 UTC (permalink / raw
  Cc: emacs-devel

If you wrote it, we should put it under your name.
Ken, would you please adjust the change log?

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-10-01 15:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-29 18:56 allout bugfixes - small bugs in charts, exposure specs Ken Manheimer
2006-09-30 17:04 ` Richard Stallman
2006-09-30 19:08   ` Stephen Berman
2006-09-30 21:29     ` Ken Manheimer
2006-10-01 15:15     ` Richard Stallman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).