emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <dominik@science.uva.nl>
To: Peter Jones <mlists@pmade.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: [PATCH] Fix Subtle Heading Creation Bugs
Date: Sat, 18 Oct 2008 08:01:41 +0200	[thread overview]
Message-ID: <CC2610AB-4C45-4C74-81C4-1A8CB8B517A6@uva.nl> (raw)
In-Reply-To: <m2prly7ogr.fsf@pmade.com>

Hi Peter,

thanks for the patches.

I certainly like the change re-hiding a folded headline.

I am not so sure about forcing headline creation even when in a plain  
list item.  I can see why you would want it like this.  However, the  
reason for the current behavior is that then you can use the respect- 
content function as a full replacement for M-RET, without the need to  
always switch back and force between the two commands.

Any thought about this?

- Carsten

On Oct 18, 2008, at 2:10 AM, Peter Jones wrote:

>
> Since commit 238d0d1 (Improve consistency for inserting new headlines)
> a few minor inconsistencies were introduced to heading creation with
> the control key, A.K.A. org-insert-heading-respect-content.  This
> patch resolves those subtle "bugs".
>
> This patch changes org-insert-heading-respect-content so that it:
>
> - Creates a new heading even if point is in a plain list
>   (force-heading is set to true, behavior before 238d0d1)
> - If the previous heading was closed, keep it closed
>   (keeps the previous heading in the state it was before C-RET)
>
> It also includes changes for org-insert-todo-heading and the OrgMode
> manual.
>
> Thanks Carsten for making the changes in 238d0d1 for me.  With the
> attached patch, heading creation is now perfect (for me at least ;).
>
> From 200826587af4bd40995d1d45381006ed0639f7e9 Mon Sep 17 00:00:00 2001
> From: Peter Jones <pjones@pmade.com>
> Date: Fri, 17 Oct 2008 17:26:11 -0600
> Subject: [PATCH] Fix Subtle Heading Creation Bugs
>
> Since commit 238d0d1 (Improve consistency for inserting new headlines)
> a few minor inconsistencies were introduced to heading creation with
> the control key, A.K.A. org-insert-heading-respect-content.  This
> patch resolves those subtle "bugs".
>
> This patch changes org-insert-heading-respect-content so that it:
>
> - Creates a new heading even if point is in a plain list
>   (force-heading is set to true, behavior before 238d0d1)
> - If the previous heading was closed, keep it closed
>   (keeps the previous heading in the state it was before C-RET)
> ---
> lisp/org.el |   11 +++++++++--
> 1 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/lisp/org.el b/lisp/org.el
> index 9c08ba4..541cf3a 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -4607,7 +4607,7 @@ but create the new hedline after the current  
> line."
> 			   (match-string 0))
> 		       (error "*"))))
> 	     (blank (cdr (assq 'heading org-blank-before-new-entry)))
> -	     pos)
> +	     pos should-hide-previous-heading)
> 	(cond
> 	 ((and (org-on-heading-p) (bolp)
> 	       (or (bobp)
> @@ -4622,6 +4622,9 @@ but create the new hedline after the current  
> line."
> 	  nil)
> 	 (t
> 	  ;; in the middle of the line
> +          (save-excursion
> +            (end-of-line)
> +            (setq should-hide-previous-heading (org-invisible-p)))
> 	  (org-show-entry)
> 	  (let ((split
> 		 (org-get-alist-option org-M-RET-may-split-line 'headline))
> @@ -4652,6 +4655,10 @@ but create the new hedline after the current  
> line."
> 	(setq pos (point))
> 	(end-of-line 1)
> 	(unless (= (point) pos) (just-one-space) (backward-delete-char 1))
> +        (when (and org-insert-heading-respect-content should-hide- 
> previous-heading)
> +            (save-excursion
> +              (outline-previous-visible-heading 1)
> +              (hide-entry)))
> 	(run-hooks 'org-insert-heading-hook)))))
>
> (defun org-get-heading (&optional no-tags)
> @@ -4675,7 +4682,7 @@ but create the new hedline after the current  
> line."
> (defun org-insert-heading-respect-content ()
>   (interactive)
>   (let ((org-insert-heading-respect-content t))
> -    (call-interactively 'org-insert-heading)))
> +    (org-insert-heading t)))
>
> (defun org-insert-todo-heading-respect-content ()
>   (interactive)
> -- 
> 1.6.0
>
>
> From e7de89ce7a1bd3ab2259159fdb65b052d74370a0 Mon Sep 17 00:00:00 2001
> From: Peter Jones <pjones@pmade.com>
> Date: Fri, 17 Oct 2008 17:57:47 -0600
> Subject: [PATCH] Update documentation WRT C-RET
>
> ---
> doc/org.texi |    5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/doc/org.texi b/doc/org.texi
> index 31996e0..b76fcaf 100644
> --- a/doc/org.texi
> +++ b/doc/org.texi
> @@ -897,8 +897,9 @@ of a headline), then a headline like the current  
> one will be inserted
> after the end of the subtree.
> @kindex C-@key{RET}
> @item C-@key{RET}
> -Just like @kbd{M-@key{RET}}, but if the heading is inserted after  
> the current,
> -insert it actually after the entire subtree.
> +Just like @kbd{M-@key{RET}}, except when adding a new heading below  
> the
> +current heading, the new heading is placed after the body instead  
> of before
> +it.  This command works from anywhere in the entry.
> @kindex M-S-@key{RET}
> @item M-S-@key{RET}
> Insert new TODO entry with same level as current heading.
> -- 
> 1.6.0
>
>
> From 4f7aed562ae93759fb1638378029aeef3cc70e79 Mon Sep 17 00:00:00 2001
> From: Peter Jones <pjones@pmade.com>
> Date: Fri, 17 Oct 2008 18:03:38 -0600
> Subject: [PATCH] Also fix org-insert-todo-heading
>
> ---
> lisp/org.el |   10 +++++-----
> 1 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/lisp/org.el b/lisp/org.el
> index 541cf3a..5e4d6a5 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -4684,18 +4684,18 @@ but create the new hedline after the current  
> line."
>   (let ((org-insert-heading-respect-content t))
>     (org-insert-heading t)))
>
> -(defun org-insert-todo-heading-respect-content ()
> -  (interactive)
> +(defun org-insert-todo-heading-respect-content (force-state)
> +  (interactive "P")
>   (let ((org-insert-heading-respect-content t))
> -    (call-interactively 'org-insert-todo-heading)))
> +    (org-insert-todo-heading force-state t)))
>
> -(defun org-insert-todo-heading (arg)
> +(defun org-insert-todo-heading (arg &optional force-heading)
>   "Insert a new heading with the same level and TODO state as  
> current heading.
> If the heading has no TODO state, or if the state is DONE, use the  
> first
> state (TODO by default).  Also with prefix arg, force first state."
>   (interactive "P")
>   (when (not (org-insert-item 'checkbox))
> -    (org-insert-heading)
> +    (org-insert-heading force-heading)
>     (save-excursion
>       (org-back-to-heading)
>       (outline-previous-heading)
> -- 
> 1.6.0
>
>
> -- 
> Peter Jones, http://pmade.com
> pmade inc.  Louisville, CO US
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  reply	other threads:[~2008-10-18  6:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-18  0:10 [PATCH] Fix Subtle Heading Creation Bugs Peter Jones
2008-10-18  6:01 ` Carsten Dominik [this message]
2008-10-18 15:24   ` Peter Jones
2008-10-18 17:59     ` Manish
2008-10-22  6:02 ` [PATCH] " Carsten Dominik
2008-10-23  0:30   ` Peter Jones
2008-10-23  5:07     ` Carsten Dominik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CC2610AB-4C45-4C74-81C4-1A8CB8B517A6@uva.nl \
    --to=dominik@science.uva.nl \
    --cc=emacs-orgmode@gnu.org \
    --cc=mlists@pmade.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.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).