Re: [O] Regression in `org-todo'

2012-04-02 Thread Michael Strey
Hi Moritz  Bastien,

This bug fix seems not to be complete.  At least switching the todo
state in repeated tasks and in conjunction with org-checklist didn't
work for me as it used to before the last update.  PFA a patch that
solved the problem for me.

ATTENTION: Please check this patch very carefully.  This is my first
contribution to org-mode and my first patch ever.  My lisp knowledge is
rudimentary and I do not really understand the code.

Thanks to all developers for your work!

Best regards
Michael Strey


On Sun, Apr 01, 2012 at 05:01:12PM +0200, Moritz Ulrich wrote:
 Commit 6cbf1f417222321a47848a7368427ba8a22fe3a5 renames variable
 `last-state' to `org-last-state' in org.el. This change isn't
 reflected in function `org-todo'.
 
 That causes the following regression: Toggling a TODO state to DONE on
 a headline via C-c C-t (`org-todo') results in: Symbol's value as
 variable is void: org-last-state.
 This is reproducible in latest HEAD and even in tag 'release_7.8.07'.
 
 M-x emacs-version: GNU Emacs 24.0.94.1 (i386-apple-darwin11.3.0, NS
 apple-appkit-1138.32) of 2012-03-12 on moritz-macbook.local
 
 The attached patch contains a simple (two line) fix.
From 554b1ece898c9aaff47e729d6fa746ec21b5eefd Mon Sep 17 00:00:00 2001
From: Michael Strey mst...@strey.biz
Date: Mon, 2 Apr 2012 16:21:34 +0200
Subject: [PATCH] s/state/org-state/

