瀏覽代碼

Merge commit 'johnw/master'

Conflicts:
	lisp/ChangeLog
Carsten Dominik 15 年之前
父節點
當前提交
23ac361f26
共有 3 個文件被更改,包括 46 次插入22 次删除
  1. 17 0
      lisp/ChangeLog
  2. 20 13
      lisp/org-habit.el
  3. 9 9
      lisp/org.el

+ 17 - 0
lisp/ChangeLog

@@ -1,3 +1,20 @@
+2009-10-22  John Wiegley  <jwiegley@gmail.com>
+
+	* org-habit.el (org-habit-parse-todo): Generate an error if a
+	habit has a scheduled repeat period < 1.
+	(org-habit-get-faces): Fixes to the way that colors are computed.
+	(org-habit-build-graph): The graph wasn't displaying beyond any
+	day that had two completions in it.
+
+	* org.el (org-modules): Made this variable more consistent, since
+	it was referring to Org, OrgMode and Org-mode, whereas the docs
+	for the variable always refer to Org-mode.
+
+2009-10-21  James TD Smith  <ahktenzero@mohorovi.cc>
+
+	* org.el (org-repeat-re): The changed org-repeat-re no longer
+	matched simple +2d type repeaters. Fix it so it does.
+
 2009-10-21  Carsten Dominik  <carsten.dominik@gmail.com>
 
 	* org-latex.el (org-export-latex-preprocess): Protect the vspace

+ 20 - 13
lisp/org-habit.el

@@ -167,6 +167,8 @@ This list represents a \"habit\" for the rest of this module."
 	(error "Habit has no scheduled date"))
       (unless scheduled-repeat
 	(error "Habit has no scheduled repeat period"))
