Re: [O] org-capture and XEmacs, indenting too far

2011-10-26 Thread Bastien
Hi Michael,

Michael Sperber sper...@deinprogramm.de writes:

 Looking at this again, my analysis was stupid: The problem is that the
 indirect buffer used for capture is not in org-mode at all, and that is
 indeed an XEmacs-specific problem, as `make-indirect-buffer' does not
 accept the 'clone argument on XEmacs.  I therefore retract the rubbish I
 sent earlier and suggest this one instead:

Applied, thanks for this.

-- 
 Bastien



Re: [O] org-capture and XEmacs, indenting too far

2011-10-23 Thread Michael Sperber

Michael Sperber sper...@deinprogramm.de writes:

 Robert Pluim rpl...@gmail.com writes:

 Hi, I'm using XEmacs 21.5  (beta29) garbanzo d27c1ee1943b+ [Lucid]
 (i686-pc-cygwin, Mule) of Mon Oct 18 2010 on RPluim, with the following
 org-capture-templates

 ((t Todo entry (file+headline ~/org/notes.org Tasks) * TODO %?))

 The problem is that for some reason the resulting TODO heading is has 2
 extra spaces, and is placed at too deep a level, giving:

 * Tasks
 ***   TODO a task

 I've tested this on a fairly recent emacs24 build, and everything works
 fine there, so this is probably something XEmacs specific.  Can anyone
 suggest any way to track this down (I'd bisect, but I've yet to find a
 'good' version)?

 I finally got around to looking into this: The reason is that, in
 org-capture mode, `outline-level' is bound to outline.el's function,

Looking at this again, my analysis was stupid: The problem is that the
indirect buffer used for capture is not in org-mode at all, and that is
indeed an XEmacs-specific problem, as `make-indirect-buffer' does not
accept the 'clone argument on XEmacs.  I therefore retract the rubbish I
sent earlier and suggest this one instead:

diff --git a/lisp/ob-calc.el b/lisp/ob-calc.el
index 14d7d5d..44ed82b 100644
--- a/lisp/ob-calc.el
+++ b/lisp/ob-calc.el
@@ -28,7 +28,6 @@
 ;;; Code:
 (require 'ob)
 (require 'calc)
-(require 'calc-store)
 (unless (featurep 'xemacs)
   (require 'calc-trail)
   (require 'calc-store))
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index e1b8a4f..fa9895f 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -848,6 +848,7 @@ it.  When it is a variable, retrieve the value.  Return 
whatever we get.
   (goto-char (org-capture-get :pos))
   (org-set-local 'org-capture-target-marker
 (move-marker (make-marker) (point)))
+  (org-set-local 'outline-level 'org-outline-level)
   (let* ((template (org-capture-get :template))
 (type (org-capture-get :type)))
 (case type
@@ -1213,7 +1214,10 @@ Use PREFIX as a prefix for the name of the indirect 
buffer.
   (setq bname (concat prefix - (number-to-string (incf n)) - base)))
 (condition-case nil
 (make-indirect-buffer buffer bname 'clone)
-  (error (make-indirect-buffer buffer bname)
+  (error 
+   (let ((buf (make-indirect-buffer buffer bname)))
+(with-current-buffer buf (org-mode))
+buf)
 
 
 (defun org-capture-verify-tree (tree)

Sorry about the snafu.

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla



Re: [O] org-capture and XEmacs, indenting too far

2011-10-23 Thread Carsten Dominik
THis looks like the right solution to me...

- Carsten

On 23.10.2011, at 10:15, Michael Sperber wrote:

 
 Michael Sperber sper...@deinprogramm.de writes:
 
 Robert Pluim rpl...@gmail.com writes:
 
 Hi, I'm using XEmacs 21.5  (beta29) garbanzo d27c1ee1943b+ [Lucid]
 (i686-pc-cygwin, Mule) of Mon Oct 18 2010 on RPluim, with the following
 org-capture-templates
 
 ((t Todo entry (file+headline ~/org/notes.org Tasks) * TODO %?))
 
 The problem is that for some reason the resulting TODO heading is has 2
 extra spaces, and is placed at too deep a level, giving:
 
 * Tasks
 ***   TODO a task
 
 I've tested this on a fairly recent emacs24 build, and everything works
 fine there, so this is probably something XEmacs specific.  Can anyone
 suggest any way to track this down (I'd bisect, but I've yet to find a
 'good' version)?
 
 I finally got around to looking into this: The reason is that, in
 org-capture mode, `outline-level' is bound to outline.el's function,
 
 Looking at this again, my analysis was stupid: The problem is that the
 indirect buffer used for capture is not in org-mode at all, and that is
 indeed an XEmacs-specific problem, as `make-indirect-buffer' does not
 accept the 'clone argument on XEmacs.  I therefore retract the rubbish I
 sent earlier and suggest this one instead:
 
 diff --git a/lisp/ob-calc.el b/lisp/ob-calc.el
 index 14d7d5d..44ed82b 100644
 --- a/lisp/ob-calc.el
 +++ b/lisp/ob-calc.el
 @@ -28,7 +28,6 @@
 ;;; Code:
 (require 'ob)
 (require 'calc)
 -(require 'calc-store)
 (unless (featurep 'xemacs)
   (require 'calc-trail)
   (require 'calc-store))
 diff --git a/lisp/org-capture.el b/lisp/org-capture.el
 index e1b8a4f..fa9895f 100644
 --- a/lisp/org-capture.el
 +++ b/lisp/org-capture.el
 @@ -848,6 +848,7 @@ it.  When it is a variable, retrieve the value.  Return 
 whatever we get.
   (goto-char (org-capture-get :pos))
   (org-set-local 'org-capture-target-marker
(move-marker (make-marker) (point)))
 +  (org-set-local 'outline-level 'org-outline-level)
   (let* ((template (org-capture-get :template))
(type (org-capture-get :type)))
 (case type
 @@ -1213,7 +1214,10 @@ Use PREFIX as a prefix for the name of the indirect 
 buffer.
   (setq bname (concat prefix - (number-to-string (incf n)) - base)))
 (condition-case nil
 (make-indirect-buffer buffer bname 'clone)
 -  (error (make-indirect-buffer buffer bname)
 +  (error 
 +   (let ((buf (make-indirect-buffer buffer bname)))
 +  (with-current-buffer buf (org-mode))
 +  buf)
 
 
 (defun org-capture-verify-tree (tree)
 
 Sorry about the snafu.
 
 -- 
 Cheers =8-} Mike
 Friede, Völkerverständigung und überhaupt blabla




Re: [O] org-capture and XEmacs, indenting too far

2011-10-23 Thread Bastien
Hello Michael,

Michael Sperber sper...@deinprogramm.de writes:

 Looking at this again, my analysis was stupid: The problem is that the
 indirect buffer used for capture is not in org-mode at all, and that is
 indeed an XEmacs-specific problem, as `make-indirect-buffer' does not
 accept the 'clone argument on XEmacs.  I therefore retract the rubbish I
 sent earlier and suggest this one instead:

Thanks for the analysis and solution.

May I ask you to resend the patch with a proper ChangeLog?
The simple way is to commit your changes on a newbranch then 
to create the patches with 

  ~$ git format-patch master..newbranch

Thanks a lot for your effort,

-- 
 Bastien



Re: [O] org-capture and XEmacs, indenting too far

2011-10-22 Thread Michael Sperber

Robert Pluim rpl...@gmail.com writes:

 Hi, I'm using XEmacs 21.5  (beta29) garbanzo d27c1ee1943b+ [Lucid]
 (i686-pc-cygwin, Mule) of Mon Oct 18 2010 on RPluim, with the following
 org-capture-templates

 ((t Todo entry (file+headline ~/org/notes.org Tasks) * TODO %?))

 The problem is that for some reason the resulting TODO heading is has 2
 extra spaces, and is placed at too deep a level, giving:

 * Tasks
 ***   TODO a task

 I've tested this on a fairly recent emacs24 build, and everything works
 fine there, so this is probably something XEmacs specific.  Can anyone
 suggest any way to track this down (I'd bisect, but I've yet to find a
 'good' version)?

I finally got around to looking into this: The reason is that, in
org-capture mode, `outline-level' is bound to outline.el's function,
which is off by one compared to org-mode's.  I used this patch to fix
it:

diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index e1b8a4f..cfa35d5 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -848,6 +848,7 @@ it.  When it is a variable, retrieve the value.  Return 
whatever we get.
   (goto-char (org-capture-get :pos))
   (org-set-local 'org-capture-target-marker
 (move-marker (make-marker) (point)))
+  (org-set-local 'outline-level 'org-outline-level)
   (let* ((template (org-capture-get :template))
 (type (org-capture-get :type)))
 (case type

Could somebody review and maybe apply this?

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla