From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: possible bug in org-goto-local-search-headings Date: Fri, 13 Nov 2009 23:30:51 +0100 Message-ID: <636417E5-EA55-4A47-A951-C231EDABE9C1@gmail.com> References: <476194BA-1CED-4FF4-B479-D42D297F00A0@gmail.com> Mime-Version: 1.0 (Apple Message framework v936) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N94fV-0006hf-QK for emacs-orgmode@gnu.org; Fri, 13 Nov 2009 17:31:01 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N94fR-0006cc-R4 for emacs-orgmode@gnu.org; Fri, 13 Nov 2009 17:31:01 -0500 Received: from [199.232.76.173] (port=53218 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N94fR-0006cP-JI for emacs-orgmode@gnu.org; Fri, 13 Nov 2009 17:30:57 -0500 Received: from mail-fx0-f225.google.com ([209.85.220.225]:64859) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N94fQ-0002jG-Pi for emacs-orgmode@gnu.org; Fri, 13 Nov 2009 17:30:57 -0500 Received: by fxm25 with SMTP id 25so4002824fxm.26 for ; Fri, 13 Nov 2009 14:30:55 -0800 (PST) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Lee Hinman Cc: emacs-orgmode@gnu.org On Nov 13, 2009, at 1:24 AM, Lee Hinman wrote: > Carsten, > > I admit I could be using the function inappropriately. Please let me > know if am. > > I have a little function I wrote to help me maintain a journal, I > didn't > like the formatting I got using remember. Here is the function. > > (defun lee-journal-entry () > "Create a new journal entry for today or append to existing month." > (interactive) > (switch-to-buffer (find-file lee-journal-file)) > (widen) > (let ((today (format-time-string "%Y.%m"))) > (unless (org-goto-local-search-headings today nil t) > ((lambda () > (beginning-of-buffer) > (org-insert-heading) > (insert today)))) > (show-children) > (end-of-line) > (insert "\n") > (org-insert-heading) > (org-do-demote) > (org-insert-time-stamp (current-time)) > (insert " "))) > > So I'm using org-goto-local-search-heading to find the correct heading > to start my new journal entry in. Hi Lee, it is OK to call such a function, but then you need to provide the correct environment. In this case, it is probably enough to add (isearch-forward t) to the let bindings in the function. - Carsten > > -- > Lee > > > > Carsten Dominik writes: > >> Hi Lee, >> >> I do not understand. >> >> Why would you call this function? It is being called by the >> internals of isearch, and when that happens, isearch.el is obviously >> loaded. >> >> What am I missing here? >> >> - Carsten >> >> On Nov 12, 2009, at 8:04 PM, Lee Hinman wrote: >> >>> I noticed some interesting behavior with the >>> org-goto-local-search-headings function in Emacs 23.1.1. >>> >>> If you call the function before doing an incremental search, >>> searching >>> forward fails. If you call it after doing an incremental search the >>> function will search forward. A quick look at the code showed >>> that it >>> only does a forward search if isearch-forward is defined. This is >>> both >>> a variable and a function in isearch.el, and the variable >>> isearch-forward is set to nil until you do a search. >>> >>> The following patch against the current orgmode removes the >>> dependency >>> on isearch-forward and will now search forward first, if it doesn't >>> find >>> anything will search backward from the original point. I *think* >>> this >>> is the behavior that was intended. >>> >>> >>> diff --git a/lisp/org.el b/lisp/org.el >>> index dd34816..1e9aad3 100644 >>> --- a/lisp/org.el >>> +++ b/lisp/org.el >>> @@ -5801,8 +5801,7 @@ or nil." >>> (defun org-goto-local-search-headings (string bound noerror) >>> "Search and make sure that any matches are in headlines." >>> (catch 'return >>> - (while (if isearch-forward >>> - (search-forward string bound noerror) >>> + (while (or (search-forward string bound t) >>> (search-backward string bound noerror)) >>> (when (let ((context (mapcar 'car (save-match-data (org- >>> context))))) >>> (and (member :headline context) >>> >>> >>> -- >>> Lee Hinman >>> >>> >>> >>> _______________________________________________ >>> 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 >> >> - Carsten >> >> >> > > -- > Lee Hinman > hinman@gmail.com > > > _______________________________________________ > 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 - Carsten