emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <dominik@science.uva.nl>
To: James TD Smith <ahktenzero@mohorovi.cc>
Cc: emacs-orgmode@gnu.org
Subject: Re: [PATCH 5/9] Fix note insertion in entries with drawers.
Date: Thu, 16 Oct 2008 06:50:12 +0200	[thread overview]
Message-ID: <C9878846-EF1C-44B9-8BD3-4538FB2972AB@uva.nl> (raw)
In-Reply-To: <20080920210906.19759.21084.stgit@nyarlathotep.internal.mohorovi.cc>

Hi JD,

I have now made this change configurable, please configure
the new option `org-log-state-notes-insert-after-drawers'
if you want your notes after the drawers.  Default is the old
behavior to insert before the drawers (I got some requests for this).

- Carsten

On Sep 20, 2008, at 11:09 PM, James TD Smith wrote:

> The code to find the insertion point after a heading for notes was  
> not skipping
> over drawers, resulting in notes being added inbetween the  
> scheduling keywords
> and the first drawer. Notes are now inserted after any drawers in an  
> item.
> ---
>
> lisp/ChangeLog |    2 ++
> lisp/org.el    |   41 +++++++++++++++++++++++------------------
> 2 files changed, 25 insertions(+), 18 deletions(-)
>
> diff --git a/lisp/ChangeLog b/lisp/ChangeLog
> index b52700d..1753881 100755
> --- a/lisp/ChangeLog
> +++ b/lisp/ChangeLog
> @@ -3,6 +3,8 @@
> 	* org.el (org-get-refile-targets): Replace links with their
> 	descriptions
> 	(org-imenu-get-tree): Replace links with their descriptions
> +	(org-add-log-setup): Skip over drawers (properties, clocks etc)
> +	when adding notes.
>
> 	* org-agenda.el (org-agenda-get-closed): show durations of clocked
> 	items as well as the start and end times.
> diff --git a/lisp/org.el b/lisp/org.el
> index 99b62d0..10c2cdc 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -9038,7 +9038,7 @@ The auto-repeater uses this.")
>   "Add a note to the current entry.
> This is done in the same way as adding a state change note."
>   (interactive)
> -  (org-add-log-setup 'note nil t nil))
> +  (org-add-log-setup 'note nil 'findpos nil))
>
> (defun org-add-log-setup (&optional purpose state findpos how  
> &optional extra)
>   "Set up the post command hook to take a note.
> @@ -9047,23 +9047,28 @@ When FINDPOS is non-nil, find the correct  
> position for the note in
> the current entry.  If not, assume that it can be inserted at point.
> HOW is an indicator what kind of note should be created.
> EXTRA is additional text that will be inserted into the notes buffer."
> -  (save-excursion
> -    (when findpos
> -      (org-back-to-heading t)
> -      (looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"
> -			  "\\(\n[^\r\n]*?" org-keyword-time-not-clock-regexp
> -			  "[^\r\n]*\\)?"))
> -      (goto-char (match-end 0))
> -      (unless org-log-states-order-reversed
> -	(and (= (char-after) ?\n) (forward-char 1))
> -	(org-skip-over-state-notes)
> -	(skip-chars-backward " \t\n\r")))
> -    (move-marker org-log-note-marker (point))
> -    (setq org-log-note-purpose purpose
> -	  org-log-note-state state
> -	  org-log-note-how how
> -	  org-log-note-extra extra)
> -    (add-hook 'post-command-hook 'org-add-log-note 'append)))
> +  (save-restriction
> +    (save-excursion
> +      (when findpos
> +	(org-back-to-heading t)
> +	(org-narrow-to-subtree)
> +	(while (re-search-forward
> +		(concat "\\(" org-drawer-regexp "\\|" org-property-end-re "\\)")
> +		(point-max) t) (forward-line))
> +	(looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"
> +			    "\\(\n[^\r\n]*?" org-keyword-time-not-clock-regexp
> +			    "[^\r\n]*\\)?"))
> +	(goto-char (match-end 0))
> +	(unless org-log-states-order-reversed
> +	  (and (= (char-after) ?\n) (forward-char 1))
> +	  (org-skip-over-state-notes)
> +	  (skip-chars-backward " \t\n\r")))
> +      (move-marker org-log-note-marker (point))
> +      (setq org-log-note-purpose purpose
> +	    org-log-note-state state
> +	    org-log-note-how how
> +	    org-log-note-extra extra)
> +      (add-hook 'post-command-hook 'org-add-log-note 'append))))
>
> (defun org-skip-over-state-notes ()
>   "Skip past the list of State notes in an entry."
>
>
>
> _______________________________________________
> 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-16  4:50 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-20 21:08 [PATCH 0/9] Update my last patchset James TD Smith
2008-09-20 21:08 ` [PATCH 1/9] Some improvements to the modeline clock display James TD Smith
2008-09-20 21:08 ` [PATCH 2/9] Fix X clipboard handling in emacs21 James TD Smith
2008-09-20 21:08 ` [PATCH 3/9] Show durations of clocked times in timeline James TD Smith
2008-09-20 21:09 ` [PATCH 4/9] Fix link display in imenus and the refile interface James TD Smith
2008-09-21  6:25   ` Carsten Dominik
2008-09-21 14:31     ` [PATCH] " James TD Smith
2008-09-21 19:40       ` Carsten Dominik
2008-09-20 21:09 ` [PATCH 5/9] Fix note insertion in entries with drawers James TD Smith
2008-10-16  4:50   ` Carsten Dominik [this message]
2008-09-20 21:09 ` [PATCH 6/9] Add some functions for handling checklists James TD Smith
2008-09-20 21:09 ` [PATCH 7/9] Add some new interaction between remember and clocked tasks James TD Smith
2008-09-20 21:09 ` [PATCH 8/9] Add a % expansion for inserting properties in remember buffers James TD Smith
2008-09-20 21:09 ` [PATCH 9/9] Some bugfixes for org-plot James TD Smith
2008-09-21  4:48 ` [PATCH 0/9] Update my last patchset Carsten Dominik
2008-09-21 12:21   ` James TD Smith
2008-09-21 12:43     ` 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=C9878846-EF1C-44B9-8BD3-4538FB2972AB@uva.nl \
    --to=dominik@science.uva.nl \
    --cc=ahktenzero@mohorovi.cc \
    --cc=emacs-orgmode@gnu.org \
    /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).