Merge branch 'master' of orgmode.org:org-mode

This commit is contained in:
Bastien Guerry 2013-01-10 14:37:58 +01:00
commit 535750d705
3 changed files with 52 additions and 37 deletions

View File

@ -14313,8 +14313,10 @@ hline)
@node rownames, shebang, colnames, Specific header arguments
@subsubsection @code{:rownames}
The @code{:rownames} header argument can take on the values @code{yes}
or @code{no}, with a default value of @code{no}.
The @code{:rownames} header argument can take on the values @code{yes} or
@code{no}, with a default value of @code{no}. Note that Emacs Lisp code
blocks ignore the @code{:rownames} header argument entirely given the ease
with which tables with row names may be handled directly in Emacs Lisp.
@itemize @bullet
@item @code{no}

View File

@ -3522,33 +3522,40 @@ CONTENTS is nil."
;; Use `:raw-value' if specified.
(or (org-element-property :raw-value timestamp)
;; Otherwise, build timestamp string.
(let ((build-ts-string
;; Build an Org timestamp string from TIME. ACTIVEP is
;; non-nil when time stamp is active. If WITH-TIME-P is
;; non-nil, add a time part. HOUR-END and MINUTE-END
;; specify a time range in the timestamp. REPEAT-STRING
;; is the repeater string, if any.
(lambda (time activep
&optional with-time-p hour-end minute-end repeat-string)
(let ((ts (format-time-string
(funcall (if with-time-p 'cdr 'car)
org-time-stamp-formats)
time)))
(when (and hour-end minute-end)
(string-match "[012]?[0-9]:[0-5][0-9]" ts)
(setq ts
(replace-match
(format "\\&-%02d:%02d" hour-end minute-end)
nil nil ts)))
(unless activep (setq ts (format "[%s]" (substring ts 1 -1))))
(when (org-string-nw-p repeat-string)
(setq ts (concat (substring ts 0 -1)
" "
repeat-string
(substring ts -1))))
;; Return value.
ts)))
(type (org-element-property :type timestamp)))
(let* ((repeat-string
(concat
(case (org-element-property :repeater-type timestamp)
(cumulate "+") (catch-up "++") (restart ".+"))
(let ((val (org-element-property :repeater-value timestamp)))
(and val (number-to-string val)))
(case (org-element-property :repeater-unit timestamp)
(hour "h") (day "d") (week "w") (month "m") (year "y"))))
(build-ts-string
;; Build an Org timestamp string from TIME. ACTIVEP is
;; non-nil when time stamp is active. If WITH-TIME-P is
;; non-nil, add a time part. HOUR-END and MINUTE-END
;; specify a time range in the timestamp. REPEAT-STRING
;; is the repeater string, if any.
(lambda (time activep &optional with-time-p hour-end minute-end)
(let ((ts (format-time-string
(funcall (if with-time-p 'cdr 'car)
org-time-stamp-formats)
time)))
(when (and hour-end minute-end)
(string-match "[012]?[0-9]:[0-5][0-9]" ts)
(setq ts
(replace-match
(format "\\&-%02d:%02d" hour-end minute-end)
nil nil ts)))
(unless activep (setq ts (format "[%s]" (substring ts 1 -1))))
(when (org-string-nw-p repeat-string)
(setq ts (concat (substring ts 0 -1)
" "
repeat-string
(substring ts -1))))
;; Return value.
ts)))
(type (org-element-property :type timestamp)))
(case type
((active inactive)
(let* ((minute-start (org-element-property :minute-start timestamp))
@ -3569,14 +3576,7 @@ CONTENTS is nil."
(eq type 'active)
(and hour-start minute-start)
(and time-range-p hour-end)
(and time-range-p minute-end)
(concat
(case (org-element-property :repeater-type timestamp)
(cumulate "+") (catch-up "++") (restart ".+"))
(let ((val (org-element-property :repeater-value timestamp)))
(and val (number-to-string val)))
(case (org-element-property :repeater-unit timestamp)
(hour "h") (day "d") (week "w") (month "m") (year "y"))))))
(and time-range-p minute-end))))
((active-range inactive-range)
(let ((minute-start (org-element-property :minute-start timestamp))
(minute-end (org-element-property :minute-end timestamp))

View File

@ -2272,6 +2272,19 @@ DEADLINE: <2012-01-01> SCHEDULED: <2012-01-01> CLOSED: [2012-01-01]\n"))))
'(timestamp
(:type active :year-start 2012 :month-start 3 :day-start 29
:repeater-type cumulate :repeater-value 1 :repeater-unit year))
nil)))
;; Timestamp range with repeater interval
(should (equal (org-test-parse-and-interpret
"<2012-03-29 Thu +1y>--<2012-03-30 Thu +1y>")
"<2012-03-29 Thu +1y>--<2012-03-30 Thu +1y>\n"))
(should
(string-match
"<2012-03-29 .* \\+1y>--<2012-03-30 .* \\+1y>"
(org-element-timestamp-interpreter
'(timestamp
(:type active-range :year-start 2012 :month-start 3 :day-start 29
:year-end 2012 :month-end 3 :day-end 30 :repeater-type cumulate
:repeater-value 1 :repeater-unit year))
nil))))
(ert-deftest test-org-element/verse-block-interpreter ()