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
next prev parent 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).