Re: [Orgmode] [PATCH] org-macs: store evaluated version of pom

2011-02-27 Thread Bastien
Hi Julien,

Julien Danjou jul...@danjou.info writes:

 Yes it is. This patch just fix one problem. Without it, what is set
 with pom is evaluated multiple times:

 (org-with-point-at (function-that-return-some-marker)
   (do-stuff))

 (function-that-return-some-marker) will be called several times, which
 can causes a lot of problem, as you imagine just by reading the current
 code.

 This patch evalute the function, store it to `pom' and use this variable
 instead.

Many thanks for the explanations.

I've now applied this patch.

-- 
 Bastien

___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] [PATCH] org-macs: store evaluated version of pom

2011-02-26 Thread Bastien
Hi Julien,

Julien Danjou jul...@danjou.info writes:

 * lisp/org-macs.el (org-with-point-at): Store evaluated version of pom. This
 fixes a potential bug when using (org-with-point-at (func) …), where (func)
 would be evaluated multiple times

I'm not sure I understand this patch.

Can you show an actual use of org-with-point-at as the one you describe?

Maybe that's related to some code your are working on?

Thanks,

-- 
 Bastien

___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] [PATCH] org-macs: store evaluated version of pom

2011-02-26 Thread Julien Danjou
On Sat, Feb 26 2011, Bastien wrote:

 * lisp/org-macs.el (org-with-point-at): Store evaluated version of pom. This
 fixes a potential bug when using (org-with-point-at (func) …), where (func)
 would be evaluated multiple times

 I'm not sure I understand this patch.

 Can you show an actual use of org-with-point-at as the one you describe?

 Maybe that's related to some code your are working on?

Yes it is. This patch just fix one problem. Without it, what is set
with pom is evaluated multiple times:

(org-with-point-at (function-that-return-some-marker)
  (do-stuff))

(function-that-return-some-marker) will be called several times, which
can causes a lot of problem, as you imagine just by reading the current
code.

This patch evalute the function, store it to `pom' and use this variable
instead.

-- 
Julien Danjou
❱ http://julien.danjou.info


pgpRQy35eQkWq.pgp
Description: PGP signature
___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[Orgmode] [PATCH] org-macs: store evaluated version of pom

2011-02-25 Thread Julien Danjou
* lisp/org-macs.el (org-with-point-at): Store evaluated version of pom. This
fixes a potential bug when using (org-with-point-at (func) …), where (func)
would be evaluated multiple times, therefore might return different results
if a marker was returned and different each time.

Signed-off-by: Julien Danjou jul...@danjou.info
---
 lisp/org-macs.el |9 +
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/lisp/org-macs.el b/lisp/org-macs.el
index 9c161e3..2090ca7 100644
--- a/lisp/org-macs.el
+++ b/lisp/org-macs.el
@@ -134,11 +134,12 @@ We use a macro so that the test can happen at compilation 
time.
 
 (defmacro org-with-point-at (pom rest body)
   Move to buffer and point of point-or-marker POM for the duration of BODY.
-  `(save-excursion
- (if (markerp ,pom) (set-buffer (marker-buffer ,pom)))
+  `(let ((pom ,pom))
  (save-excursion
-   (goto-char (or ,pom (point)))
-   ,@body)))
+   (if (markerp pom) (set-buffer (marker-buffer pom)))
+   (save-excursion
+(goto-char (or pom (point)))
+,@body
 (put 'org-with-point-at 'lisp-indent-function 1)
 
 (defmacro org-no-warnings (rest body)
-- 
1.7.4.1


___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode