Re: [O] org-capture and XEmacs, indenting too far
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
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
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
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
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