---
 contrib/lisp/org-checklist.el |2 +-
 lisp/org.el   |   14 +++---
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/contrib/lisp/org-checklist.el b/contrib/lisp/org-checklist.el
index a974874..03c7547 100644
--- a/contrib/lisp/org-checklist.el
+++ b/contrib/lisp/org-checklist.el
@@ -129,7 +129,7 @@ of checkbox items
 (a2ps-buffer)
 
 (defun org-checklist ()
-  (when (member state org-done-keywords)
+  (when (member org-state org-done-keywords)
 (org-make-checklist-export)
 (org-reset-checkbox-state-maybe)))
 
diff --git a/lisp/org.el b/lisp/org.el
index 9183743..bf30497 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -2429,7 +2429,7 @@ When nil, only the date will be recorded.
 
 (defcustom org-log-note-headings
   '((done .  CLOSING NOTE %t)
-(state . State %-12s from %-12S %t)
+(org-state . State %-12s from %-12S %t)
 (note .  Note taken on %t)
 (reschedule .  Rescheduled from %S on %t)
 (delschedule .  Not scheduled, was %S on %t)
@@ -2458,7 +2458,7 @@ agenda log mode depends on the format of these entries.
  (cons (const :tag Heading when closing an item done) string)
  (cons (const :tag
   Heading when changing todo state (todo sequence only)
-  state) string)
+  org-state) string)
  (cons (const :tag Heading when just taking a note note) string)
  (cons (const :tag Heading when clocking out clock-out) string)
  (cons (const :tag Heading when an item is no longer scheduled 
delschedule) string)
@@ -11437,10 +11437,10 @@ For calling through lisp, arg is also interpreted in 
the following way:
;; It is now done, and it was not done before
(org-add-planning-info 'closed (org-current-effective-time))
(if (and (not dolog) (eq 'note org-log-done))
-   (org-add-log-setup 'done state this 'findpos 'note)))
+   (org-add-log-setup 'done org-state this 'findpos 'note)))
  (when (and org-state dolog)
;; This is a non-nil state, and we need to log it
-   (org-add-log-setup 'state org-state this 'findpos dolog)))
+   (org-add-log-setup 'org-state org-state this 'findpos dolog)))
;; Fixup tag positioning
(org-todo-trigger-tag-changes org-state)
(and org-auto-align-tags (not org-setting-tags) (org-set-tags nil 
t))
@@ -11938,7 +11938,7 @@ This function is run automatically after each state 
change to a DONE state.
 (org-todo-log-states nil)
 re type n what ts time to-state)
 (when repeat
-  (if (eq org-log-repeat t) (setq org-log-repeat 'state))
+  (if (eq org-log-repeat t) (setq org-log-repeat 'org-state))
   (setq to-state (or (org-entry-get nil REPEAT_TO_STATE)
 org-todo-repeat-to-state))
   (unless (and to-state (member to-state org-todo-keywords-1))
@@ -11955,7 +11955,7 @@ This function is run automatically after each state 
change to a DONE state.
;; make sure we take a note, not only a time stamp
(setq org-log-note-how 'note))
  ;; Set up for taking a record
- (org-add-log-setup 'state (or done-word (car org-done-keywords))
+ (org-add-log-setup 'org-state (or done-word (car org-done-keywords))
 org-last-state
 'findpos org-log-repeat)))
   (org-back-to-heading t)
@@ -12377,7 +12377,7 @@ EXTRA is additional text that will be inserted 

Re: [O] Regression in `org-todo'

2012-04-02 Thread Bastien
Hi Michael,

Michael Strey mst...@strey.biz writes:

 This bug fix seems not to be complete.  At least switching the todo
 state in repeated tasks and in conjunction with org-checklist didn't
 work for me as it used to before the last update.  PFA a patch that
 solved the problem for me.

Thanks for reporting this -- this has already been solved in this
commit:

http://orgmode.org/w/?p=org-mode.git;a=commit;h=9d01ca1bf357917de0c496e86405e24c65b5761c

 ATTENTION: Please check this patch very carefully.  This is my first
 contribution to org-mode and my first patch ever.  My lisp knowledge is
 rudimentary and I do not really understand the code.

The rest of the patch isn't relevant as it changes a symbol's name
(s/state/org-state) for which we don't need the value.  

Please test against latest HEAD and tell me if your problem is still
here, it shouldn't.

Thanks!

-- 
 Bastien



Re: [O] Regression in `org-todo'

2012-04-02 Thread Michael Strey
Hi Bastien,

On Mon, Apr 02, 2012 at 05:03:04PM +0200, Bastien wrote:
 ...
 Please test against latest HEAD and tell me if your problem is still
 here, it shouldn't.
 
I confirm that the problem is solved.  Thank you!

It's interesting to see how a bug in a module from the contrib path can
cause strange behaviour of org-mode's core functions.

Best regards
Michael Strey



Re: [O] Regression in `org-todo'

2012-04-02 Thread Bastien
Hi Michael,

Michael Strey mst...@strey.biz writes:

 It's interesting to see how a bug in a module from the contrib path can
 cause strange behaviour of org-mode's core functions.

Indeed.  Perhaps org-checklist.el should be part of core.

Opinions?

-- 
 Bastien



Re: [O] Regression in `org-todo'

2012-04-02 Thread Nick Dokos
Michael Strey mst...@strey.biz wrote:

 Hi Bastien,
 
 On Mon, Apr 02, 2012 at 05:03:04PM +0200, Bastien wrote:
  ...
  Please test against latest HEAD and tell me if your problem is still
  here, it shouldn't.
  
 I confirm that the problem is solved.  Thank you!
 
 It's interesting to see how a bug in a module from the contrib path can
 cause strange behaviour of org-mode's core functions.
 

There is no distinction between contrib and core. Once a module is
loaded (wherever it comes from), it is part of emacs and can cause all
kinds of damage: not just to org, but to the whole running emacs. It's
the price one pays for the convenience of dynamically loading code.  You
can avoid the danger by not loading modules, but then emacs becomes much
less interesting: after all, the e stands for extensible.

And it's not just emacs: if you load a module in linux, it can muck
around with kernel memory and crash your system in no time at all.

The whole microkernel approach was an attempt to have that cake and eat
it too: safely loading modules (they run in a separate address space and
can't touch core kernel memory). Nobody has found a way to make it as
fast as a monolithic kernel though (although people have argued forever
about it: the Tanenbaum-Torvalds debate centered exactly around that
point - after you subtract the flaming).

Nick



Re: [O] Regression in `org-todo'

2012-04-02 Thread Nick Dokos
Bastien b...@altern.org wrote:

 Hi Michael,
 
 Michael Strey mst...@strey.biz writes:
 
  It's interesting to see how a bug in a module from the contrib path can
  cause strange behaviour of org-mode's core functions.
 
 Indeed.  Perhaps org-checklist.el should be part of core.
 
 Opinions?
 

There might be other reasons to include org-checklist.el in the core,
but as explained in my email to Michael, this is not one of them.

Nick



Re: [O] Regression in `org-todo'

2012-04-02 Thread Bastien
Hi Nick,

Nick Dokos nicholas.do...@hp.com writes:

 Michael Strey mst...@strey.biz wrote:

 Hi Bastien,
 
 On Mon, Apr 02, 2012 at 05:03:04PM +0200, Bastien wrote:
  ...
  Please test against latest HEAD and tell me if your problem is still
  here, it shouldn't.
  
 I confirm that the problem is solved.  Thank you!
 
 It's interesting to see how a bug in a module from the contrib path can
 cause strange behaviour of org-mode's core functions.
 

 There is no distinction between contrib and core. Once a module is
 loaded (wherever it comes from), it is part of emacs and can cause all
 kinds of damage: not just to org, but to the whole running emacs. It's
 the price one pays for the convenience of dynamically loading code.  You
 can avoid the danger by not loading modules, but then emacs becomes much
 less interesting: after all, the e stands for extensible.

If the features provided by org-checklist.el are useful to many people, 
including them in core seems quite natural.  I don't use it myself, I'm
just wondering how people do.  But I agree with you here that we should
not move things into core inconsiderately.

-- 
 Bastien



Re: [O] Regression in `org-todo'

2012-04-02 Thread Bernt Hansen
Bastien b...@altern.org writes:

 If the features provided by org-checklist.el are useful to many people, 
 including them in core seems quite natural.  I don't use it myself, I'm
 just wondering how people do.  But I agree with you here that we should
 not move things into core inconsiderately.

Hi Bastien,

I use org-checklist for the RESET_CHECK_BOXES functionality on repeating
tasks.

I have lots of repeating tasks with checkboxes to mark what needs to be
completed and the RESET_CHECK_BOXES property clears all of the boxes for
the next repeating event.

My weekly review is one of these types of tasks.  I just walk down the
list and check off the stuff as I do it, and when I'm done I mark the
task done.  All the boxes are ready to be checked again the next time it
comes up.

Regards,
Bernt



[O] Regression in `org-todo'

2012-04-01 Thread Moritz Ulrich
Commit 6cbf1f417222321a47848a7368427ba8a22fe3a5 renames variable
`last-state' to `org-last-state' in org.el. This change isn't
reflected in function `org-todo'.

That causes the following regression: Toggling a TODO state to DONE on
a headline via C-c C-t (`org-todo') results in: Symbol's value as
variable is void: org-last-state.
This is reproducible in latest HEAD and even in tag 'release_7.8.07'.

M-x emacs-version: GNU Emacs 24.0.94.1 (i386-apple-darwin11.3.0, NS
apple-appkit-1138.32) of 2012-03-12 on moritz-macbook.local

The attached patch contains a simple (two line) fix.


Cheers,
Moritz Ulrich

-- 
Moritz Ulrich


fix-org-last-state.patch
Description: Binary data