+      (unless (> sr-days 0)
+	(error "Habit's scheduled repeat period is less than 1d"))
       (when (string-match "/\\([0-9]+[dwmy]\\)" scheduled-repeat)
 	(setq dr-days (org-habit-duration-to-days
 		       (match-string-no-properties 1 scheduled-repeat)))
@@ -236,26 +238,29 @@ Habits are assigned colors on the following basis:
   (unless moment (setq moment (current-time)))
   (let* ((scheduled (or scheduled-time (org-habit-scheduled habit)))
 	 (s-repeat (org-habit-scheduled-repeat habit))
-	 (scheduled-end (time-add scheduled (days-to-time s-repeat)))
+	 (scheduled-end (time-add scheduled (days-to-time (1- s-repeat))))
 	 (d-repeat (org-habit-deadline-repeat habit))
 	 (deadline (if (and scheduled-time d-repeat)
 		       (time-add scheduled-time
 				 (days-to-time (- d-repeat s-repeat)))
-		     (org-habit-deadline habit))))
+		     (org-habit-deadline habit)))
+	 (m-days (time-to-days moment))
+	 (s-days (time-to-days scheduled))
+	 (s-end-days (time-to-days scheduled-end))
+	 (d-days (and deadline (time-to-days deadline))))
     (cond
-     ((time-less-p moment scheduled)
+     ((< m-days s-days)
       '(org-habit-clear-face . org-habit-clear-future-face))
-     ((time-less-p moment scheduled-end)
+     ((or (< m-days s-end-days)
+	  (and deadline (< m-days d-days)))
       '(org-habit-ready-face . org-habit-ready-future-face))
-     ((and deadline
-	   (time-less-p moment deadline))
+     ((and deadline (< m-days d-days))
       (if donep
 	  '(org-habit-ready-face . org-habit-ready-future-face)
 	'(org-habit-warning-face . org-habit-warning-future-face)))
-     ((= (time-to-days moment)
-	 (if deadline
-	     (time-to-days deadline)
-	   (time-to-days scheduled-end)))
+     ((= m-days (if deadline
+		    d-days
+		  s-end-days))
       (if donep
 	  '(org-habit-ready-face . org-habit-ready-future-face)
 	'(org-habit-alert-face . org-habit-alert-future-face)))
@@ -298,9 +303,11 @@ Habits are assigned colors on the following basis:
 	(if donep
 	    (progn
 	      (aset graph index ?*)
-	      (setq last-done-date (car done-dates)
-		    done-dates (cdr done-dates)
-		    markedp t))
+	      (setq markedp t)
+	      (while (and done-dates
+			  (= now-days (time-to-days (car done-dates))))
+		(setq last-done-date (car done-dates)
+		      done-dates (cdr done-dates))))
 	  (if todayp
 	      (aset graph index ?!)))
 	(setq face (if (or in-the-past-p

+ 9 - 9
lisp/org.el

@@ -198,40 +198,40 @@ to add the symbol `xyz', and the package must have a call to
 	(const :tag "   rmail:             Links to RMAIL folders/messages" org-rmail)
 	(const :tag "   vm:                Links to VM folders/messages" org-vm)
 	(const :tag "   wl:                Links to Wanderlust folders/messages" org-wl)
-	(const :tag "   w3m:               Special cut/paste from w3m to Org." org-w3m)
+	(const :tag "   w3m:               Special cut/paste from w3m to Org-mode." org-w3m)
 	(const :tag "   mouse:             Additional mouse support" org-mouse)
 
 	(const :tag "C  annotate-file:     Annotate a file with org syntax" org-annotate-file)
 	(const :tag "C  annotation-helper: Call Remember directly from Browser\n\t\t\t(OBSOLETE, use org-protocol)" org-annotation-helper)
-	(const :tag "C  bookmark:          Org links to bookmarks" org-bookmark)
+	(const :tag "C  bookmark:          Org-mode links to bookmarks" org-bookmark)
 	(const :tag "C  browser-url:       Store link, directly from Browser\n\t\t\t(OBSOLETE, use org-protocol)" org-browser-url)
 	(const :tag "C  checklist:         Extra functions for checklists in repeated tasks" org-checklist)
 	(const :tag "C  choose:            Use TODO keywords to mark decisions states" org-choose)
 	(const :tag "C  collector:         Collect properties into tables" org-collector)
 	(const :tag "C  depend:            TODO dependencies for Org-mode\n\t\t\t(PARTIALLY OBSOLETE, see built-in dependency support))" org-depend)
-	(const :tag "C  elisp-symbol:      Org links to emacs-lisp symbols" org-elisp-symbol)
+	(const :tag "C  elisp-symbol:      Org-mode links to emacs-lisp symbols" org-elisp-symbol)
 	(const :tag "C  eval:              Include command output as text" org-eval)
 	(const :tag "C  eval-light:        Evaluate inbuffer-code on demand" org-eval-light)
-	(const :tag "C  expiry:            Expiry mechanism for Org entries" org-expiry)
+	(const :tag "C  expiry:            Expiry mechanism for Org-mode entries" org-expiry)
 	(const :tag "C  exp-bibtex:        Export citations using BibTeX" org-exp-bibtex)
 	(const :tag "C  interactive-query: Interactive modification of tags query\n\t\t\t(PARTIALLY OBSOLETE, see secondary filtering)" org-interactive-query)
 
-        (const :tag "C  invoice            Help manage client invoices in OrgMode" org-invoice)
+        (const :tag "C  invoice            Help manage client invoices in Org-mode" org-invoice)
 
-	(const :tag "C  jira               Add a jira:ticket protocol to Org" org-jira)
-	(const :tag "C  mairix:            Hook mairix search into Org for different MUAs" org-mairix)
+	(const :tag "C  jira               Add a jira:ticket protocol to Org-mode" org-jira)
+	(const :tag "C  mairix:            Hook mairix search into Org-mode for different MUAs" org-mairix)
 	(const :tag "C  mac-iCal           Imports events from iCal.app to the Emacs diary" org-mac-iCal)
 	(const :tag "C  man:               Support for links to manpages in Org-mode" org-man)
 	(const :tag "C  mtags:             Support for muse-like tags" org-mtags)
 	(const :tag "C  panel:             Simple routines for us with bad memory" org-panel)
 	(const :tag "C  R:                 Computation using the R language" org-R)
-	(const :tag "C  registry:          A registry for Org links" org-registry)
+	(const :tag "C  registry:          A registry for Org-mode links" org-registry)
 	(const :tag "C  org2rem:           Convert org appointments into reminders" org2rem)
 	(const :tag "C  screen:            Visit screen sessions through Org-mode links" org-screen)
 	(const :tag "C  special-blocks:    Turn blocks into LaTeX envs and HTML divs" org-special-blocks)
 	(const :tag "C  sqlinsert:         Convert Org-mode tables to SQL insertions" orgtbl-sqlinsert)
 	(const :tag "C  toc:               Table of contents for Org-mode buffer" org-toc)
-	(const :tag "C  track:             Keep up with Org development" org-track)
+	(const :tag "C  track:             Keep up with Org-mode development" org-track)
 	(repeat :tag "External packages" :inline t (symbol :tag "Package"))))
 
 (defcustom org-support-shift-select nil