* Getting rid of split frame with org-capture @ 2011-11-10 19:08 Thomas Lockney 2011-11-12 15:57 ` Gregor Zattler 2011-11-13 20:41 ` Getting rid of split frame with org-capture Nick Dokos 0 siblings, 2 replies; 56+ messages in thread From: Thomas Lockney @ 2011-11-10 19:08 UTC (permalink / raw) To: emacs-orgmode I'm attempting to get some code working that should create a new frame with *just* org-capture, but when I run it, I keep getting a split despite various attempts at running delete-other-windows. I'm running on "GNU Emacs 24.0.90.1 (i386-apple-darwin10.8.0, NS apple-appkit-1038.36)" so perhaps this is a 24 specific issue. Here's the code I've currently got: (defadvice org-capture-finalize (after delete-capture-frame activate) "Advise capture-finalize to close the frame if it is the capture frame" (if (equal "capture" (frame-parameter nil 'name)) (delete-frame))) (defadvice org-capture-destroy (after delete-capture-frame activate) "Advise capture-destroy to close the frame if it is the capture frame" (if (equal "capture" (frame-parameter nil 'name)) (delete-frame))) (defun make-capture-frame () "Create a new frame and run org-capture." (interactive) (make-frame '((name . "Capture") (width . 100) (height . 15))) (select-frame-by-name "Capture") (delete-other-windows) (org-capture)) I've also tried this using the org-capture-mode-hook to call delete-other-windows and I've tried placing delete-other-windows after the call to org-capture (both of those based on solutions I've seen posted to this list at various times). Anyone have any clues on this? I'm stumped, but I'm also fairly inexperienced at programming emacs. -- http://about.me/tlockney ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Getting rid of split frame with org-capture 2011-11-10 19:08 Getting rid of split frame with org-capture Thomas Lockney @ 2011-11-12 15:57 ` Gregor Zattler [not found] ` <telegraph@gmx.net> 2011-11-13 20:41 ` Getting rid of split frame with org-capture Nick Dokos 1 sibling, 1 reply; 56+ messages in thread From: Gregor Zattler @ 2011-11-12 15:57 UTC (permalink / raw) To: emacs-orgmode Hi Thomas, org-mode community, * Thomas Lockney <thomas@lockney.net> [10. Nov. 2011]: > I'm attempting to get some code working that should create a new frame > with *just* org-capture, this is something I also tried hard to achive. > but when I run it, I keep getting a split > despite various attempts at running delete-other-windows. I'm running > on "GNU Emacs 24.0.90.1 (i386-apple-darwin10.8.0, NS > apple-appkit-1038.36)" so perhaps this is a 24 specific issue. Here's > the code I've currently got: > > (defadvice org-capture-finalize (after delete-capture-frame activate) > "Advise capture-finalize to close the frame if it is the capture frame" > (if (equal "capture" (frame-parameter nil 'name)) > (delete-frame))) > > (defadvice org-capture-destroy (after delete-capture-frame activate) > "Advise capture-destroy to close the frame if it is the capture frame" > (if (equal "capture" (frame-parameter nil 'name)) > (delete-frame))) > > (defun make-capture-frame () > "Create a new frame and run org-capture." > (interactive) > (make-frame '((name . "Capture") > (width . 100) > (height . 15))) > (select-frame-by-name "Capture") > (delete-other-windows) > (org-capture)) I played a bit with your code. I also use emacs24. I also get a split frame. I think it's org-capture which splits the frame. I want to run this with emacsclient. But when there is no graphical (X11) frame then emacsclient -e '(make-capture-frame)' does nothing, no frame pops up. > I've also tried this using the org-capture-mode-hook to call > delete-other-windows and I've tried placing delete-other-windows after > the call to org-capture (both of those based on solutions I've seen > posted to this list at various times). Anyone have any clues on this? > I'm stumped, but I'm also fairly inexperienced at programming > emacs. me too. For my capture needs I would like to automatically open a frame for org-capture and also automatically close it when finishing the capture. This should happen regardless of other frames or the lack of other frames. Ciao, Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 56+ messages in thread
[parent not found: <telegraph@gmx.net>]
* Re: Getting rid of split frame with org-capture [not found] ` <telegraph@gmx.net> @ 2011-11-13 4:13 ` Nick Dokos 2011-11-13 16:48 ` Tom Prince 2012-01-12 22:12 ` How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" Nick Dokos ` (4 subsequent siblings) 5 siblings, 1 reply; 56+ messages in thread From: Nick Dokos @ 2011-11-13 4:13 UTC (permalink / raw) To: emacs-orgmode; +Cc: nicholas.dokos Gregor Zattler <telegraph@gmx.net> wrote: > Hi Thomas, org-mode community, > * Thomas Lockney <thomas@lockney.net> [10. Nov. 2011]: > > I'm attempting to get some code working that should create a new frame > > with *just* org-capture, > > this is something I also tried hard to achive. > > > but when I run it, I keep getting a split > > despite various attempts at running delete-other-windows. I'm running > > on "GNU Emacs 24.0.90.1 (i386-apple-darwin10.8.0, NS > > apple-appkit-1038.36)" so perhaps this is a 24 specific issue. Here's > > the code I've currently got: > > > > (defadvice org-capture-finalize (after delete-capture-frame activate) > > "Advise capture-finalize to close the frame if it is the capture frame" > > (if (equal "capture" (frame-parameter nil 'name)) > > (delete-frame))) > > > > (defadvice org-capture-destroy (after delete-capture-frame activate) > > "Advise capture-destroy to close the frame if it is the capture frame" > > (if (equal "capture" (frame-parameter nil 'name)) > > (delete-frame))) > > > > (defun make-capture-frame () > > "Create a new frame and run org-capture." > > (interactive) > > (make-frame '((name . "Capture") > > (width . 100) > > (height . 15))) > > (select-frame-by-name "Capture") > > (delete-other-windows) > > (org-capture)) > > I played a bit with your code. I also use emacs24. I also get a > split frame. I think it's org-capture which splits the frame. > > I want to run this with emacsclient. But when there is no > graphical (X11) frame then emacsclient -e '(make-capture-frame)' > does nothing, no frame pops up. > > > I've also tried this using the org-capture-mode-hook to call > > delete-other-windows and I've tried placing delete-other-windows after > > the call to org-capture (both of those based on solutions I've seen > > posted to this list at various times). Anyone have any clues on this? > > I'm stumped, but I'm also fairly inexperienced at programming > > emacs. > > me too. For my capture needs I would like to automatically open a frame for > org-capture and also automatically close it when finishing the > capture. This should happen regardless of other frames or the > lack of other frames. > AFAICT, this is not possible with the current code. The above is attacking the problem at the wrong level: you can't change that behavior from the outside; you need to change the existing code in order to implement it. If you wish to hack, the relevant function is org-capture-place-template: changing the org-switch-to-buffer-other-window to org-switch-to-buffer-other-frame (and adding a definition for the latter function in analogy to the former) would indeed pop up a frame and you can enter your capture and finalize it - that's the easy part. But note that org-capture-finalize would need a tweak too in order to delete the now useless frame. And of course all of this would need to be done conditionally based on a new user option, perhaps org-capture-in-new-frame (nil by default). And don't forget to make it customizable. Not worth the bother IMO[fn:1], but if you wish to implement it and submit a patch, I'd be happy to review it. Nick Footnotes: [fn:1] Remember, capture is supposed to be as unobtrusive as possible: you just want to squirrel away something for future reference. Bells and whistles (which, IMO, this change would be) are not the point: you want to get in, record the data and get out and back to work as fast as possible. Popping up frames slows things down but more importantly jolts you away from what you were doing. At least, it would me (I think): that's why I don't think it's worth it, but you may very well disagree. ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Getting rid of split frame with org-capture 2011-11-13 4:13 ` Nick Dokos @ 2011-11-13 16:48 ` Tom Prince 2011-11-13 17:57 ` Nick Dokos 0 siblings, 1 reply; 56+ messages in thread From: Tom Prince @ 2011-11-13 16:48 UTC (permalink / raw) To: Nick Dokos, emacs-orgmode On Sat, 12 Nov 2011 23:13:11 -0500, Nick Dokos <nicholas.dokos@hp.com> wrote: > Not worth the bother IMO[fn:1], but if you wish to implement it and submit > a patch, I'd be happy to review it. > > Nick > > Footnotes: > > [fn:1] Remember, capture is supposed to be as unobtrusive as possible: > you just want to squirrel away something for future > reference. Bells and whistles (which, IMO, this change would be) > are not the point: you want to get in, record the data and get > out and back to work as fast as possible. Popping up frames slows > things down but more importantly jolts you away from what you > were doing. At least, it would me (I think): that's why I don't > think it's worth it, but you may very well disagree. It isn't worth *if* capture is invoked from emacs. If capture is invoked from org-protocol in firefox, then there might not even be a emacs frame visible. 1) If I don't pass -c to emacsclient, then I need to search all my workspaces to find where emacs decided to put the capture frame 2) If I pass do pass -c to emacsclient, then I need to close the frame afterwards. And more significantly, I need to close the empty frame when I use store-link instead. (I could work around this by using seperate protocols for for each) Tom ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Getting rid of split frame with org-capture 2011-11-13 16:48 ` Tom Prince @ 2011-11-13 17:57 ` Nick Dokos 2011-11-20 16:16 ` Tom Prince 2011-11-25 16:35 ` Eric S Fraga 0 siblings, 2 replies; 56+ messages in thread From: Nick Dokos @ 2011-11-13 17:57 UTC (permalink / raw) To: Tom Prince; +Cc: nicholas.dokos, emacs-orgmode Tom Prince <tom.prince@ualberta.net> wrote: > On Sat, 12 Nov 2011 23:13:11 -0500, Nick Dokos <nicholas.dokos@hp.com> wrote: > > Not worth the bother IMO[fn:1], but if you wish to implement it and submit > > a patch, I'd be happy to review it. > > > > Nick > > > > Footnotes: > > > > [fn:1] Remember, capture is supposed to be as unobtrusive as possible: > > you just want to squirrel away something for future > > reference. Bells and whistles (which, IMO, this change would be) > > are not the point: you want to get in, record the data and get > > out and back to work as fast as possible. Popping up frames slows > > things down but more importantly jolts you away from what you > > were doing. At least, it would me (I think): that's why I don't > > think it's worth it, but you may very well disagree. > > It isn't worth *if* capture is invoked from emacs. If capture is invoked > from org-protocol in firefox, then there might not even be a emacs frame > visible. > <OT rant> org-protocol is below my horizon :-) I had gotten it working a long time ago, then something happened in ff and broke it, I fixed it, they broke it again and at some point I gave up: every time I had to fix it, I had to go back and relearn everything (it's not as if I live and breathe ff arcana) and do a few hours' worth of research and then try a few dozen times, tweaking this and that because all the instructions were either outdated or inconsistent - if "they" are not respectful enough of the thousands of people that used the feature that they broke and not cognizant of the pain they produce, I will not use their damn feature. Similar remarks apply to the "improvements" of Unity and Gnome 3: a plague a' both their houses. All I need the damn desktop to do is open emacs when I click on the icon and give me enough workspaces for my needs (which vary). I'd rather do cut-n-paste than waste another second on org-protocol (mind you, it's not org-protocol's problem: it's the other side that breaks - but without the other side, org-protocol is almost useless). Ah, I feel better now... </OT rant> > 1) If I don't pass -c to emacsclient, then I need to search all my > workspaces to find where emacs decided to put the capture frame > 2) If I pass do pass -c to emacsclient, then I need to close the frame > afterwards. And more significantly, I need to close the empty frame > when I use store-link instead. (I could work around this by using > seperate protocols for for each) > Sounds like a worthwhile thing to fix - patches would probably be welcome. Nick ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Getting rid of split frame with org-capture 2011-11-13 17:57 ` Nick Dokos @ 2011-11-20 16:16 ` Tom Prince 2011-12-13 23:11 ` Andreas Leha 2011-11-25 16:35 ` Eric S Fraga 1 sibling, 1 reply; 56+ messages in thread From: Tom Prince @ 2011-11-20 16:16 UTC (permalink / raw) To: nicholas.dokos; +Cc: emacs-orgmode On Sun, 13 Nov 2011 12:57:21 -0500, Nick Dokos <nicholas.dokos@hp.com> wrote: > > 1) If I don't pass -c to emacsclient, then I need to search all my > > workspaces to find where emacs decided to put the capture frame > > 2) If I pass do pass -c to emacsclient, then I need to close the frame > > afterwards. And more significantly, I need to close the empty frame > > when I use store-link instead. (I could work around this by using > > seperate protocols for for each) > > > > Sounds like a worthwhile thing to fix - patches would probably be > welcome. I came up with the following hack, which seems to do what I want: (defadvice org-protocol-check-filename-for-protocol (around tp/org-protocol-make-frame activate) "Advice org-protocol-check-filename-for-protocol to open windows in new frames." (flet ((org-switch-to-buffer-other-window (&rest args) ; for org-mks (let ((pop-up-frames t)) (apply 'switch-to-buffer-other-window args))) (org-pop-to-buffer-same-window (&rest args) ; for org-capture (let ((pop-up-frames t)) (apply 'switch-to-buffer-other-window args)))) (let ((display-buffer-mark-dedicated t)) ad-do-it))) ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Getting rid of split frame with org-capture 2011-11-20 16:16 ` Tom Prince @ 2011-12-13 23:11 ` Andreas Leha 2011-12-14 16:37 ` Tom Prince 0 siblings, 1 reply; 56+ messages in thread From: Andreas Leha @ 2011-12-13 23:11 UTC (permalink / raw) To: emacs-orgmode Hi, @Tom, thanks for this nice snippet! Very useful, when several emacs frames are opened. While it works well on my emacs23, the emacs24 snapshot from http://emacs.naquadah.org/ crashes, when I select a template. Is this a general issue with emacs24? Ideas to adapt the snippet to work with emacs24? Thank in advance, Andreas ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Getting rid of split frame with org-capture 2011-12-13 23:11 ` Andreas Leha @ 2011-12-14 16:37 ` Tom Prince 2013-10-04 4:33 ` Alexander Vorobiev 0 siblings, 1 reply; 56+ messages in thread From: Tom Prince @ 2011-12-14 16:37 UTC (permalink / raw) To: Andreas Leha, emacs-orgmode On Wed, 14 Dec 2011 00:11:11 +0100, Andreas Leha <andreas.leha@med.uni-goettingen.de> wrote: > While it works well on my emacs23, the emacs24 snapshot from > http://emacs.naquadah.org/ crashes, when I select a template. Is this a > general issue with emacs24? Ideas to adapt the snippet to work with > emacs24? What do you mean by crash? Does the emacs process exit? In that case, I would try reporting the problem to some emacs forum ... I don't think emacs should be crashing given any elisp code, certainly not this code. Tom ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Getting rid of split frame with org-capture 2011-12-14 16:37 ` Tom Prince @ 2013-10-04 4:33 ` Alexander Vorobiev 2013-10-04 7:06 ` Alan Schmitt 0 siblings, 1 reply; 56+ messages in thread From: Alexander Vorobiev @ 2013-10-04 4:33 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1828 bytes --] I also wanted to have new pop-up org-capture window that would be created in response to some shortcut anywhere in Windows and occupied the entire frame. Since I haven't found any solutions, I just modified a function I saw in this thread: (defun make-capture-frame () "Create a new frame and run org-capture." (interactive) (make-frame '((name . "capture"))) (select-frame-by-name "capture") (delete-other-windows) (flet ((switch-to-buffer-other-window (buf) (switch-to-buffer buf))) (org-capture))) The culprit is switch-to-buffer-other-window that ultimately gets called by org-capture so I just reassign it temporarily to switch-to-buffer. Then I use AutoHotkey to create a shortcut that would call emacsclient with the new function. I am experimenting with AutoHotkey to construct application-dependent org-mode-style links on the clipboard so that I can use %x parameter in my capture templates to insert them. The current version of my AutoHotkey script creates links when in Google Chrome or Excel: https://github.com/alexvorobiev/autohotkey/blob/master/AutoHotkey.ahk The shortcut is Win-` Regards, Alex On Wed, Dec 14, 2011 at 10:37 AM, Tom Prince <tom.prince@ualberta.net>wrote: > On Wed, 14 Dec 2011 00:11:11 +0100, Andreas Leha < > andreas.leha@med.uni-goettingen.de> wrote: > > While it works well on my emacs23, the emacs24 snapshot from > > http://emacs.naquadah.org/ crashes, when I select a template. Is this a > > general issue with emacs24? Ideas to adapt the snippet to work with > > emacs24? > > What do you mean by crash? Does the emacs process exit? In that case, I > would try reporting the problem to some emacs forum ... I don't think > emacs should be crashing given any elisp code, certainly not this code. > > Tom > > [-- Attachment #2: Type: text/html, Size: 2869 bytes --] ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Getting rid of split frame with org-capture 2013-10-04 4:33 ` Alexander Vorobiev @ 2013-10-04 7:06 ` Alan Schmitt 0 siblings, 0 replies; 56+ messages in thread From: Alan Schmitt @ 2013-10-04 7:06 UTC (permalink / raw) To: Alexander Vorobiev; +Cc: emacs-orgmode alexander.vorobiev@gmail.com writes: > I also wanted to have new pop-up org-capture window that would be created > in > response to some shortcut anywhere in Windows and occupied the entire > frame. > Since I haven't found any solutions, I just modified a function I saw in > this thread: > > (defun make-capture-frame () > "Create a new frame and run org-capture." > (interactive) > (make-frame '((name . "capture"))) > (select-frame-by-name "capture") > (delete-other-windows) > (flet ((switch-to-buffer-other-window (buf) (switch-to-buffer > buf))) > (org-capture))) > > The culprit is switch-to-buffer-other-window that ultimately gets called by > org-capture so I just reassign it temporarily to switch-to-buffer. This is working great, thanks a lot! Alan ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Getting rid of split frame with org-capture 2011-11-13 17:57 ` Nick Dokos 2011-11-20 16:16 ` Tom Prince @ 2011-11-25 16:35 ` Eric S Fraga 1 sibling, 0 replies; 56+ messages in thread From: Eric S Fraga @ 2011-11-25 16:35 UTC (permalink / raw) To: nicholas.dokos; +Cc: emacs-orgmode, Tom Prince Nick Dokos <nicholas.dokos@hp.com> writes: > <OT rant> > > org-protocol is below my horizon :-) I had gotten it working a long time > ago, then something happened in ff and broke it, I fixed it, they broke > it again and at some point I gave up: every time I had to fix it, I I so sympathise with you! I gave up on capture from ff for exactly this reason. Keyboard based cut'n'paste does the job with only a couple more keystrokes in the end (C-l C-c M-tab C-c c n C-y C-c C-c). Well, with appropriate number of M-Tabs... YMMV, of course! > feature. Similar remarks apply to the "improvements" of Unity and Gnome > 3: a plague a' both their houses. All I need the damn desktop to do is > open emacs when I click on the icon and give me enough workspaces for my > needs (which vary). which is why I use ratpoison with "C-t e" opening up Emacs... ;-) > Ah, I feel better now... > > </OT rant> As do I! Thanks. Apologies for the noise. -- : Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.90.1 : using Org-mode version 7.7 (release_7.7.598.g4e2a) ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" [not found] ` <telegraph@gmx.net> 2011-11-13 4:13 ` Nick Dokos @ 2012-01-12 22:12 ` Nick Dokos 2012-01-12 22:56 ` Nick Dokos 2012-01-14 18:49 ` [BUG] org-clock-sum cannot handle headings with more than 29 stars (was: Re: How to debug "org-clock-display: Args out of range: [48230 48230) " Nick Dokos ` (3 subsequent siblings) 5 siblings, 1 reply; 56+ messages in thread From: Nick Dokos @ 2012-01-12 22:12 UTC (permalink / raw) To: emacs-orgmode; +Cc: nicholas.dokos Gregor Zattler <telegraph@gmx.net> wrote: > Debugger entered--Lisp error: (args-out-of-range [49569 49569 49569 39957 3= > 9957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 61) > aref([49569 49569 49569 39957 39957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0= > 0 0 0 0 0 0] 61) This tries to get the 61st element of a vector that has at most 30 or so elements, hence the complaint. But of course, that's hardly enlightening. However, the backtrace shows that this code is inside the function org-clock-sum (in org-clock.el). And if you look at that function, you see (where I have elided large swathes of code): (let* (... (lmax 30) (ltimes (make-vector lmax 0)) ... So ltimes is a vector with *exactly* 30 elements. I would change that 30 to 100 or so (something greater than 61 in any case) and retest. If that fixes it, then we know the culprit and then we can dedice which is the unreasonable one: the code or your subtree :-) Nick > (> (aref ltimes level) 0) > (or (> t1 0) (> (aref ltimes level) 0)) > (if (or (> t1 0) (> (aref ltimes level) 0)) (progn (when (or headline-inc= > luded headline-forced) (if headline-included (loop for l from 0 to level do= > (aset ltimes l (+ (aref ltimes l) t1)))) (setq time (aref ltimes level)) (= > goto-char (match-beginning 0)) (put-text-property (point) (point-at-eol) :o= > rg-clock-minutes time) (if headline-filter (save-excursion (save-match-data= > (while (> ... 1) (outline-up-heading 1 t) (put-text-property ... ... :org-= > clock-force-headline-inclusion t)))))) (setq t1 0) (loop for l from level t= > o (1- lmax) do (aset ltimes l 0)))) > (when (or (> t1 0) (> (aref ltimes level) 0)) (when (or headline-included= > headline-forced) (if headline-included (loop for l from 0 to level do (ase= > t ltimes l (+ (aref ltimes l) t1)))) (setq time (aref ltimes level)) (goto-= > char (match-beginning 0)) (put-text-property (point) (point-at-eol) :org-cl= > ock-minutes time) (if headline-filter (save-excursion (save-match-data (whi= > le (> (funcall outline-level) 1) (outline-up-heading 1 t) (put-text-propert= > y (point) (point-at-eol) :org-clock-force-headline-inclusion t)))))) (setq = > t1 0) (loop for l from level to (1- lmax) do (aset ltimes l 0))) > (let* ((headline-forced (get-text-property (point) :org-clock-force-headl= > ine-inclusion)) (headline-included (or (null headline-filter) (save-excursi= > on (save-match-data (funcall headline-filter)))))) (setq level (- (match-en= > d 1) (match-beginning 1))) (when (or (> t1 0) (> (aref ltimes level) 0)) (w= > hen (or headline-included headline-forced) (if headline-included (loop for = > l from 0 to level do (aset ltimes l (+ (aref ltimes l) t1)))) (setq time (a= > ref ltimes level)) (goto-char (match-beginning 0)) (put-text-property (poin= > t) (point-at-eol) :org-clock-minutes time) (if headline-filter (save-excurs= > ion (save-match-data (while (> ... 1) (outline-up-heading 1 t) (put-text-pr= > operty ... ... :org-clock-force-headline-inclusion t)))))) (setq t1 0) (loo= > p for l from level to (1- lmax) do (aset ltimes l 0)))) > (cond ((match-end 2) (setq ts (match-string 2) te (match-string 3) ts (or= > g-float-time (apply (quote encode-time) (org-parse-time-string ts))) te (or= > g-float-time (apply (quote encode-time) (org-parse-time-string te))) ts (if= > tstart (max ts tstart) ts) te (if tend (min te tend) te) dt (- te ts) t1 (= > if (> dt 0) (+ t1 (floor (/ dt 60))) t1))) ((match-end 4) (setq t1 (+ t1 (s= > tring-to-number (match-string 5)) (* 60 (string-to-number (match-string 4))= > )))) (t (when (and org-clock-report-include-clocking-task (equal (org-clock= > ing-buffer) (current-buffer)) (equal (marker-position org-clock-hd-marker) = > (point)) tstart tend (>=3D (org-float-time org-clock-start-time) tstart) (<= > =3D (org-float-time org-clock-start-time) tend)) (let ((time (floor (- ... = > =2E..) 60))) (setq t1 (+ t1 time)))) (let* ((headline-forced (get-text-prop= > erty (point) :org-clock-force-headline-inclusion)) (headline-included (or (= > null headline-filter) (save-excursion (save-match-data ...))))) (setq level= > (- (match-end 1) (match-beginning 1))) (when (or (> t1 0) (> (aref ltimes = > level) 0)) (when (or headline-included headline-forced) (if headline-includ= > ed (loop for l from 0 to level do (aset ltimes l ...))) (setq time (aref lt= > imes level)) (goto-char (match-beginning 0)) (put-text-property (point) (po= > int-at-eol) :org-clock-minutes time) (if headline-filter (save-excursion (s= > ave-match-data ...)))) (setq t1 0) (loop for l from level to (1- lmax) do (= > aset ltimes l 0)))))) > (while (re-search-backward re nil t) (cond ((match-end 2) (setq ts (match= > -string 2) te (match-string 3) ts (org-float-time (apply (quote encode-time= > ) (org-parse-time-string ts))) te (org-float-time (apply (quote encode-time= > ) (org-parse-time-string te))) ts (if tstart (max ts tstart) ts) te (if ten= > d (min te tend) te) dt (- te ts) t1 (if (> dt 0) (+ t1 (floor (/ dt 60))) t= > 1))) ((match-end 4) (setq t1 (+ t1 (string-to-number (match-string 5)) (* 6= > 0 (string-to-number (match-string 4)))))) (t (when (and org-clock-report-in= > clude-clocking-task (equal (org-clocking-buffer) (current-buffer)) (equal (= > marker-position org-clock-hd-marker) (point)) tstart tend (>=3D (org-float-= > time org-clock-start-time) tstart) (<=3D (org-float-time org-clock-start-ti= > me) tend)) (let ((time (floor ... 60))) (setq t1 (+ t1 time)))) (let* ((hea= > dline-forced (get-text-property (point) :org-clock-force-headline-inclusion= > )) (headline-included (or (null headline-filter) (save-excursion ...)))) (s= > etq level (- (match-end 1) (match-beginning 1))) (when (or (> t1 0) (> (are= > f ltimes level) 0)) (when (or headline-included headline-forced) (if headli= > ne-included (loop for l from 0 to level do ...)) (setq time (aref ltimes le= > vel)) (goto-char (match-beginning 0)) (put-text-property (point) (point-at-= > eol) :org-clock-minutes time) (if headline-filter (save-excursion ...))) (s= > etq t1 0) (loop for l from level to (1- lmax) do (aset ltimes l 0))))))) > (save-excursion (goto-char (point-max)) (while (re-search-backward re nil= > t) (cond ((match-end 2) (setq ts (match-string 2) te (match-string 3) ts (= > org-float-time (apply (quote encode-time) (org-parse-time-string ts))) te (= > org-float-time (apply (quote encode-time) (org-parse-time-string te))) ts (= > if tstart (max ts tstart) ts) te (if tend (min te tend) te) dt (- te ts) t1= > (if (> dt 0) (+ t1 (floor ...)) t1))) ((match-end 4) (setq t1 (+ t1 (strin= > g-to-number (match-string 5)) (* 60 (string-to-number ...))))) (t (when (an= > d org-clock-report-include-clocking-task (equal (org-clocking-buffer) (curr= > ent-buffer)) (equal (marker-position org-clock-hd-marker) (point)) tstart t= > end (>=3D (org-float-time org-clock-start-time) tstart) (<=3D (org-float-ti= > me org-clock-start-time) tend)) (let ((time ...)) (setq t1 (+ t1 time)))) (= > let* ((headline-forced (get-text-property ... :org-clock-force-headline-inc= > lusion)) (headline-included (or ... ...))) (setq level (- (match-end 1) (ma= > tch-beginning 1))) (when (or (> t1 0) (> ... 0)) (when (or headline-include= > d headline-forced) (if headline-included ...) (setq time ...) (goto-char ..= > =2E) (put-text-property ... ... :org-clock-minutes time) (if headline-filte= > r ...)) (setq t1 0) (loop for l from level to (1- lmax) do (aset ltimes l 0= > ))))))) (setq org-clock-file-total-minutes (aref ltimes 0))) > (let* ((bmp (buffer-modified-p)) (re (concat "^\\(\\*+\\)[ ]\\|^[ ]*" o= > rg-clock-string "[ ]*\\(?:\\(\\[.*?\\]\\)-+\\(\\[.*?\\]\\)\\|=3D>[ ]+\\([= > 0-9]+\\):\\([0-9]+\\)\\)")) (lmax 30) (ltimes (make-vector lmax 0)) (t1 0) = > (level 0) ts te dt time) (if (stringp tstart) (setq tstart (org-time-string= > -to-seconds tstart))) (if (stringp tend) (setq tend (org-time-string-to-sec= > onds tend))) (if (consp tstart) (setq tstart (org-float-time tstart))) (if = > (consp tend) (setq tend (org-float-time tend))) (remove-text-properties (po= > int-min) (point-max) (quote (:org-clock-minutes t :org-clock-force-headline= > -inclusion t))) (save-excursion (goto-char (point-max)) (while (re-search-b= > ackward re nil t) (cond ((match-end 2) (setq ts (match-string 2) te (match-= > string 3) ts (org-float-time (apply ... ...)) te (org-float-time (apply ...= > ...)) ts (if tstart (max ts tstart) ts) te (if tend (min te tend) te) dt (= > - te ts) t1 (if (> dt 0) (+ t1 ...) t1))) ((match-end 4) (setq t1 (+ t1 (st= > ring-to-number ...) (* 60 ...)))) (t (when (and org-clock-report-include-cl= > ocking-task (equal ... ...) (equal ... ...) tstart tend (>=3D ... tstart) (= > <=3D ... tend)) (let (...) (setq t1 ...))) (let* ((headline-forced ...) (he= > adline-included ...)) (setq level (- ... ...)) (when (or ... ...) (when ...= > ... ... ... ... ...) (setq t1 0) (loop for l from level to ... do ...)))))= > ) (setq org-clock-file-total-minutes (aref ltimes 0))) (set-buffer-modified= > -p bmp)) > org-clock-sum() > (let (time h m p) (org-clock-sum) (unless total-only (save-excursion (got= > o-char (point-min)) (while (or (and (equal (setq p ...) (point-min)) (get-t= > ext-property p :org-clock-minutes)) (setq p (next-single-property-change (p= > oint) :org-clock-minutes))) (goto-char p) (when (setq time (get-text-proper= > ty p :org-clock-minutes)) (org-clock-put-overlay time (funcall outline-leve= > l)))) (setq h (/ org-clock-file-total-minutes 60) m (- org-clock-file-total= > -minutes (* 60 h))) (when org-remove-highlights-with-change (org-add-hook (= > quote before-change-functions) (quote org-clock-remove-overlays) nil (quote= > local))))) (if org-time-clocksum-use-fractional (message (concat "Total fi= > le time: " org-time-clocksum-fractional-format " (%d hours and %d minutes)"= > ) (/ (+ (* h 60.0) m) 60.0) h m) (message (concat "Total file time: " org-t= > ime-clocksum-format " (%d hours and %d minutes)") h m h m))) > org-clock-display() > call-interactively(org-clock-display t nil) > execute-extended-command(nil) > call-interactively(execute-extended-command nil nil) > > > > Any further ideas what to try next? > > Ciao, Gregor > --=20 > -... --- .-. . -.. ..--.. ...-.- > ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" 2012-01-12 22:12 ` How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" Nick Dokos @ 2012-01-12 22:56 ` Nick Dokos 2012-01-14 16:16 ` [BUG] org-clock-sum cannot handle headings with more than 29 stars (was: Re: How to debug "org-clock-display: Args out of range: [48230 48230) " Gregor Zattler 2012-01-15 15:33 ` How to debug "org-clock-display: Args out of range: [48230 48230 " Stefan Nobis 0 siblings, 2 replies; 56+ messages in thread From: Nick Dokos @ 2012-01-12 22:56 UTC (permalink / raw) Cc: nicholas.dokos, emacs-orgmode Nick Dokos <nicholas.dokos@hp.com> wrote: > Gregor Zattler <telegraph@gmx.net> wrote: > > > > Debugger entered--Lisp error: (args-out-of-range [49569 49569 49569 39957 3= > > 9957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 61) > > aref([49569 49569 49569 39957 39957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0= > > 0 0 0 0 0 0] 61) > > This tries to get the 61st element of a vector that has at most 30 or so > elements, hence the complaint. But of course, that's hardly > enlightening. However, the backtrace shows that this code is inside the > function org-clock-sum (in org-clock.el). And if you look at that > function, you see (where I have elided large swathes of code): > > (let* (... > (lmax 30) > (ltimes (make-vector lmax 0)) > ... > > So ltimes is a vector with *exactly* 30 elements. I would change that 30 > to 100 or so (something greater than 61 in any case) and retest. If that > fixes it, then we know the culprit and then we can dedice which is the > unreasonable one: the code or your subtree :-) > Or maybe that 61 is way off base. After all, there are only 5 non-trivial entries in the vector. The code that sets the level seems suspect to me: (let* ((headline-forced (get-text-property (point) :org-clock-force-headline-inclusion)) (headline-included (or (null headline-filter) (save-excursion (save-match-data (funcall headline-filter)))))) (setq level (- (match-end 1) (match-beginning 1))) What do match-beginning/match-end return if headline-filter is nil? The save-match-data is not done, so we get the results of whatever random search was done last before this code executed. Nick ^ permalink raw reply [flat|nested] 56+ messages in thread
* [BUG] org-clock-sum cannot handle headings with more than 29 stars (was: Re: How to debug "org-clock-display: Args out of range: [48230 48230) 48230 38618 38618 0 0 0 0 0 ...], 61" 2012-01-12 22:56 ` Nick Dokos @ 2012-01-14 16:16 ` Gregor Zattler 2012-01-15 15:33 ` How to debug "org-clock-display: Args out of range: [48230 48230 " Stefan Nobis 1 sibling, 0 replies; 56+ messages in thread From: Gregor Zattler @ 2012-01-14 16:16 UTC (permalink / raw) To: emacs-orgmode Hi Nick, org developers, while preparing a "minimal" example of my problem I finally realised that "61" was the deepest level of indentation of some inline tasks in my org file. When I wrote them I only remembered inline tasks as with more than x stars and so I provided more than enough :-) But this also applies to normal headings. My Minimal org file to demonstrate the bug is now: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> * dog ** dog *** dog **** dog ***** dog ****** dog ******* dog ******** dog ********* dog ********** dog *********** dog ************ dog ************* dog ************** dog *************** dog **************** dog ***************** dog ****************** dog ******************* dog ******************** dog ********************* dog ********************** dog *********************** dog ************************ dog ************************* dog ************************** dog *************************** dog **************************** dog ***************************** dog ****************************** ant <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< doing M-x org-clock-display (which in turn execs org-clock-sum) will fail. It will not fail, with the last line removed. I searched a bit in the sources (max.*level") but did not find documentation regarding the maximum number of stars in org files. Perhaps it has to be documented or "lmax" raised in the sources. Thanks for your help though, I first changed lmax as you proposed and it fixed the problem. Ciao; gregor * Nick Dokos <nicholas.dokos@hp.com> [12. Jan. 2012]: > Nick Dokos <nicholas.dokos@hp.com> wrote: >> Gregor Zattler <telegraph@gmx.net> wrote: >>> Debugger entered--Lisp error: (args-out-of-range [49569 49569 49569 39957 3= >>> 9957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 61) >>> aref([49569 49569 49569 39957 39957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0= >>> 0 0 0 0 0 0] 61) >> >> This tries to get the 61st element of a vector that has at most 30 or so >> elements, hence the complaint. But of course, that's hardly >> enlightening. However, the backtrace shows that this code is inside the >> function org-clock-sum (in org-clock.el). And if you look at that >> function, you see (where I have elided large swathes of code): >> >> (let* (... >> (lmax 30) >> (ltimes (make-vector lmax 0)) >> ... >> >> So ltimes is a vector with *exactly* 30 elements. I would change that 30 >> to 100 or so (something greater than 61 in any case) and retest. If that >> fixes it, then we know the culprit and then we can dedice which is the >> unreasonable one: the code or your subtree :-) > Or maybe that 61 is way off base. After all, there are only 5 non-trivial > entries in the vector. > > The code that sets the level seems suspect to me: > > (let* ((headline-forced > (get-text-property (point) > :org-clock-force-headline-inclusion)) > (headline-included > (or (null headline-filter) > (save-excursion > (save-match-data (funcall headline-filter)))))) > (setq level (- (match-end 1) (match-beginning 1))) > > What do match-beginning/match-end return if headline-filter is nil? > The save-match-data is not done, so we get the results of whatever > random search was done last before this code executed. ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" 2012-01-12 22:56 ` Nick Dokos 2012-01-14 16:16 ` [BUG] org-clock-sum cannot handle headings with more than 29 stars (was: Re: How to debug "org-clock-display: Args out of range: [48230 48230) " Gregor Zattler @ 2012-01-15 15:33 ` Stefan Nobis 1 sibling, 0 replies; 56+ messages in thread From: Stefan Nobis @ 2012-01-15 15:33 UTC (permalink / raw) To: nicholas.dokos; +Cc: emacs-orgmode Nick Dokos <nicholas.dokos@hp.com> writes: > The code that sets the level seems suspect to me: > (let* ((headline-forced > (get-text-property (point) > :org-clock-force-headline-inclusion)) > (headline-included > (or (null headline-filter) > (save-excursion > (save-match-data (funcall headline-filter)))))) > (setq level (- (match-end 1) (match-beginning 1))) > What do match-beginning/match-end return if headline-filter is nil? > The save-match-data is not done, so we get the results of whatever > random search was done last before this code executed. Hmmm... the above snippet is from org-clock-sum, right? That means it is part of (while (re-search-backward re nil t) ...) and that's the search match-beginning/match-end are referring to. -- Until the next mail..., Stefan. ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [BUG] org-clock-sum cannot handle headings with more than 29 stars (was: Re: How to debug "org-clock-display: Args out of range: [48230 48230) 48230 38618 38618 0 0 0 0 0 ...], 61" [not found] ` <telegraph@gmx.net> 2011-11-13 4:13 ` Nick Dokos 2012-01-12 22:12 ` How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" Nick Dokos @ 2012-01-14 18:49 ` Nick Dokos 2012-01-22 12:50 ` [BUG][PATCH] document number of stars limitation with respect to org-clock-sum (was: Re: org-clock-sum cannot handle headings with more than 29 stars) Gregor Zattler 2012-10-14 5:31 ` Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] Nick Dokos ` (2 subsequent siblings) 5 siblings, 1 reply; 56+ messages in thread From: Nick Dokos @ 2012-01-14 18:49 UTC (permalink / raw) To: emacs-orgmode; +Cc: nicholas.dokos Gregor Zattler <telegraph@gmx.net> wrote: > Hi Nick, org developers, > > while preparing a "minimal" example of my problem I finally > realised that "61" was the deepest level of indentation of some > inline tasks in my org file. When I wrote them I only remembered > inline tasks as with more than x stars and so I provided more > than enough :-) > > But this also applies to normal headings. My Minimal org file to > demonstrate the bug is now: > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > * dog > ** dog > *** dog > **** dog > ***** dog > ****** dog > ******* dog > ******** dog > ********* dog > ********** dog > *********** dog > ************ dog > ************* dog > ************** dog > *************** dog > **************** dog > ***************** dog > ****************** dog > ******************* dog > ******************** dog > ********************* dog > ********************** dog > *********************** dog > ************************ dog > ************************* dog > ************************** dog > *************************** dog > **************************** dog > ***************************** dog > ****************************** ant > <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< > > doing M-x org-clock-display (which in turn execs org-clock-sum) > will fail. It will not fail, with the last line removed. > > I searched a bit in the sources (max.*level") but did not find > documentation regarding the maximum number of stars in org > files. Perhaps it has to be documented or "lmax" raised in the sources. > > Thanks for your help though, I first changed lmax as you proposed > and it fixed the problem. > > Ciao; gregor > > * Nick Dokos <nicholas.dokos@hp.com> [12. Jan. 2012]: > > Nick Dokos <nicholas.dokos@hp.com> wrote: > >> Gregor Zattler <telegraph@gmx.net> wrote: > >>> Debugger entered--Lisp error: (args-out-of-range [49569 49569 49569 39957 3= > >>> 9957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 61) > >>> aref([49569 49569 49569 39957 39957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0= > >>> 0 0 0 0 0 0] 61) > >> > >> This tries to get the 61st element of a vector that has at most 30 or so > >> elements, hence the complaint. But of course, that's hardly > >> enlightening. However, the backtrace shows that this code is inside the > >> function org-clock-sum (in org-clock.el). And if you look at that > >> function, you see (where I have elided large swathes of code): > >> > >> (let* (... > >> (lmax 30) > >> (ltimes (make-vector lmax 0)) > >> ... > >> > >> So ltimes is a vector with *exactly* 30 elements. I would change that 30 > >> to 100 or so (something greater than 61 in any case) and retest. If that > >> fixes it, then we know the culprit and then we can dedice which is the > >> unreasonable one: the code or your subtree :-) > > Or maybe that 61 is way off base. After all, there are only 5 non-trivial > > entries in the vector. > > > > The code that sets the level seems suspect to me: > > > > (let* ((headline-forced > > (get-text-property (point) > > :org-clock-force-headline-inclusion)) > > (headline-included > > (or (null headline-filter) > > (save-excursion > > (save-match-data (funcall headline-filter)))))) > > (setq level (- (match-end 1) (match-beginning 1))) > > > > What do match-beginning/match-end return if headline-filter is nil? > > The save-match-data is not done, so we get the results of whatever > > random search was done last before this code executed. > > So I guess that despite my suspicions this code works (although I need to understand how). As for the failure, your example is of course highly unlikely in the above form[fn:1], but much more likely in the inline task case that bit you originally. But since expanding the vector to 100 elements or so fixes the problem and seems to be both cheap and expedient, I'd vote for that fix to go in and be done with it (perhaps with a footnote in the clock section of the manual to identify the limit). Nick Footnotes: [fn:1] I doubt anybody uses > 30-level deep trees, although I would not be surprised to hear otherwise :-) ^ permalink raw reply [flat|nested] 56+ messages in thread
* [BUG][PATCH] document number of stars limitation with respect to org-clock-sum (was: Re: org-clock-sum cannot handle headings with more than 29 stars) 2012-01-14 18:49 ` [BUG] org-clock-sum cannot handle headings with more than 29 stars (was: Re: How to debug "org-clock-display: Args out of range: [48230 48230) " Nick Dokos @ 2012-01-22 12:50 ` Gregor Zattler 2012-01-22 13:15 ` [PATCH 2/3] Document max number of stars in headings in manual Gregor Zattler ` (3 more replies) 0 siblings, 4 replies; 56+ messages in thread From: Gregor Zattler @ 2012-01-22 12:50 UTC (permalink / raw) To: emacs-orgmode Hi Nick, org developers, * Nick Dokos <nicholas.dokos@hp.com> [14. Jan. 2012]: > Gregor Zattler <telegraph@gmx.net> wrote: >> while preparing a "minimal" example of my problem I finally >> realised that "61" was the deepest level of indentation of some >> inline tasks in my org file. When I wrote them I only remembered >> inline tasks as with more than x stars and so I provided more >> than enough :-) >> >> But this also applies to normal headings. My Minimal org file to >> demonstrate the bug is now: >> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >> * dog >> ** dog >> *** dog >> **** dog >> ***** dog >> ****** dog >> ******* dog >> ******** dog >> ********* dog >> ********** dog >> *********** dog >> ************ dog >> ************* dog >> ************** dog >> *************** dog >> **************** dog >> ***************** dog >> ****************** dog >> ******************* dog >> ******************** dog >> ********************* dog >> ********************** dog >> *********************** dog >> ************************ dog >> ************************* dog >> ************************** dog >> *************************** dog >> **************************** dog >> ***************************** dog >> ****************************** ant >> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >> >> doing M-x org-clock-display (which in turn execs org-clock-sum) >> will fail. It will not fail, with the last line removed. >> >> I searched a bit in the sources (max.*level") but did not find >> documentation regarding the maximum number of stars in org >> files. Perhaps it has to be documented or "lmax" raised in the sources. >> >> Thanks for your help though, I first changed lmax as you proposed >> and it fixed the problem. >> * Nick Dokos <nicholas.dokos@hp.com> [12. Jan. 2012]: >>> Nick Dokos <nicholas.dokos@hp.com> wrote: >>>> Gregor Zattler <telegraph@gmx.net> wrote: >>>>> Debugger entered--Lisp error: (args-out-of-range [49569 49569 49569 39957 3= >>>>> 9957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 61) >>>>> aref([49569 49569 49569 39957 39957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0= >>>>> 0 0 0 0 0 0] 61) >>>> >>>> This tries to get the 61st element of a vector that has at most 30 or so >>>> elements, hence the complaint. But of course, that's hardly >>>> enlightening. However, the backtrace shows that this code is inside the >>>> function org-clock-sum (in org-clock.el). And if you look at that >>>> function, you see (where I have elided large swathes of code): >>>> >>>> (let* (... >>>> (lmax 30) >>>> (ltimes (make-vector lmax 0)) >>>> ... >>>> >>>> So ltimes is a vector with *exactly* 30 elements. I would change that 30 >>>> to 100 or so (something greater than 61 in any case) and retest. If that >>>> fixes it, then we know the culprit and then we can dedice which is the >>>> unreasonable one: the code or your subtree :-) >>> Or maybe that 61 is way off base. After all, there are only 5 non-trivial >>> entries in the vector. >>> >>> The code that sets the level seems suspect to me: >>> >>> (let* ((headline-forced >>> (get-text-property (point) >>> :org-clock-force-headline-inclusion)) >>> (headline-included >>> (or (null headline-filter) >>> (save-excursion >>> (save-match-data (funcall headline-filter)))))) >>> (setq level (- (match-end 1) (match-beginning 1))) >>> >>> What do match-beginning/match-end return if headline-filter is nil? >>> The save-match-data is not done, so we get the results of whatever >>> random search was done last before this code executed. >> >> > > So I guess that despite my suspicions this code works (although I need > to understand how). As for the failure, your example is of course > highly unlikely in the above form[fn:1], but much more likely in the > inline task case that bit you originally. But since expanding the vector > to 100 elements or so fixes the problem and seems to be both cheap and > expedient, I'd vote for that fix to go in and be done with it (perhaps > with a footnote in the clock section of the manual to identify the > limit). Since I don't know if the hardcoded lmax value `30' serves other purposes too I don't change it but document the fact in org-inlinetask.el and the manual. Ciao, Gregor ^ permalink raw reply [flat|nested] 56+ messages in thread
* [PATCH 2/3] Document max number of stars in headings in manual 2012-01-22 12:50 ` [BUG][PATCH] document number of stars limitation with respect to org-clock-sum (was: Re: org-clock-sum cannot handle headings with more than 29 stars) Gregor Zattler @ 2012-01-22 13:15 ` Gregor Zattler 2012-01-24 16:10 ` [Accepted] [O, " Bastien Guerry 2012-01-22 13:15 ` [PATCH 1/3] Document max number of stars in headings in docstring of org-inlinetask-minlevel Gregor Zattler ` (2 subsequent siblings) 3 siblings, 1 reply; 56+ messages in thread From: Gregor Zattler @ 2012-01-22 13:15 UTC (permalink / raw) To: emacs-orgmode Clocking only works with headings indented with less than `30' stars (hardcoded `lmax' value in `org-clock-sum'). --- doc/org.texi | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/doc/org.texi b/doc/org.texi index b238210..9e873ea 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -1164,7 +1164,8 @@ Headlines define the structure of an outline tree. The headlines in Org start with one or more stars, on the left margin@footnote{See the variables @code{org-special-ctrl-a/e}, @code{org-special-ctrl-k}, and @code{org-ctrl-k-protect-subtree} to configure special behavior of @kbd{C-a}, -@kbd{C-e}, and @kbd{C-k} in headlines.}. For example: +@kbd{C-e}, and @kbd{C-k} in headlines.} @footnote{Clocking only works with +headings indented less then 30 stars.}. For example: @example * Top level headline -- 1.7.8.3 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [Accepted] [O, 2/3] Document max number of stars in headings in manual 2012-01-22 13:15 ` [PATCH 2/3] Document max number of stars in headings in manual Gregor Zattler @ 2012-01-24 16:10 ` Bastien Guerry 0 siblings, 0 replies; 56+ messages in thread From: Bastien Guerry @ 2012-01-24 16:10 UTC (permalink / raw) To: emacs-orgmode Patch 1123 (http://patchwork.newartisans.com/patch/1123/) is now "Accepted". Maintainer comment: none This relates to the following submission: http://mid.gmane.org/%3C20120122131506.GB21012%40shi.workgroup%3E Here is the original message containing the patch: > Content-Type: text/plain; charset="utf-8" > MIME-Version: 1.0 > Content-Transfer-Encoding: 7bit > Subject: [O,2/3] Document max number of stars in headings in manual > Date: Sun, 22 Jan 2012 18:15:06 -0000 > From: Gregor Zattler <telegraph@gmx.net> > X-Patchwork-Id: 1123 > Message-Id: <20120122131506.GB21012@shi.workgroup> > To: emacs-orgmode <emacs-orgmode@gnu.org> > > Clocking only works with headings indented with less than `30' stars > (hardcoded `lmax' value in `org-clock-sum'). > > --- > doc/org.texi | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/doc/org.texi b/doc/org.texi > index b238210..9e873ea 100644 > --- a/doc/org.texi > +++ b/doc/org.texi > @@ -1164,7 +1164,8 @@ Headlines define the structure of an outline tree. The headlines in Org > start with one or more stars, on the left margin@footnote{See the variables > @code{org-special-ctrl-a/e}, @code{org-special-ctrl-k}, and > @code{org-ctrl-k-protect-subtree} to configure special behavior of @kbd{C-a}, > -@kbd{C-e}, and @kbd{C-k} in headlines.}. For example: > +@kbd{C-e}, and @kbd{C-k} in headlines.} @footnote{Clocking only works with > +headings indented less then 30 stars.}. For example: > > @example > * Top level headline > ^ permalink raw reply [flat|nested] 56+ messages in thread
* [PATCH 1/3] Document max number of stars in headings in docstring of org-inlinetask-minlevel 2012-01-22 12:50 ` [BUG][PATCH] document number of stars limitation with respect to org-clock-sum (was: Re: org-clock-sum cannot handle headings with more than 29 stars) Gregor Zattler 2012-01-22 13:15 ` [PATCH 2/3] Document max number of stars in headings in manual Gregor Zattler @ 2012-01-22 13:15 ` Gregor Zattler 2012-01-24 16:10 ` [Accepted] [O, " Bastien Guerry 2012-01-22 13:30 ` [PATCH 3/3] Document max number of stars in clocking section Gregor Zattler 2012-01-24 16:16 ` [BUG][PATCH] document number of stars limitation with respect to org-clock-sum Bastien 3 siblings, 1 reply; 56+ messages in thread From: Gregor Zattler @ 2012-01-22 13:15 UTC (permalink / raw) To: emacs-orgmode Clocking only works with headings indented with less than `30' stars (hardcoded `lmax' value in `org-clock-sum'). Since especially inline tasks may dupe someone into using more stars, document the limit in the docsring of `org-inlinetask-min-level'. --- lisp/org-inlinetask.el | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/lisp/org-inlinetask.el b/lisp/org-inlinetask.el index a14e404..b8e8437 100644 --- a/lisp/org-inlinetask.el +++ b/lisp/org-inlinetask.el @@ -90,6 +90,9 @@ (defcustom org-inlinetask-min-level 15 "Minimum level a headline must have before it is treated as an inline task. +Don't set it to something higher than `29' or clocking will break since this +is the hardcoded maximum number of stars `org-clock-sum' will work with. + It is strongly recommended that you set `org-cycle-max-level' not at all, or to a number smaller than this one. In fact, when `org-cycle-max-level' is not set, it will be assumed to be one less than the value of smaller than -- 1.7.8.3 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [Accepted] [O, 1/3] Document max number of stars in headings in docstring of org-inlinetask-minlevel 2012-01-22 13:15 ` [PATCH 1/3] Document max number of stars in headings in docstring of org-inlinetask-minlevel Gregor Zattler @ 2012-01-24 16:10 ` Bastien Guerry 0 siblings, 0 replies; 56+ messages in thread From: Bastien Guerry @ 2012-01-24 16:10 UTC (permalink / raw) To: emacs-orgmode Patch 1124 (http://patchwork.newartisans.com/patch/1124/) is now "Accepted". Maintainer comment: none This relates to the following submission: http://mid.gmane.org/%3C20120122131516.GC21012%40shi.workgroup%3E Here is the original message containing the patch: > Content-Type: text/plain; charset="utf-8" > MIME-Version: 1.0 > Content-Transfer-Encoding: 7bit > Subject: [O, 1/3] Document max number of stars in headings in docstring of > org-inlinetask-minlevel > Date: Sun, 22 Jan 2012 18:15:16 -0000 > From: Gregor Zattler <telegraph@gmx.net> > X-Patchwork-Id: 1124 > Message-Id: <20120122131516.GC21012@shi.workgroup> > To: emacs-orgmode <emacs-orgmode@gnu.org> > > Clocking only works with headings indented with less than `30' stars > (hardcoded `lmax' value in `org-clock-sum'). Since especially inline > tasks may dupe someone into using more stars, document the limit in > the docsring of `org-inlinetask-min-level'. > > --- > lisp/org-inlinetask.el | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/lisp/org-inlinetask.el b/lisp/org-inlinetask.el > index a14e404..b8e8437 100644 > --- a/lisp/org-inlinetask.el > +++ b/lisp/org-inlinetask.el > @@ -90,6 +90,9 @@ > > (defcustom org-inlinetask-min-level 15 > "Minimum level a headline must have before it is treated as an inline task. > +Don't set it to something higher than `29' or clocking will break since this > +is the hardcoded maximum number of stars `org-clock-sum' will work with. > + > It is strongly recommended that you set `org-cycle-max-level' not at all, > or to a number smaller than this one. In fact, when `org-cycle-max-level' is > not set, it will be assumed to be one less than the value of smaller than > ^ permalink raw reply [flat|nested] 56+ messages in thread
* [PATCH 3/3] Document max number of stars in clocking section 2012-01-22 12:50 ` [BUG][PATCH] document number of stars limitation with respect to org-clock-sum (was: Re: org-clock-sum cannot handle headings with more than 29 stars) Gregor Zattler 2012-01-22 13:15 ` [PATCH 2/3] Document max number of stars in headings in manual Gregor Zattler 2012-01-22 13:15 ` [PATCH 1/3] Document max number of stars in headings in docstring of org-inlinetask-minlevel Gregor Zattler @ 2012-01-22 13:30 ` Gregor Zattler 2012-01-24 16:11 ` [Accepted] [O, " Bastien Guerry 2012-01-24 16:16 ` [BUG][PATCH] document number of stars limitation with respect to org-clock-sum Bastien 3 siblings, 1 reply; 56+ messages in thread From: Gregor Zattler @ 2012-01-22 13:30 UTC (permalink / raw) To: emacs-orgmode Clocking only works with all headings indented with less than `30' stars (hardcoded `lmax' value in `org-clock-sum'). --- doc/org.texi | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/doc/org.texi b/doc/org.texi index 9e873ea..46aa1e2 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -5917,12 +5917,14 @@ created for this purpose, it is described in @ref{Structure editing}. @cindex time clocking Org mode allows you to clock the time you spend on specific tasks in a -project. When you start working on an item, you can start the clock. -When you stop working on that task, or when you mark the task done, the -clock is stopped and the corresponding time interval is recorded. It -also computes the total time spent on each subtree of a project. And it -remembers a history or tasks recently clocked, to that you can jump quickly -between a number of tasks absorbing your time. +project. When you start working on an item, you can start the clock. When +you stop working on that task, or when you mark the task done, the clock is +stopped and the corresponding time interval is recorded. It also computes +the total time spent on each subtree@footnote{Clocking only works if all +headings are indented with less than 30 stars. This is a hardcoded +limitation of `lmax' in `org-clock-sum'.} of a project. And it remembers a +history or tasks recently clocked, to that you can jump quickly between a +number of tasks absorbing your time. To save the clock history across Emacs sessions, use @lisp -- 1.7.8.3 ^ permalink raw reply related [flat|nested] 56+ messages in thread
* [Accepted] [O, 3/3] Document max number of stars in clocking section 2012-01-22 13:30 ` [PATCH 3/3] Document max number of stars in clocking section Gregor Zattler @ 2012-01-24 16:11 ` Bastien Guerry 0 siblings, 0 replies; 56+ messages in thread From: Bastien Guerry @ 2012-01-24 16:11 UTC (permalink / raw) To: emacs-orgmode Patch 1125 (http://patchwork.newartisans.com/patch/1125/) is now "Accepted". Maintainer comment: none This relates to the following submission: http://mid.gmane.org/%3C20120122133050.GD21012%40shi.workgroup%3E Here is the original message containing the patch: > Content-Type: text/plain; charset="utf-8" > MIME-Version: 1.0 > Content-Transfer-Encoding: 7bit > Subject: [O,3/3] Document max number of stars in clocking section > Date: Sun, 22 Jan 2012 18:30:50 -0000 > From: Gregor Zattler <telegraph@gmx.net> > X-Patchwork-Id: 1125 > Message-Id: <20120122133050.GD21012@shi.workgroup> > To: emacs-orgmode <emacs-orgmode@gnu.org> > > Clocking only works with all headings indented with less than `30' > stars (hardcoded `lmax' value in `org-clock-sum'). > > --- > doc/org.texi | 14 ++++++++------ > 1 files changed, 8 insertions(+), 6 deletions(-) > > diff --git a/doc/org.texi b/doc/org.texi > index 9e873ea..46aa1e2 100644 > --- a/doc/org.texi > +++ b/doc/org.texi > @@ -5917,12 +5917,14 @@ created for this purpose, it is described in @ref{Structure editing}. > @cindex time clocking > > Org mode allows you to clock the time you spend on specific tasks in a > -project. When you start working on an item, you can start the clock. > -When you stop working on that task, or when you mark the task done, the > -clock is stopped and the corresponding time interval is recorded. It > -also computes the total time spent on each subtree of a project. And it > -remembers a history or tasks recently clocked, to that you can jump quickly > -between a number of tasks absorbing your time. > +project. When you start working on an item, you can start the clock. When > +you stop working on that task, or when you mark the task done, the clock is > +stopped and the corresponding time interval is recorded. It also computes > +the total time spent on each subtree@footnote{Clocking only works if all > +headings are indented with less than 30 stars. This is a hardcoded > +limitation of `lmax' in `org-clock-sum'.} of a project. And it remembers a > +history or tasks recently clocked, to that you can jump quickly between a > +number of tasks absorbing your time. > > To save the clock history across Emacs sessions, use > @lisp > ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: [BUG][PATCH] document number of stars limitation with respect to org-clock-sum 2012-01-22 12:50 ` [BUG][PATCH] document number of stars limitation with respect to org-clock-sum (was: Re: org-clock-sum cannot handle headings with more than 29 stars) Gregor Zattler ` (2 preceding siblings ...) 2012-01-22 13:30 ` [PATCH 3/3] Document max number of stars in clocking section Gregor Zattler @ 2012-01-24 16:16 ` Bastien 3 siblings, 0 replies; 56+ messages in thread From: Bastien @ 2012-01-24 16:16 UTC (permalink / raw) To: emacs-orgmode Hi Gregor, Gregor Zattler <telegraph@gmx.net> writes: > Since I don't know if the hardcoded lmax value `30' serves other > purposes too I don't change it but document the fact in > org-inlinetask.el and the manual. Applied, thanks. -- Bastien ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] [not found] ` <telegraph@gmx.net> ` (2 preceding siblings ...) 2012-01-14 18:49 ` [BUG] org-clock-sum cannot handle headings with more than 29 stars (was: Re: How to debug "org-clock-display: Args out of range: [48230 48230) " Nick Dokos @ 2012-10-14 5:31 ` Nick Dokos 2013-01-24 18:10 ` How to track down "No heading for this item in buffer or region."? Nick Dokos 2013-01-24 18:31 ` Nick Dokos 5 siblings, 0 replies; 56+ messages in thread From: Nick Dokos @ 2012-10-14 5:31 UTC (permalink / raw) To: emacs-orgmode Gregor Zattler <telegraph@gmx.net> wrote: > Hi Nicolas, org-mode users and developers, > * Nicolas Goaziou <n.goaziou@gmail.com> [13. Oct. 2012]: > > Gregor Zattler <telegraph@gmx.net> writes: > > > >> Back to square one: Does anybody know How to customise > >> Emacs/org-mode so that dotted European dates are parsed correctly > >> at the date/time prompt? > > > > Again, dotted European dates are parsed correctly without customization. > > Would you provide a time string that isn't? > > "Naked" dotted european dates without surrounding text are > parsed correctly by org-read-date. > > But with date/time prompt I mean the prompt which asks me for a > date/time when invoking org-time-stamp. Here I'm allowed to > insert Dates like "the event takes place at 27.10. at 14:00 in > the pub". Org-mode is supposed to parse these, see > [[info:org#The%20date/time%20prompt][info:org#The date/time prompt]]. > > If I now yank "Kommt am 27.10.2012 um 14:00 zum" in this > date/time prompt, the result is "<2010-10-27 Mi 14:00>" instead > of "<2012-10-27 Sa 14:00>". ^ ^^ > ^ ^^ > org-read-date calls org-read-date-analyze which does not recognize this as any kind of time string format it knows about (all the regexps it tries fail to match), so it calls parse-time-string. Lo and behold, (parse-time-string "Kommt am 27.10.2012 um 14:00 zum") returns (0 0 14 27 nil 2010 nil nil nil) > > I had a look at org-time-stamp which is invoked by "C-c ." I do > not understand how this function parses dates/times from text. > Therefore I looked for functions with appropriate names which are > called by org-time-stamp. The only one I could find is > org-read-date. It obviously parses dates from a string and > identifies parts (day, month, year). I thought org-read-date > does the heavy lifting with respect to date parsing. But now I > think you are right and org-read-dates parses "naked dates". But > where does the parsing of texts which contain dates take place? > org-read-date does fine with "Kommt am 2012-10-27 um 14:00 zum", because parse-time-string can figure out the iso date, even though it cannot figure out the dotted european one: (parse-time-string "Kommt am 2012-10-27 um 14:00 zum") returns (0 0 14 27 10 2012 nil nil nil) Nick ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? [not found] ` <telegraph@gmx.net> ` (3 preceding siblings ...) 2012-10-14 5:31 ` Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] Nick Dokos @ 2013-01-24 18:10 ` Nick Dokos 2013-01-24 18:31 ` Nick Dokos 5 siblings, 0 replies; 56+ messages in thread From: Nick Dokos @ 2013-01-24 18:10 UTC (permalink / raw) To: emacs-orgmode Gregor Zattler <telegraph@gmx.net> wrote: > When I move the cursor over this lines a message appears in the > echo area: > > byte-code: Before first headline at position 64 in buffer org.org [14 times] > > The second line of org.org begins at character 64 in the buffer. > It's a timestamp: > > #Time-stamp: <2013-01-24 16:30:39 grfz> > > Till recently this was no problem since it is a comment line. > Obviously org-mode somehow interprets this timestamp, since the > messages disappeared after I changed the time stamp delimiter from > `<' and `>' respectively to `"'. I consider this to be a bug > since these time stamps are a standard Emacs feature and this > line is a comment org-mode-wise. > > It works fine on the slightly old Org-mode version 7.9.3d (release_7.9.3d-826-gbe0d87.dirty @ /home/nick/elisp/org-mode/lisp/) with the following file as the only agenda file: --8<---------------cut here---------------start------------->8--- # timestamp: <2013-01-24 Thu> * TODO foo SCHEDULED: <2013-01-24 Thu> --8<---------------cut here---------------end--------------->8--- If I get rid of the # or add something else before it, I get the message you mention, but otherwise it is silent. Assuming you are running a more recent version than the one above, the bug may be because of a recent change to org-agenda-skip: it used to check explicitly for # and skip the entry, but commit 211b137ef46d04b17b46f256696eb5c1c3a1d2be changed it to check a text property. I guess the text property is not present or it is not checked correctly. Nick ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? [not found] ` <telegraph@gmx.net> ` (4 preceding siblings ...) 2013-01-24 18:10 ` How to track down "No heading for this item in buffer or region."? Nick Dokos @ 2013-01-24 18:31 ` Nick Dokos 5 siblings, 0 replies; 56+ messages in thread From: Nick Dokos @ 2013-01-24 18:31 UTC (permalink / raw) To: emacs-orgmode Gregor Zattler <telegraph@gmx.net> wrote: > When I move the cursor over this lines a message appears in the > echo area: > > byte-code: Before first headline at position 64 in buffer org.org [14 times] > > The second line of org.org begins at character 64 in the buffer. > It's a timestamp: > > #Time-stamp: <2013-01-24 16:30:39 grfz> > > Till recently this was no problem since it is a comment line. > Obviously org-mode somehow interprets this timestamp, since the > messages disappeared after I changed the time stamp delimiter from > `<' and `>' respectively to `"'. I consider this to be a bug > since these time stamps are a standard Emacs feature and this > line is a comment org-mode-wise. > > I am puzzled. The bug is almost certainly related to commit 211b137ef46d04b17b46f256696eb5c1c3a1d2be which changed org-agenda-skip to check text properties rather than # explicitly. I can attest that the bug does not show with a version earlier than that commit. OTOH, it does not show *consistently* with the most recent version. In a minimal test, I have the following file as the only file in the agenda list: --8<---------------cut here---------------start------------->8--- # timestamp: <2013-01-24 Thu> * TODO foo SCHEDULED: <2013-01-24 Thu> --8<---------------cut here---------------end--------------->8--- and when I construct the agenda, I get the no-heading message; but if I visit the file, and M-x describe-text-properties RET on the # in the first line, it correctly says that the face is font-lock-comment-face; constructing the agenda after that does *not* produce the message. Are text properties assigned lazily perhaps? If so, they will need to be somehow forced in this case. Nick PS. BTW, can you reproduce this behavior or am I tilting at windmills? ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Getting rid of split frame with org-capture 2011-11-10 19:08 Getting rid of split frame with org-capture Thomas Lockney 2011-11-12 15:57 ` Gregor Zattler @ 2011-11-13 20:41 ` Nick Dokos 1 sibling, 0 replies; 56+ messages in thread From: Nick Dokos @ 2011-11-13 20:41 UTC (permalink / raw) To: Thomas Lockney; +Cc: nicholas.dokos, emacs-orgmode Thomas Lockney <thomas@lockney.net> wrote: > I'm attempting to get some code working that should create a new frame > with *just* org-capture, but when I run it, I keep getting a split > despite various attempts at running delete-other-windows. I'm running > on "GNU Emacs 24.0.90.1 (i386-apple-darwin10.8.0, NS > apple-appkit-1038.36)" so perhaps this is a 24 specific issue. Here's > the code I've currently got: > > (defadvice org-capture-finalize (after delete-capture-frame activate) > "Advise capture-finalize to close the frame if it is the capture frame" > (if (equal "capture" (frame-parameter nil 'name)) > (delete-frame))) > > (defadvice org-capture-destroy (after delete-capture-frame activate) > "Advise capture-destroy to close the frame if it is the capture frame" > (if (equal "capture" (frame-parameter nil 'name)) > (delete-frame))) > > (defun make-capture-frame () > "Create a new frame and run org-capture." > (interactive) > (make-frame '((name . "Capture") > (width . 100) > (height . 15))) > (select-frame-by-name "Capture") > (delete-other-windows) > (org-capture)) > > I've also tried this using the org-capture-mode-hook to call > delete-other-windows and I've tried placing delete-other-windows after > the call to org-capture (both of those based on solutions I've seen > posted to this list at various times). Anyone have any clues on this? > I'm stumped, but I'm also fairly inexperienced at programming emacs. > As I pointed out in my reply to Gregor, org-capture will split the frame, no matter whether you have a new one or not: you need to modify its innards to change that behavior. Aside from that, there is a problem here: you name the frame "Capture", yet you test (equal "capture" ...) - I presume that's a typo? Nick ^ permalink raw reply [flat|nested] 56+ messages in thread
* How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" @ 2012-01-06 0:21 Gregor Zattler 2012-01-06 1:01 ` Bernt Hansen 0 siblings, 1 reply; 56+ messages in thread From: Gregor Zattler @ 2012-01-06 0:21 UTC (permalink / raw) To: emacs-orgmode Hi org-mode developers and -users, I use org-mode to record my working time. If I wnt to know the total time worked on a project I do a M-X org-clock-display. But this suddenly gives me this error message: org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61 I checked the org file but do not find any irregularities in the clock tables. I even deleted all individual `=> HH:MM' time ranges but this did not help. This happens with emacs23.3, org-mode 6.33 as with Emacs-snapshot and newest org-mode so I assume it is something like a syntax error in my org file. Any idea where to look for the cause of the error? Ciao, Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" 2012-01-06 0:21 How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" Gregor Zattler @ 2012-01-06 1:01 ` Bernt Hansen 2012-01-12 21:41 ` Gregor Zattler 0 siblings, 1 reply; 56+ messages in thread From: Bernt Hansen @ 2012-01-06 1:01 UTC (permalink / raw) To: Gregor Zattler; +Cc: emacs-orgmode Gregor Zattler <telegraph@gmx.net> writes: > Hi org-mode developers and -users, > > I use org-mode to record my working time. If I wnt to know the > total time worked on a project I do a M-X org-clock-display. > > But this suddenly gives me this error message: > > org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61 > > I checked the org file but do not find any irregularities in the > clock tables. I even deleted all individual `=> HH:MM' time > ranges but this did not help. > > This happens with emacs23.3, org-mode 6.33 as with Emacs-snapshot > and newest org-mode so I assume it is something like a syntax > error in my org file. > > Any idea where to look for the cause of the error? If you generate a backtrace with uncompiled org source files you should get an indication of where the problem is. Regards, Bernt ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" 2012-01-06 1:01 ` Bernt Hansen @ 2012-01-12 21:41 ` Gregor Zattler 2012-01-15 23:07 ` Bernt Hansen 0 siblings, 1 reply; 56+ messages in thread From: Gregor Zattler @ 2012-01-12 21:41 UTC (permalink / raw) To: emacs-orgmode Hi Bernt, org-mode developers, * Bernt Hansen <bernt@norang.ca> [05. Jan. 2012]: > Gregor Zattler <telegraph@gmx.net> writes: >> I use org-mode to record my working time. If I want to know the >> total time worked on a project I do a M-X org-clock-display. >> >> But this suddenly gives me this error message: >> >> org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61 >> >> I checked the org file but do not find any irregularities in the >> clock tables. I even deleted all individual `=> HH:MM' time >> ranges but this did not help. With something like bisecting I narrowed the problem down to a few headlines consisting of subheadings, bullet lists, checkboxed lists a few inline tasks etc. All in all 253 lines of text. It looks totally harmless to me. >> This happens with emacs23.3, org-mode 6.33 as with Emacs-snapshot >> and newest org-mode so I assume it is something like a syntax >> error in my org file. In both cases I startet Emacs with -Q so this is not a configuration issue -- besides a few #+STARTUP lines at the beginning orf the org file. >> Any idea where to look for the cause of the error? > > If you generate a backtrace with uncompiled org source files you should > get an indication of where the problem is. I did as you said but the backtrace is totally opaque to me: Debugger entered--Lisp error: (args-out-of-range [49569 49569 49569 39957 39957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 61) aref([49569 49569 49569 39957 39957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 61) (> (aref ltimes level) 0) (or (> t1 0) (> (aref ltimes level) 0)) (if (or (> t1 0) (> (aref ltimes level) 0)) (progn (when (or headline-included headline-forced) (if headline-included (loop for l from 0 to level do (aset ltimes l (+ (aref ltimes l) t1)))) (setq time (aref ltimes level)) (goto-char (match-beginning 0)) (put-text-property (point) (point-at-eol) :org-clock-minutes time) (if headline-filter (save-excursion (save-match-data (while (> ... 1) (outline-up-heading 1 t) (put-text-property ... ... :org-clock-force-headline-inclusion t)))))) (setq t1 0) (loop for l from level to (1- lmax) do (aset ltimes l 0)))) (when (or (> t1 0) (> (aref ltimes level) 0)) (when (or headline-included headline-forced) (if headline-included (loop for l from 0 to level do (aset ltimes l (+ (aref ltimes l) t1)))) (setq time (aref ltimes level)) (goto-char (match-beginning 0)) (put-text-property (point) (point-at-eol) :org-clock-minutes time) (if headline-filter (save-excursion (save-match-data (while (> (funcall outline-level) 1) (outline-up-heading 1 t) (put-text-property (point) (point-at-eol) :org-clock-force-headline-inclusion t)))))) (setq t1 0) (loop for l from level to (1- lmax) do (aset ltimes l 0))) (let* ((headline-forced (get-text-property (point) :org-clock-force-headline-inclusion)) (headline-included (or (null headline-filter) (save-excursion (save-match-data (funcall headline-filter)))))) (setq level (- (match-end 1) (match-beginning 1))) (when (or (> t1 0) (> (aref ltimes level) 0)) (when (or headline-included headline-forced) (if headline-included (loop for l from 0 to level do (aset ltimes l (+ (aref ltimes l) t1)))) (setq time (aref ltimes level)) (goto-char (match-beginning 0)) (put-text-property (point) (point-at-eol) :org-clock-minutes time) (if headline-filter (save-excursion (save-match-data (while (> ... 1) (outline-up-heading 1 t) (put-text-property ... ... :org-clock-force-headline-inclusion t)))))) (setq t1 0) (loop for l from level to (1- lmax) do (aset ltimes l 0)))) (cond ((match-end 2) (setq ts (match-string 2) te (match-string 3) ts (org-float-time (apply (quote encode-time) (org-parse-time-string ts))) te (org-float-time (apply (quote encode-time) (org-parse-time-string te))) ts (if tstart (max ts tstart) ts) te (if tend (min te tend) te) dt (- te ts) t1 (if (> dt 0) (+ t1 (floor (/ dt 60))) t1))) ((match-end 4) (setq t1 (+ t1 (string-to-number (match-string 5)) (* 60 (string-to-number (match-string 4)))))) (t (when (and org-clock-report-include-clocking-task (equal (org-clocking-buffer) (current-buffer)) (equal (marker-position org-clock-hd-marker) (point)) tstart tend (>= (org-float-time org-clock-start-time) tstart) (<= (org-float-time org-clock-start-time) tend)) (let ((time (floor (- ... ...) 60))) (setq t1 (+ t1 time)))) (let* ((headline-forced (get-text-property (point) :org-clock-force-headline-inclusion)) (headline-included (or (null headline-filter) (save-excursion (save-match-data ...))))) (setq level (- (match-end 1) (match-beginning 1))) (when (or (> t1 0) (> (aref ltimes level) 0)) (when (or headline-included headline-forced) (if headline-included (loop for l from 0 to level do (aset ltimes l ...))) (setq time (aref ltimes level)) (goto-char (match-beginning 0)) (put-text-property (point) (point-at-eol) :org-clock-minutes time) (if headline-filter (save-excursion (save-match-data ...)))) (setq t1 0) (loop for l from level to (1- lmax) do (aset ltimes l 0)))))) (while (re-search-backward re nil t) (cond ((match-end 2) (setq ts (match-string 2) te (match-string 3) ts (org-float-time (apply (quote encode-time) (org-parse-time-string ts))) te (org-float-time (apply (quote encode-time) (org-parse-time-string te))) ts (if tstart (max ts tstart) ts) te (if tend (min te tend) te) dt (- te ts) t1 (if (> dt 0) (+ t1 (floor (/ dt 60))) t1))) ((match-end 4) (setq t1 (+ t1 (string-to-number (match-string 5)) (* 60 (string-to-number (match-string 4)))))) (t (when (and org-clock-report-include-clocking-task (equal (org-clocking-buffer) (current-buffer)) (equal (marker-position org-clock-hd-marker) (point)) tstart tend (>= (org-float-time org-clock-start-time) tstart) (<= (org-float-time org-clock-start-time) tend)) (let ((time (floor ... 60))) (setq t1 (+ t1 time)))) (let* ((headline-forced (get-text-property (point) :org-clock-force-headline-inclusion)) (headline-included (or (null headline-filter) (save-excursion ...)))) (setq level (- (match-end 1) (match-beginning 1))) (when (or (> t1 0) (> (aref ltimes level) 0)) (when (or headline-included headline-forced) (if headline-included (loop for l from 0 to level do ...)) (setq time (aref ltimes level)) (goto-char (match-beginning 0)) (put-text-property (point) (point-at-eol) :org-clock-minutes time) (if headline-filter (save-excursion ...))) (setq t1 0) (loop for l from level to (1- lmax) do (aset ltimes l 0))))))) (save-excursion (goto-char (point-max)) (while (re-search-backward re nil t) (cond ((match-end 2) (setq ts (match-string 2) te (match-string 3) ts (org-float-time (apply (quote encode-time) (org-parse-time-string ts))) te (org-float-time (apply (quote encode-time) (org-parse-time-string te))) ts (if tstart (max ts tstart) ts) te (if tend (min te tend) te) dt (- te ts) t1 (if (> dt 0) (+ t1 (floor ...)) t1))) ((match-end 4) (setq t1 (+ t1 (string-to-number (match-string 5)) (* 60 (string-to-number ...))))) (t (when (and org-clock-report-include-clocking-task (equal (org-clocking-buffer) (current-buffer)) (equal (marker-position org-clock-hd-marker) (point)) tstart tend (>= (org-float-time org-clock-start-time) tstart) (<= (org-float-time org-clock-start-time) tend)) (let ((time ...)) (setq t1 (+ t1 time)))) (let* ((headline-forced (get-text-property ... :org-clock-force-headline-inclusion)) (headline-included (or ... ...))) (setq level (- (match-end 1) (match-beginning 1))) (when (or (> t1 0) (> ... 0)) (when (or headline-included headline-forced) (if headline-included ...) (setq time ...) (goto-char ...) (put-text-property ... ... :org-clock-minutes time) (if headline-filter ...)) (setq t1 0) (loop for l from level to (1- lmax) do (aset ltimes l 0))))))) (setq org-clock-file-total-minutes (aref ltimes 0))) (let* ((bmp (buffer-modified-p)) (re (concat "^\\(\\*+\\)[ ]\\|^[ ]*" org-clock-string "[ ]*\\(?:\\(\\[.*?\\]\\)-+\\(\\[.*?\\]\\)\\|=>[ ]+\\([0-9]+\\):\\([0-9]+\\)\\)")) (lmax 30) (ltimes (make-vector lmax 0)) (t1 0) (level 0) ts te dt time) (if (stringp tstart) (setq tstart (org-time-string-to-seconds tstart))) (if (stringp tend) (setq tend (org-time-string-to-seconds tend))) (if (consp tstart) (setq tstart (org-float-time tstart))) (if (consp tend) (setq tend (org-float-time tend))) (remove-text-properties (point-min) (point-max) (quote (:org-clock-minutes t :org-clock-force-headline-inclusion t))) (save-excursion (goto-char (point-max)) (while (re-search-backward re nil t) (cond ((match-end 2) (setq ts (match-string 2) te (match-string 3) ts (org-float-time (apply ... ...)) te (org-float-time (apply ... ...)) ts (if tstart (max ts tstart) ts) te (if tend (min te tend) te) dt (- te ts) t1 (if (> dt 0) (+ t1 ...) t1))) ((match-end 4) (setq t1 (+ t1 (string-to-number ...) (* 60 ...)))) (t (when (and org-clock-report-include-clocking-task (equal ... ...) (equal ... ...) tstart tend (>= ... tstart) (<= ... tend)) (let (...) (setq t1 ...))) (let* ((headline-forced ...) (headline-included ...)) (setq level (- ... ...)) (when (or ... ...) (when ... ... ... ... ... ...) (setq t1 0) (loop for l from level to ... do ...)))))) (setq org-clock-file-total-minutes (aref ltimes 0))) (set-buffer-modified-p bmp)) org-clock-sum() (let (time h m p) (org-clock-sum) (unless total-only (save-excursion (goto-char (point-min)) (while (or (and (equal (setq p ...) (point-min)) (get-text-property p :org-clock-minutes)) (setq p (next-single-property-change (point) :org-clock-minutes))) (goto-char p) (when (setq time (get-text-property p :org-clock-minutes)) (org-clock-put-overlay time (funcall outline-level)))) (setq h (/ org-clock-file-total-minutes 60) m (- org-clock-file-total-minutes (* 60 h))) (when org-remove-highlights-with-change (org-add-hook (quote before-change-functions) (quote org-clock-remove-overlays) nil (quote local))))) (if org-time-clocksum-use-fractional (message (concat "Total file time: " org-time-clocksum-fractional-format " (%d hours and %d minutes)") (/ (+ (* h 60.0) m) 60.0) h m) (message (concat "Total file time: " org-time-clocksum-format " (%d hours and %d minutes)") h m h m))) org-clock-display() call-interactively(org-clock-display t nil) execute-extended-command(nil) call-interactively(execute-extended-command nil nil) Any further ideas what to try next? Ciao, Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" 2012-01-12 21:41 ` Gregor Zattler @ 2012-01-15 23:07 ` Bernt Hansen 0 siblings, 0 replies; 56+ messages in thread From: Bernt Hansen @ 2012-01-15 23:07 UTC (permalink / raw) To: Gregor Zattler; +Cc: emacs-orgmode Gregor Zattler <telegraph@gmx.net> writes: > Hi Bernt, org-mode developers, > * Bernt Hansen <bernt@norang.ca> [05. Jan. 2012]: >> Gregor Zattler <telegraph@gmx.net> writes: >>> I use org-mode to record my working time. If I want to know the >>> total time worked on a project I do a M-X org-clock-display. >>> >>> But this suddenly gives me this error message: >>> >>> org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61 >>> <snip> >> >> If you generate a backtrace with uncompiled org source files you should >> get an indication of where the problem is. > > I did as you said but the backtrace is totally opaque to me: > <snip> Hi Gregor, Apologies for not responding sooner but you didn't send a copy directly to me (with reply-all) and my gmane access has been down for a week - so I'm just now catching up on the list traffic. I see from later posts that Nick has already provided details to figure out what is going on. Regards, Bernt ^ permalink raw reply [flat|nested] 56+ messages in thread
* how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13? @ 2012-10-11 12:51 Gregor Zattler 2012-10-11 14:13 ` Memnon Anon 2012-10-12 15:14 ` Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] (was: Re: how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13?) Gregor Zattler 0 siblings, 2 replies; 56+ messages in thread From: Gregor Zattler @ 2012-10-11 12:51 UTC (permalink / raw) To: emacs-orgmode Dear org-moders, today (2012-10-11) I yanked "Kommt am 13.10. um 14:00 zum" into the date/time prompt: the date is recognised as "<2010-10-13 Mi 14:00>" instead of <2012-10-13 Sa 14:00> as I would expect since I have the following customisations (excerpt): (custom-set-variables ;[...] '(calendar-date-style (quote european)) ;[...] '(diary-date-forms (quote ((day "\\. ?" month "\\. ?[^0-9]") (day "\\. ?" month "\\. ?" year "[^0-9]") (day "/" month "[^/0-9]") (day "/" month "/" year "[^0-9]") (backup day " *" monthname "\\W+\\<\\([^*0-9]\\|\\([0-9]+[:aApP]\\)\\)") (day " *" monthname " *" year "[^0-9]") (dayname "\\W")))) ;[...] ) as part of my .init.el. I thought the first diary date form would match this text but it doesn't. Even "Kommt am 13.10.2012 um 14:00 zum" is parsed as "<2010-10-13 Mi 14:00>". I thought the second diary date form would match this. Before I realised this I captured several events with wrong dates. Any Ideas? Ciao, Gregor ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13? 2012-10-11 12:51 how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13? Gregor Zattler @ 2012-10-11 14:13 ` Memnon Anon 2012-10-11 15:20 ` Gregor Zattler 2012-10-12 15:14 ` Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] (was: Re: how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13?) Gregor Zattler 1 sibling, 1 reply; 56+ messages in thread From: Memnon Anon @ 2012-10-11 14:13 UTC (permalink / raw) To: emacs-orgmode Hi Gregor, > today (2012-10-11) I yanked "Kommt am 13.10. um 14:00 zum" into > the date/time prompt: the date is recognised as "<2010-10-13 Mi > 14:00>" instead of <2012-10-13 Sa 14:00> as I would expect since > I have the following customisations (excerpt): I just tried, it seems to work just fine here. Not sure which customization is different. You may want to have a look at http://memnon.sdf-eu.org/emacs.org and compare. ELISP> (emacs-version) "GNU Emacs 24.2.50.1 (i486-pc-linux-gnu, GTK+ Version 3.4.2) of 2012-10-09 on dex, modified by Debian" ELISP> (org-version) "7.9.2" Memnon ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13? 2012-10-11 14:13 ` Memnon Anon @ 2012-10-11 15:20 ` Gregor Zattler 0 siblings, 0 replies; 56+ messages in thread From: Gregor Zattler @ 2012-10-11 15:20 UTC (permalink / raw) To: emacs-orgmode Hi Memnon, * Memnon Anon <gegendosenfleisch@googlemail.com> [11. Oct. 2012]: >> today (2012-10-11) I yanked "Kommt am 13.10. um 14:00 zum" into >> the date/time prompt: the date is recognised as "<2010-10-13 Mi >> 14:00>" instead of <2012-10-13 Sa 14:00> as I would expect since >> I have the following customisations (excerpt): > > I just tried, it seems to work just fine here. > > Not sure which customization is different. You may want to have a look > at http://memnon.sdf-eu.org/emacs.org and compare. This is strange: I searched your Emacs.org dor `date' and the only relevant customisations are IMHO (setq european-calendar-style t ; obsolete! calendar-date-style 'european ... I tried with emacs-snapshot -Q and this single customisation: No luck. > ELISP> (emacs-version) > "GNU Emacs 24.2.50.1 (i486-pc-linux-gnu, GTK+ Version 3.4.2) > of 2012-10-09 on dex, modified by Debian" > ELISP> (org-version) > "7.9.2" Ah, sorry: GNU Emacs 24.2.50.1 (i486-pc-linux-gnu, X toolkit, Xaw scroll bars) of 2012-10-09 on dex, modified by Debian Org-mode version 7.9.2 (release_7.9.2-434-gc23dea @ Ciao, Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 56+ messages in thread
* Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] (was: Re: how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13?) 2012-10-11 12:51 how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13? Gregor Zattler 2012-10-11 14:13 ` Memnon Anon @ 2012-10-12 15:14 ` Gregor Zattler 2012-10-12 16:24 ` Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] Nicolas Goaziou 1 sibling, 1 reply; 56+ messages in thread From: Gregor Zattler @ 2012-10-12 15:14 UTC (permalink / raw) To: emacs-orgmode Dear org-moders, I now believe I found a bug in org-read-date. There is a problem parsing European dotted dates. In Dates the like DD.MM.YYYY or DD.MM.YY or DD.MM. `MM' is recognised as year instead of month: Today is 2012-10-11: (org-read-date t nil "Kommt am 27.10.2012 um 14:00 Uhr") gives "2010-10-27" expectet outcome is "2012-10-27" Same with abbreviated years: (org-read-date t nil "Kommt am 27.10.12 um 14:00 Uhr") "2010-10-27" expectet outcome is "2012-10-27" Days are interpreted correctly: (org-read-date t nil "Kommt am 27. um 14:00 Uhr") "2012-10-27" Since I customised german day names this also is correct: (org-read-date t nil "Kommt am Sonntag um 14:00 Uhr") "2012-10-14" The most common way of expressing dates this year is interpreted wrongly: (org-read-date t nil "Kommt am 27.10. um 14:00 Uhr") "2010-10-27" expectet outcome is "2012-10-27" I read the source of org-read-date but didn't grok it. The regex in the section labeled ";; Help matching dotted european dates" looks good to me, but... Emacs : GNU Emacs 24.2.50.1 (i486-pc-linux-gnu, X toolkit, Xaw scroll bars) of 2012-10-09 on dex, modified by Debian Package: Org-mode version 7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/) I also did these tests with `env -i emacs -d :0.0 -Q': - GNU Emacs 24.2.50.1 / Org-mode 7.9.2 - GNU Emacs 23.4.1 / Org-mode: 6.33x --> same results (with the exception of german day names). Thanks for your attention, Gregor * Gregor Zattler <telegraph@gmx.net> [11. Oct. 2012]: > > > today (2012-10-11) I yanked "Kommt am 13.10. um 14:00 zum" into > the date/time prompt: the date is recognised as "<2010-10-13 Mi > 14:00>" instead of <2012-10-13 Sa 14:00> as I would expect since > I have the following customisations (excerpt): > > (custom-set-variables > ;[...] > '(calendar-date-style (quote european)) > ;[...] > '(diary-date-forms (quote ((day "\\. ?" month "\\. ?[^0-9]") > (day "\\. ?" month "\\. ?" year "[^0-9]") > (day "/" month "[^/0-9]") > (day "/" month "/" year "[^0-9]") > (backup day " *" monthname "\\W+\\<\\([^*0-9]\\|\\([0-9]+[:aApP]\\)\\)") > (day " *" monthname " *" year "[^0-9]") > (dayname "\\W")))) > ;[...] > ) > > as part of my .init.el. > > > I thought the first diary date form would match this text but it > doesn't. Even "Kommt am 13.10.2012 um 14:00 zum" is parsed as > "<2010-10-13 Mi 14:00>". I thought the second diary date form > would match this. > > Before I realised this I captured several events with wrong dates. > > Any Ideas? > > Ciao, Gregor > Ciao, Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] 2012-10-12 15:14 ` Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] (was: Re: how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13?) Gregor Zattler @ 2012-10-12 16:24 ` Nicolas Goaziou 2012-10-13 8:12 ` Gregor Zattler 0 siblings, 1 reply; 56+ messages in thread From: Nicolas Goaziou @ 2012-10-12 16:24 UTC (permalink / raw) To: emacs-orgmode Hello, Gregor Zattler <telegraph@gmx.net> writes: > I now believe I found a bug in org-read-date. There is a problem > parsing European dotted dates. In Dates the like DD.MM.YYYY or > DD.MM.YY or DD.MM. `MM' is recognised as year instead of month: > > Today is 2012-10-11: > > (org-read-date t nil "Kommt am 27.10.2012 um 14:00 Uhr") > gives > "2010-10-27" > expectet outcome is > "2012-10-27" AFAICT `org-read-date' expects a date string alone, not a date string in the middle of some text. (org-read-date t nil "12.10.") => "2012-10-12" Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] 2012-10-12 16:24 ` Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] Nicolas Goaziou @ 2012-10-13 8:12 ` Gregor Zattler 2012-10-13 10:10 ` Nicolas Goaziou 0 siblings, 1 reply; 56+ messages in thread From: Gregor Zattler @ 2012-10-13 8:12 UTC (permalink / raw) To: emacs-orgmode Hi Nicolas, * Nicolas Goaziou <n.goaziou@gmail.com> [12. Oct. 2012]: > Gregor Zattler <telegraph@gmx.net> writes: > >> I now believe I found a bug in org-read-date. There is a problem >> parsing European dotted dates. In Dates the like DD.MM.YYYY or >> DD.MM.YY or DD.MM. `MM' is recognised as year instead of month: >> >> Today is 2012-10-11: >> >> (org-read-date t nil "Kommt am 27.10.2012 um 14:00 Uhr") >> gives >> "2010-10-27" >> expectet outcome is >> "2012-10-27" > > AFAICT `org-read-date' expects a date string alone, not a date string in > the middle of some text. > > (org-read-date t nil "12.10.") => "2012-10-12" For me this is about the date/time prompt when capturing. I had a look at org-time-stamp and had the impression that the actual parsing of the users input is done in org-read-date. But obviously my basic elisp knowledge isn't up to such complex functions. Back to square one: Does anybody know How to customise Emacs/org-mode so that dotted European dates are parsed correctly at the date/time prompt? Ciao, Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] 2012-10-13 8:12 ` Gregor Zattler @ 2012-10-13 10:10 ` Nicolas Goaziou 2012-10-13 18:44 ` Gregor Zattler 0 siblings, 1 reply; 56+ messages in thread From: Nicolas Goaziou @ 2012-10-13 10:10 UTC (permalink / raw) To: emacs-orgmode Hello, Gregor Zattler <telegraph@gmx.net> writes: > Back to square one: Does anybody know How to customise > Emacs/org-mode so that dotted European dates are parsed correctly > at the date/time prompt? Again, dotted European dates are parsed correctly without customization. Would you provide a time string that isn't? Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] 2012-10-13 10:10 ` Nicolas Goaziou @ 2012-10-13 18:44 ` Gregor Zattler 2012-10-14 6:01 ` Carsten Dominik 0 siblings, 1 reply; 56+ messages in thread From: Gregor Zattler @ 2012-10-13 18:44 UTC (permalink / raw) To: emacs-orgmode Hi Nicolas, org-mode users and developers, * Nicolas Goaziou <n.goaziou@gmail.com> [13. Oct. 2012]: > Gregor Zattler <telegraph@gmx.net> writes: > >> Back to square one: Does anybody know How to customise >> Emacs/org-mode so that dotted European dates are parsed correctly >> at the date/time prompt? > > Again, dotted European dates are parsed correctly without customization. > Would you provide a time string that isn't? "Naked" dotted european dates without surrounding text are parsed correctly by org-read-date. But with date/time prompt I mean the prompt which asks me for a date/time when invoking org-time-stamp. Here I'm allowed to insert Dates like "the event takes place at 27.10. at 14:00 in the pub". Org-mode is supposed to parse these, see [[info:org#The%20date/time%20prompt][info:org#The date/time prompt]]. If I now yank "Kommt am 27.10.2012 um 14:00 zum" in this date/time prompt, the result is "<2010-10-27 Mi 14:00>" instead of "<2012-10-27 Sa 14:00>". ^ ^^ ^ ^^ I had a look at org-time-stamp which is invoked by "C-c ." I do not understand how this function parses dates/times from text. Therefore I looked for functions with appropriate names which are called by org-time-stamp. The only one I could find is org-read-date. It obviously parses dates from a string and identifies parts (day, month, year). I thought org-read-date does the heavy lifting with respect to date parsing. But now I think you are right and org-read-dates parses "naked dates". But where does the parsing of texts which contain dates take place? Ciao, Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] 2012-10-13 18:44 ` Gregor Zattler @ 2012-10-14 6:01 ` Carsten Dominik 2012-10-14 7:57 ` Nicolas Goaziou 0 siblings, 1 reply; 56+ messages in thread From: Carsten Dominik @ 2012-10-14 6:01 UTC (permalink / raw) To: Gregor Zattler; +Cc: emacs-orgmode On 13 okt. 2012, at 20:45, Gregor Zattler <telegraph@gmx.net> wrote: > Hi Nicolas, org-mode users and developers, > * Nicolas Goaziou <n.goaziou@gmail.com> [13. Oct. 2012]: >> Gregor Zattler <telegraph@gmx.net> writes: >> >>> Back to square one: Does anybody know How to customise >>> Emacs/org-mode so that dotted European dates are parsed correctly >>> at the date/time prompt? >> >> Again, dotted European dates are parsed correctly without customization. >> Would you provide a time string that isn't? > > "Naked" dotted european dates without surrounding text are > parsed correctly by org-read-date. > > But with date/time prompt I mean the prompt which asks me for a > date/time when invoking org-time-stamp. Here I'm allowed to > insert Dates like "the event takes place at 27.10. at 14:00 in > the pub". Org-mode is supposed to parse these, see > [[info:org#The%20date/time%20prompt][info:org#The date/time prompt]]. Org used to have the ambition to parse a date in the middle of a text, and this six what you are seeing in the documentation. However, over time more and more different requests came in, to parse ISO weeks, European dates and more. Also we want to allow incomplete dates like leaving out a year etc. I still think Org does a pretty god job there. However, to be reasonably predictable we did have o restrict matching of special dates to the beginning of the string, and this is what you and Nicolas are now seeing. If you want this to work differently, you need to hack your own version of the analyze function. For example, you can remove the ^ anchor from the regexp matching dotted dates. And you can change the regexp to match two digit years and not only four digit years. But you will then see that it also parses numbers with decimals which happen to be in the chunk of text. Carsten > > If I now yank "Kommt am 27.10.2012 um 14:00 zum" in this > date/time prompt, the result is "<2010-10-27 Mi 14:00>" instead > of "<2012-10-27 Sa 14:00>". ^ ^^ > ^ ^^ > > > I had a look at org-time-stamp which is invoked by "C-c ." I do > not understand how this function parses dates/times from text. > Therefore I looked for functions with appropriate names which are > called by org-time-stamp. The only one I could find is > org-read-date. It obviously parses dates from a string and > identifies parts (day, month, year). I thought org-read-date > does the heavy lifting with respect to date parsing. But now I > think you are right and org-read-dates parses "naked dates". But > where does the parsing of texts which contain dates take place? > > > > Ciao, Gregor > -- > -... --- .-. . -.. ..--.. ...-.- > ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] 2012-10-14 6:01 ` Carsten Dominik @ 2012-10-14 7:57 ` Nicolas Goaziou 2012-10-15 6:39 ` Carsten Dominik 0 siblings, 1 reply; 56+ messages in thread From: Nicolas Goaziou @ 2012-10-14 7:57 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs-orgmode Hello, Carsten Dominik <carsten.dominik@gmail.com> writes: > Org used to have the ambition to parse a date in the middle of a text, > and this six what you are seeing in the documentation. However, over > time more and more different requests came in, to parse ISO weeks, > European dates and more. Also we want to allow incomplete dates like > leaving out a year etc. I still think Org does a pretty god job > there. However, to be reasonably predictable we did have o restrict > matching of special dates to the beginning of the string, and this is > what you and Nicolas are now seeing. It may be worth specifying that restriction in the documentation. As Gregor pointed out But it will in fact accept any string containing some date and/or time information, and it is really smart about interpreting your input. is misleading. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] 2012-10-14 7:57 ` Nicolas Goaziou @ 2012-10-15 6:39 ` Carsten Dominik 2012-10-15 11:06 ` Nicolas Goaziou 0 siblings, 1 reply; 56+ messages in thread From: Carsten Dominik @ 2012-10-15 6:39 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode I fixed the documentation. - Carsten On 14.10.2012, at 09:57, Nicolas Goaziou wrote: > Hello, > > Carsten Dominik <carsten.dominik@gmail.com> writes: > >> Org used to have the ambition to parse a date in the middle of a text, >> and this six what you are seeing in the documentation. However, over >> time more and more different requests came in, to parse ISO weeks, >> European dates and more. Also we want to allow incomplete dates like >> leaving out a year etc. I still think Org does a pretty god job >> there. However, to be reasonably predictable we did have o restrict >> matching of special dates to the beginning of the string, and this is >> what you and Nicolas are now seeing. > > It may be worth specifying that restriction in the documentation. As > Gregor pointed out > > But it will in fact accept any string containing some date > and/or time information, and it is really smart about interpreting your > input. > > is misleading. > > > Regards, > > -- > Nicolas Goaziou ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] 2012-10-15 6:39 ` Carsten Dominik @ 2012-10-15 11:06 ` Nicolas Goaziou 0 siblings, 0 replies; 56+ messages in thread From: Nicolas Goaziou @ 2012-10-15 11:06 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs-orgmode Hello, Carsten Dominik <carsten.dominik@gmail.com> writes: > I fixed the documentation. Thank you. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 56+ messages in thread
* How to track down "No heading for this item in buffer or region."? @ 2013-01-24 12:32 Gregor Zattler 2013-01-24 12:44 ` Bastien 0 siblings, 1 reply; 56+ messages in thread From: Gregor Zattler @ 2013-01-24 12:32 UTC (permalink / raw) To: emacs-orgmode Hi, my agenda shows a line: "No heading for this item in buffer or region." how should I track down the problematic part of my org files? Ciao, Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-24 12:32 How to track down "No heading for this item in buffer or region."? Gregor Zattler @ 2013-01-24 12:44 ` Bastien 2013-01-24 16:23 ` Gregor Zattler 0 siblings, 1 reply; 56+ messages in thread From: Bastien @ 2013-01-24 12:44 UTC (permalink / raw) To: emacs-orgmode Hi Gregor, Gregor Zattler <telegraph@gmx.net> writes: > my agenda shows a line: > > "No heading for this item in buffer or region." It means the agenda contains tasks like * TODO with no heading. > how should I track down the problematic part of my org files? You can run this in your Org buffer: M-: (while (and (re-search-forward org-complex-heading-regexp nil t) (match-string 4))) RET It will stop at the problematic headlines. HTH, -- Bastien ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-24 12:44 ` Bastien @ 2013-01-24 16:23 ` Gregor Zattler 2013-01-24 19:07 ` Bastien 2013-01-24 19:24 ` Bastien 0 siblings, 2 replies; 56+ messages in thread From: Gregor Zattler @ 2013-01-24 16:23 UTC (permalink / raw) To: emacs-orgmode Hi Bastien, * Bastien <bzg@altern.org> [24. Jan. 2013]: > Gregor Zattler <telegraph@gmx.net> writes: >> my agenda shows a line: >> >> "No heading for this item in buffer or region." > > It means the agenda contains tasks like > > * TODO > > with no heading. > >> how should I track down the problematic part of my org files? > > You can run this in your Org buffer: > > M-: (while (and (re-search-forward org-complex-heading-regexp nil t) (match-string 4))) RET > > It will stop at the problematic headlines. That really helped to eliminate all empty headlines. I later checked via egrep -- "^[*]+[[:space:]]*$" on my agenda files that there are no further empty headlines. But alas, the message "No heading for this item in buffer or region." still appears two times in my agenda -- for today. When I move the cursor over this lines a message appears in the echo area: byte-code: Before first headline at position 64 in buffer org.org [14 times] The second line of org.org begins at character 64 in the buffer. It's a timestamp: #Time-stamp: <2013-01-24 16:30:39 grfz> Till recently this was no problem since it is a comment line. Obviously org-mode somehow interprets this timestamp, since the messages disappeared after I changed the time stamp delimiter from `<' and `>' respectively to `"'. I consider this to be a bug since these time stamps are a standard Emacs feature and this line is a comment org-mode-wise. Thanks for your help to clean up my org files and tracking down the offending lines in my org agenda files. Ciao, Gregor -- -... --- .-. . -.. ..--.. ...-.- ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-24 16:23 ` Gregor Zattler @ 2013-01-24 19:07 ` Bastien 2013-01-24 19:24 ` Bastien 1 sibling, 0 replies; 56+ messages in thread From: Bastien @ 2013-01-24 19:07 UTC (permalink / raw) To: emacs-orgmode Gregor Zattler <telegraph@gmx.net> writes: > #Time-stamp: <2013-01-24 16:30:39 grfz> > > Till recently this was no problem since it is a comment line. This is not a comment line, comment lines start with "[\t ]*# " (note the space after the #). -- Bastien ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-24 16:23 ` Gregor Zattler 2013-01-24 19:07 ` Bastien @ 2013-01-24 19:24 ` Bastien 2013-01-24 19:35 ` Nick Dokos 1 sibling, 1 reply; 56+ messages in thread From: Bastien @ 2013-01-24 19:24 UTC (permalink / raw) To: emacs-orgmode; +Cc: Carsten Dominik [-- Attachment #1: Type: text/plain, Size: 359 bytes --] Hi Gregor, Gregor Zattler <telegraph@gmx.net> writes: > But alas, the message "No heading for this item in buffer or > region." still appears two times in my agenda -- for today. The attached patch fixes it. Carsten, was there any special reason for allowing to add an agenda entry before the first headline? The following patch prevent this. Thanks, [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: org-agenda-no-heading_maint.patch --] [-- Type: text/x-patch, Size: 2706 bytes --] diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index f088e59..4236b0a 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -5406,9 +5406,6 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? \(fn &optional END)" nil nil) -(defconst org-agenda-no-heading-message - "No heading for this item in buffer or region.") - (defun org-agenda-get-timestamps (&optional deadline-results) "Return the date stamp information for agenda display." (let* ((props (list 'face 'org-agenda-calendar-event @@ -5488,7 +5485,7 @@ Do we have a reason to ignore this TODO entry because it has a time stamp? category-pos (get-text-property b0 'org-category-position)) (save-excursion (if (not (re-search-backward org-outline-regexp-bol nil t)) - (setq txt org-agenda-no-heading-message) + (throw :skip nil) (goto-char (match-beginning 0)) (if (and (eq t org-agenda-skip-timestamp-if-deadline-is-shown) (assoc (point) deadline-position-alist)) @@ -5724,7 +5721,7 @@ please use `org-class' instead." (and (looking-at ".*\n[ \t]*-[ \t]+\\([^-\n \t].*?\\)[ \t]*$") (match-string 1))))) (if (not (re-search-backward org-outline-regexp-bol nil t)) - (setq txt org-agenda-no-heading-message) + (throw :skip nil) (goto-char (match-beginning 0)) (setq hdmarker (org-agenda-new-marker) inherited-tags @@ -5941,7 +5938,7 @@ See also the user option `org-agenda-clock-consistency-checks'." warntime (get-text-property (point) 'org-appt-warntime) category-pos (get-text-property (point) 'org-category-position)) (if (not (re-search-backward "^\\*+[ \t]+" nil t)) - (setq txt org-agenda-no-heading-message) + (throw :skip nil) (goto-char (match-end 0)) (setq pos1 (match-beginning 0)) (setq inherited-tags @@ -6066,7 +6063,7 @@ FRACTION is what fraction of the head-warning time has passed." (setq category (org-get-category) category-pos (get-text-property (point) 'org-category-position)) (if (not (re-search-backward "^\\*+[ \t]+" nil t)) - (setq txt org-agenda-no-heading-message) + (throw :skip nil) (goto-char (match-end 0)) (setq pos1 (match-beginning 0)) (if habitp @@ -6167,7 +6164,7 @@ FRACTION is what fraction of the head-warning time has passed." (setq category (org-get-category) category-pos (get-text-property (point) 'org-category-position)) (if (not (re-search-backward org-outline-regexp-bol nil t)) - (setq txt org-agenda-no-heading-message) + (throw :skip nil) (goto-char (match-beginning 0)) (setq hdmarker (org-agenda-new-marker (point)) inherited-tags [-- Attachment #3: Type: text/plain, Size: 14 bytes --] -- Bastien ^ permalink raw reply related [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-24 19:24 ` Bastien @ 2013-01-24 19:35 ` Nick Dokos 2013-01-24 20:29 ` Bastien 0 siblings, 1 reply; 56+ messages in thread From: Nick Dokos @ 2013-01-24 19:35 UTC (permalink / raw) To: Bastien; +Cc: emacs-orgmode, Carsten Dominik Bastien <bzg@altern.org> wrote: > Hi Gregor, > > Gregor Zattler <telegraph@gmx.net> writes: > > > But alas, the message "No heading for this item in buffer or > > region." still appears two times in my agenda -- for today. > > The attached patch fixes it. > > Carsten, was there any special reason for allowing to add > an agenda entry before the first headline? The following > patch prevent this. > I think you'd be better off fixing the lazily assigned text properties and then you don't need to worry about adding restrictions. In addition, this fix does not do anything for the following case: If I slightly modify the previous example ,---- | # timestamp: <2013-01-24 Thu> | | * TODO foo | # SCHEDULED: <2013-01-24 Thu> `---- to try to reproduce Rainer's problem, when I first construct the agenda, I get *both* the TODO and the no-heading message: text properties are not active. If I then visit the file (e.g. RET on the TODO item) and construct the agenda again, neither the TODO nor the no-heading message appears. Nick ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-24 19:35 ` Nick Dokos @ 2013-01-24 20:29 ` Bastien 2013-01-25 5:20 ` Nick Dokos 0 siblings, 1 reply; 56+ messages in thread From: Bastien @ 2013-01-24 20:29 UTC (permalink / raw) To: nicholas.dokos; +Cc: emacs-orgmode, Carsten Dominik Nick Dokos <nicholas.dokos@hp.com> writes: > to try to reproduce Rainer's problem, when I first construct the agenda, > I get *both* the TODO and the no-heading message: text properties are not > active. If I then visit the file (e.g. RET on the TODO item) and construct > the agenda again, neither the TODO nor the no-heading message > appears. I see -- it was not obvious to me you were trying without opening the file in a buffer. With my patch, I can reproduce the error, but only the TODO (which appears instead of being skipped, not with the timestamp line. Yes, seems related to properties. I'll digg further. Thanks! -- Bastien ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-24 20:29 ` Bastien @ 2013-01-25 5:20 ` Nick Dokos 2013-01-25 16:11 ` J. David Boyd 2013-01-26 10:51 ` Bastien 0 siblings, 2 replies; 56+ messages in thread From: Nick Dokos @ 2013-01-25 5:20 UTC (permalink / raw) To: Bastien; +Cc: emacs-orgmode, Carsten Dominik Bastien <bzg@altern.org> wrote: > Nick Dokos <nicholas.dokos@hp.com> writes: > > > to try to reproduce Rainer's problem, when I first construct the agenda, > > I get *both* the TODO and the no-heading message: text properties are not > > active. If I then visit the file (e.g. RET on the TODO item) and construct > > the agenda again, neither the TODO nor the no-heading message > > appears. > > I see -- it was not obvious to me you were trying without opening the > file in a buffer. With my patch, I can reproduce the error, but only > the TODO (which appears instead of being skipped, not with the > timestamp line. Yes, seems related to properties. I'll digg further. > Not quite: the file *is* opened in a buffer (the agenda code opens all the files, I presume with find-file-noselect), but the text properties are not up to date. It's only when I explicitly visit the buffer that they get updated. E.g. if you evaluate --8<---------------cut here---------------start------------->8--- (setq buf (find-file-noselect "/path/to/test.org")) (with-current-buffer buf (setq s (buffer-substring 1 2))) --8<---------------cut here---------------end--------------->8--- the echo area shows ,---- | #("#" 0 1 (fontified nil)) `---- But if you visit the buffer with C-x b test.org RET and then evaluate the second form again, you get ,---- | #("#" 0 1 (fontified t font-lock-fontified t face font-lock-comment-face)) `---- There is a section on lazy properties in the elisp manual but I don't know how to use the mechanism described there: there are no examples in current emacs code, some half-hearted experiments failed for unknown reasons, and googling a bit found only one relevant thread in the emacs group from 2004 - quoting Stefan Monnier from that thread: #+BEGIN_QUOTE I think the lazy text properties that you refer to (i.e. variable buffer-access-fontify-functions) are a sadly perfect example of C code implemented before we knew what we needed. It's implemented, documented, and 100% unused. #+END_QUOTE AFAICT, nothing has been done in this area since then. Nick PS. Here's the trivial test.org again for completeness: --8<---------------cut here---------------start------------->8--- # timestamp: <2013-01-24 Thu> * TODO foo # SCHEDULED: <2013-01-24 Thu> --8<---------------cut here---------------end--------------->8--- ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-25 5:20 ` Nick Dokos @ 2013-01-25 16:11 ` J. David Boyd 2013-01-26 10:51 ` Bastien 1 sibling, 0 replies; 56+ messages in thread From: J. David Boyd @ 2013-01-25 16:11 UTC (permalink / raw) To: emacs-orgmode Nick Dokos <nicholas.dokos@hp.com> writes: > Bastien <bzg@altern.org> wrote: > >> Nick Dokos <nicholas.dokos@hp.com> writes: >> >> > to try to reproduce Rainer's problem, when I first construct the agenda, >> > I get *both* the TODO and the no-heading message: text properties are not >> > active. If I then visit the file (e.g. RET on the TODO item) and construct >> > the agenda again, neither the TODO nor the no-heading message >> > appears. >> >> I see -- it was not obvious to me you were trying without opening the >> file in a buffer. With my patch, I can reproduce the error, but only >> the TODO (which appears instead of being skipped, not with the >> timestamp line. Yes, seems related to properties. I'll digg further. >> > > Not quite: the file *is* opened in a buffer (the agenda code opens all the > files, I presume with find-file-noselect), but the text properties are > not up to date. It's only when I explicitly visit the buffer > that they get updated. > > E.g. if you evaluate > > (setq buf (find-file-noselect "/path/to/test.org")) > (with-current-buffer buf > (setq s (buffer-substring 1 2))) > > the echo area shows > > ,---- > | #("#" 0 1 (fontified nil)) > `---- > > But if you visit the buffer with C-x b test.org RET and then > evaluate the second form again, you get > > ,---- > | #("#" 0 1 (fontified t font-lock-fontified t face font-lock-comment-face)) > `---- > > There is a section on lazy properties in the elisp manual but I don't > know how to use the mechanism described there: there are no examples in > current emacs code, some half-hearted experiments failed for unknown > reasons, and googling a bit found only one relevant thread in the emacs > group from 2004 - quoting Stefan Monnier from that thread: > > #+BEGIN_QUOTE > I think the lazy text properties that you refer to (i.e. variable > buffer-access-fontify-functions) are a sadly perfect example of C code > implemented before we knew what we needed. It's implemented, > documented, and 100% unused. > #+END_QUOTE > > AFAICT, nothing has been done in this area since then. > > Nick > > PS. Here's the trivial test.org again for completeness: > > # timestamp: <2013-01-24 Thu> > > * TODO foo > # SCHEDULED: <2013-01-24 Thu> There was a message in here a while back about something like this. I can't find it at the moment, but the author talked about org mode hooks that aren't being run when a file is loaded or moved to from the agenda, only when explicitly loaded. He had a work around for that, but I don't recall that either.... Sorry for no more help than this ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-25 5:20 ` Nick Dokos 2013-01-25 16:11 ` J. David Boyd @ 2013-01-26 10:51 ` Bastien 2013-01-26 16:45 ` Nick Dokos 1 sibling, 1 reply; 56+ messages in thread From: Bastien @ 2013-01-26 10:51 UTC (permalink / raw) To: nicholas.dokos; +Cc: emacs-orgmode, Carsten Dominik Hi Nick, Nick Dokos <nicholas.dokos@hp.com> writes: > Not quite: the file *is* opened in a buffer (the agenda code opens all the > files, I presume with find-file-noselect), but the text properties are > not up to date. It's only when I explicitly visit the buffer > that they get updated. I updated the commit using the `font-lock-comment-face' for skipping commented scheduled/deadline lines -- it now uses comment-start-skip to skip those lines. No need to put the # at the beginning of the line, the optimization here is not significant enough IMHO. Org now relies on the general font-lock mechanism for comments, and defines comment-start etc. See `org-setup-comments-handling'. Yes, the text properties from font-lock are not always present when the buffer is not visited, you're right... things seem a bit unpredictable in this area. Thanks, -- Bastien ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-26 10:51 ` Bastien @ 2013-01-26 16:45 ` Nick Dokos 2013-01-31 10:43 ` Bastien 0 siblings, 1 reply; 56+ messages in thread From: Nick Dokos @ 2013-01-26 16:45 UTC (permalink / raw) To: Bastien; +Cc: emacs-orgmode, Carsten Dominik Bastien <bzg@altern.org> wrote: > > Not quite: the file *is* opened in a buffer (the agenda code opens all the > > files, I presume with find-file-noselect), but the text properties are > > not up to date. It's only when I explicitly visit the buffer > > that they get updated. > > I updated the commit using the `font-lock-comment-face' for skipping > commented scheduled/deadline lines -- it now uses comment-start-skip > to skip those lines. No need to put the # at the beginning of the > line, the optimization here is not significant enough IMHO. > > Org now relies on the general font-lock mechanism for comments, and > defines comment-start etc. See `org-setup-comments-handling'. Yes, > the text properties from font-lock are not always present when the > buffer is not visited, you're right... things seem a bit unpredictable > in this area. > I experimented a bit and came up with the following hack (which is probably too heavy-handed to be acceptable as a genuine fix). Let's assume that there is a way to force lazy properties (there must be one since visiting the buffer does force them). Then anywhere where org-agenda-skip is called, we make sure that the force function is called beforehand. There's a few code paths that enter here but they are all (?) of the form: loop over files (setq buf (find-file-noselect file)) (with-current-buffer buf ;;; do things that eventually call org-agenda-skip) Replacing the ;;; with a call to the forcing function should do the trick. So here's my elephant-gun-to-kill-a-mosquito forcing function: --8<---------------cut here---------------start------------->8--- (defun org-force-lazy-text-properties () (jit-lock-function 1)) --8<---------------cut here---------------end--------------->8--- It seems to work at least for small files. There seem to be limits to how much fontification it does, so if the file is bigger, it might miss things. The more likely misfeature however is that it will slow down the agenda to a crawl. It's an existence proof, not a solution. Nick ^ permalink raw reply [flat|nested] 56+ messages in thread
* Re: How to track down "No heading for this item in buffer or region."? 2013-01-26 16:45 ` Nick Dokos @ 2013-01-31 10:43 ` Bastien 0 siblings, 0 replies; 56+ messages in thread From: Bastien @ 2013-01-31 10:43 UTC (permalink / raw) To: nicholas.dokos; +Cc: emacs-orgmode, Carsten Dominik Hi Nick, Nick Dokos <nicholas.dokos@hp.com> writes: > (defun org-force-lazy-text-properties () > (jit-lock-function 1)) > > It seems to work at least for small files. There seem to be limits > to how much fontification it does, so if the file is bigger, it might > miss things. The more likely misfeature however is that it will slow > down the agenda to a crawl. It's an existence proof, not a solution. Still interesting to know... it leaves other experiments to do in hope we can still optimize the agenda! Thanks for sharing this, -- Bastien ^ permalink raw reply [flat|nested] 56+ messages in thread
end of thread, other threads:[~2013-10-04 7:06 UTC | newest] Thread overview: 56+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-11-10 19:08 Getting rid of split frame with org-capture Thomas Lockney 2011-11-12 15:57 ` Gregor Zattler [not found] ` <telegraph@gmx.net> 2011-11-13 4:13 ` Nick Dokos 2011-11-13 16:48 ` Tom Prince 2011-11-13 17:57 ` Nick Dokos 2011-11-20 16:16 ` Tom Prince 2011-12-13 23:11 ` Andreas Leha 2011-12-14 16:37 ` Tom Prince 2013-10-04 4:33 ` Alexander Vorobiev 2013-10-04 7:06 ` Alan Schmitt 2011-11-25 16:35 ` Eric S Fraga 2012-01-12 22:12 ` How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" Nick Dokos 2012-01-12 22:56 ` Nick Dokos 2012-01-14 16:16 ` [BUG] org-clock-sum cannot handle headings with more than 29 stars (was: Re: How to debug "org-clock-display: Args out of range: [48230 48230) " Gregor Zattler 2012-01-15 15:33 ` How to debug "org-clock-display: Args out of range: [48230 48230 " Stefan Nobis 2012-01-14 18:49 ` [BUG] org-clock-sum cannot handle headings with more than 29 stars (was: Re: How to debug "org-clock-display: Args out of range: [48230 48230) " Nick Dokos 2012-01-22 12:50 ` [BUG][PATCH] document number of stars limitation with respect to org-clock-sum (was: Re: org-clock-sum cannot handle headings with more than 29 stars) Gregor Zattler 2012-01-22 13:15 ` [PATCH 2/3] Document max number of stars in headings in manual Gregor Zattler 2012-01-24 16:10 ` [Accepted] [O, " Bastien Guerry 2012-01-22 13:15 ` [PATCH 1/3] Document max number of stars in headings in docstring of org-inlinetask-minlevel Gregor Zattler 2012-01-24 16:10 ` [Accepted] [O, " Bastien Guerry 2012-01-22 13:30 ` [PATCH 3/3] Document max number of stars in clocking section Gregor Zattler 2012-01-24 16:11 ` [Accepted] [O, " Bastien Guerry 2012-01-24 16:16 ` [BUG][PATCH] document number of stars limitation with respect to org-clock-sum Bastien 2012-10-14 5:31 ` Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] Nick Dokos 2013-01-24 18:10 ` How to track down "No heading for this item in buffer or region."? Nick Dokos 2013-01-24 18:31 ` Nick Dokos 2011-11-13 20:41 ` Getting rid of split frame with org-capture Nick Dokos -- strict thread matches above, loose matches on Subject: below -- 2012-01-06 0:21 How to debug "org-clock-display: Args out of range: [48230 48230 48230 38618 38618 0 0 0 0 0 ...], 61" Gregor Zattler 2012-01-06 1:01 ` Bernt Hansen 2012-01-12 21:41 ` Gregor Zattler 2012-01-15 23:07 ` Bernt Hansen 2012-10-11 12:51 how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13? Gregor Zattler 2012-10-11 14:13 ` Memnon Anon 2012-10-11 15:20 ` Gregor Zattler 2012-10-12 15:14 ` Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] (was: Re: how to customise Emacs to recognise 13.10. as 13th of October this year instead of 2010-10-13?) Gregor Zattler 2012-10-12 16:24 ` Bug: org-read-date: problem with year in dotted european date input [7.9.2 (release_7.9.2-436-g9b11e6 @ /home/grfz/src/org-mode/lisp/)] Nicolas Goaziou 2012-10-13 8:12 ` Gregor Zattler 2012-10-13 10:10 ` Nicolas Goaziou 2012-10-13 18:44 ` Gregor Zattler 2012-10-14 6:01 ` Carsten Dominik 2012-10-14 7:57 ` Nicolas Goaziou 2012-10-15 6:39 ` Carsten Dominik 2012-10-15 11:06 ` Nicolas Goaziou 2013-01-24 12:32 How to track down "No heading for this item in buffer or region."? Gregor Zattler 2013-01-24 12:44 ` Bastien 2013-01-24 16:23 ` Gregor Zattler 2013-01-24 19:07 ` Bastien 2013-01-24 19:24 ` Bastien 2013-01-24 19:35 ` Nick Dokos 2013-01-24 20:29 ` Bastien 2013-01-25 5:20 ` Nick Dokos 2013-01-25 16:11 ` J. David Boyd 2013-01-26 10:51 ` Bastien 2013-01-26 16:45 ` Nick Dokos 2013-01-31 10:43 ` Bastien
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).