summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2015-08-22 00:16:57 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2015-08-22 00:25:04 +0200
commite1ac95736cc41ffc93d77eeff2390ea90c34072b (patch)
tree837f6b9835228c2a52da176f6d08c695369a5985
parent2316925ecb4f7c1cdf4b9c452e7a6cd590ece95b (diff)
downloadorg-mode-e1ac95736cc41ffc93d77eeff2390ea90c34072b.tar.gz
org-datetree: Fix datetree capture
* lisp/org-datetree.el (org-datetree-add-timestamp): Clarify docstring. (org-datetree-insert-line): Leave point on new entry.
-rw-r--r--lisp/org-datetree.el45
1 files changed, 24 insertions, 21 deletions
diff --git a/lisp/org-datetree.el b/lisp/org-datetree.el
index 77dfd7d..e15d785 100644
--- a/lisp/org-datetree.el
+++ b/lisp/org-datetree.el
@@ -39,7 +39,8 @@ property (any value), the date tree will become a subtree under that entry,
so the base level will be properly adjusted.")
(defcustom org-datetree-add-timestamp nil
- "When non-nil, add a time stamp when create a datetree entry."
+ "When non-nil, add a time stamp matching date of entry.
+Added time stamp is active unless value is `inactive'."
:group 'org-capture
:version "24.3"
:type '(choice
@@ -131,28 +132,30 @@ tree can be found."
(org-datetree-insert-line year month day)))))
(defun org-datetree-insert-line (year &optional month day)
- (let ((pos (point)) ts-type)
- (skip-chars-backward " \t\n")
- (delete-region (point) pos)
- (insert "\n" (make-string org-datetree-base-level ?*) " \n")
- (backward-char 1)
- (if month (org-do-demote))
- (if day (org-do-demote))
- (insert (format "%d" year))
- (when month
- (insert (format "-%02d" month))
- (if day
- (insert (format "-%02d %s"
- day (format-time-string
- "%A" (encode-time 0 0 0 day month year))))
- (insert (format " %s"
- (format-time-string
- "%B" (encode-time 0 0 0 1 month year))))))
- (when (and day (setq ts-type org-datetree-add-timestamp))
+ (delete-region (save-excursion (skip-chars-backward " \t\n") (point)) (point))
+ (insert "\n" (make-string org-datetree-base-level ?*) " \n")
+ (backward-char)
+ (when month (org-do-demote))
+ (when day (org-do-demote))
+ (insert (format "%d" year))
+ (when month
+ (insert
+ (format "-%02d" month)
+ (if day
+ (format "-%02d %s"
+ day
+ (format-time-string "%A" (encode-time 0 0 0 day month year)))
+ (format " %s"
+ (format-time-string "%B" (encode-time 0 0 0 1 month year))))))
+ (when (and day org-datetree-add-timestamp)
+ (save-excursion
(insert "\n")
(org-indent-line)
- (org-insert-time-stamp (encode-time 0 0 0 day month year) nil ts-type))
- (beginning-of-line 1)))
+ (org-insert-time-stamp
+ (encode-time 0 0 0 day month year)
+ nil
+ (eq org-datetree-add-timestamp 'inactive))))
+ (beginning-of-line))
(defun org-datetree-file-entry-under (txt date)
"Insert a node TXT into the date tree under DATE."