Re: [Orgmode] possible bug in org-goto-local-search-headings

2009-11-13 Thread Carsten Dominik


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 carsten.domi...@gmail.com 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
hin...@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





___
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


[Orgmode] possible bug in org-goto-local-search-headings

2009-11-12 Thread Lee Hinman
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


Re: [Orgmode] possible bug in org-goto-local-search-headings

2009-11-12 Thread Carsten Dominik

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





___
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


Re: [Orgmode] possible bug in org-goto-local-search-headings

2009-11-12 Thread Lee Hinman
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.

--
Lee



Carsten Dominik carsten.domi...@gmail.com 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
hin...@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