* Bug: Table formula does not copy time interval correctly [8.2.10 (release_8.2.10 @ /usr/share/emacs/25.0.94/lisp/org/)]
@ 2016-07-04 16:28 Rares Vernica
2016-07-07 6:52 ` Michael Brand
0 siblings, 1 reply; 4+ messages in thread
From: Rares Vernica @ 2016-07-04 16:28 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1.1: Type: text/plain, Size: 3430 bytes --]
Remember to cover the basics, that is, what you expected to happen and
what in fact did happen. You don't know how to make a good report? See
http://orgmode.org/manual/Feedback.html#Feedback
Your bug report will be posted to the Org-mode mailing list.
------------------------------------------------------------------------
In the following table:
| [2016-07-03 Sun]--[2016-07-04 Mon] | 1d | d |
| [2016-07-03 Sun]--[2016-07-05 Tue] | 2d | 2 d |
#+TBLFM: $3=$2
The second column is computed by pressing C-u C-c C-y. This sequence
calculates the time difference between the time-stamps in the previous
column and inserts the difference in the current column. This is fine.
Now, for the third column, I insert the formula listed at the bottom of
the table. Once applied, the result of the formula for the fist row is
just "d" instead of "1d". So, it seems that the value is not copied
correctly.
This seems to work fine if the time-stamp range is greater than one
day. Also, for the second row, the value is copied correctly but there
is an extra " " inserted between the number and the "d" letter. This
might not be desirable.
Appending "D" at the end of the formula, yields the same result:
| [2016-07-03 Sun]--[2016-07-04 Mon] | 1d | d |
| [2016-07-03 Sun]--[2016-07-05 Tue] | 2d | 2 d |
#+TBLFM: $3=$2;D
I also tried appending "T" at the end of the formula:
| [2016-07-03 Sun]--[2016-07-04 Mon] | 1d | 00:00:01 |
| [2016-07-03 Sun]--[2016-07-05 Tue] | 2d | 00:00:02 |
#+TBLFM: $3=$2;T
The numeric value is copied correctly but the days are now changed to
seconds.
I attached a dribble file which allows you to reproduce the first row in
the first table.
Emacs : GNU Emacs 25.0.94.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.20.4)
of 2016-05-18
Package: Org-mode version 8.2.10 (release_8.2.10 @
/usr/share/emacs/25.0.94/lisp/org/)
current state:
==============
(setq
org-tab-first-hook '(org-hide-block-toggle-maybe
org-src-native-tab-command-maybe
org-babel-hide-result-toggle-maybe
org-babel-header-arg-expand)
org-speed-command-hook '(org-speed-command-default-hook
org-babel-speed-command-hook)
org-occur-hook '(org-first-headline-recenter)
org-metaup-hook '(org-babel-load-in-session-maybe)
org-confirm-shell-link-function 'yes-or-no-p
org-after-todo-state-change-hook '(org-clock-out-if-current)
org-src-mode-hook '(org-src-babel-configure-edit-buffer
org-src-mode-configure-edit-buffer)
org-agenda-before-write-hook '(org-agenda-add-entry-text)
org-babel-pre-tangle-hook '(save-buffer)
org-mode-hook '(#[nil "\300\301\302\303\304$\207"
[org-add-hook change-major-mode-hook org-show-block-all
append local]
5]
#[nil "\300\301\302\303\304$\207"
[org-add-hook change-major-mode-hook
org-babel-show-result-all append local]
5]
org-babel-result-hide-spec org-babel-hide-all-hashes)
org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point
org-babel-execute-safely-maybe)
org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers
org-cycle-hide-inline-tasks org-cycle-show-empty-lines
org-optimize-window-after-visibility-change)
org-confirm-elisp-link-function 'yes-or-no-p
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
)
[-- Attachment #1.2: Type: text/html, Size: 4089 bytes --]
[-- Attachment #2: org-copy-bug.dribble --]
[-- Type: application/octet-stream, Size: 107 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Bug: Table formula does not copy time interval correctly [8.2.10 (release_8.2.10 @ /usr/share/emacs/25.0.94/lisp/org/)]
2016-07-04 16:28 Bug: Table formula does not copy time interval correctly [8.2.10 (release_8.2.10 @ /usr/share/emacs/25.0.94/lisp/org/)] Rares Vernica
@ 2016-07-07 6:52 ` Michael Brand
2016-07-08 4:06 ` Rares Vernica
0 siblings, 1 reply; 4+ messages in thread
From: Michael Brand @ 2016-07-07 6:52 UTC (permalink / raw)
To: Rares Vernica; +Cc: Org Mode
Hi Rares
On Mon, Jul 4, 2016 at 6:28 PM, Rares Vernica <rvernica@gmail.com> wrote:
> | [2016-07-03 Sun]--[2016-07-04 Mon] | 1d | d |
> | [2016-07-03 Sun]--[2016-07-05 Tue] | 2d | 2 d |
> #+TBLFM: $3=$2
A Calc formula interprets field values as a symbolic expressions to
calculate with. To copy literally one needs a Lisp formula:
| [2016-07-03 Sun]--[2016-07-04 Mon] | 1d | 1d |
| [2016-07-03 Sun]--[2016-07-05 Tue] | 2d | 2d |
#+TBLFM: $3 = '(identity $2)
Michael
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Bug: Table formula does not copy time interval correctly [8.2.10 (release_8.2.10 @ /usr/share/emacs/25.0.94/lisp/org/)]
2016-07-07 6:52 ` Michael Brand
@ 2016-07-08 4:06 ` Rares Vernica
2016-07-10 14:38 ` Michael Brand
0 siblings, 1 reply; 4+ messages in thread
From: Rares Vernica @ 2016-07-08 4:06 UTC (permalink / raw)
To: Michael Brand; +Cc: Org Mode
Michael Brand <michael.ch.brand@gmail.com> writes:
> Hi Rares
>
> On Mon, Jul 4, 2016 at 6:28 PM, Rares Vernica <rvernica@gmail.com> wrote:
>
>> | [2016-07-03 Sun]--[2016-07-04 Mon] | 1d | d |
>> | [2016-07-03 Sun]--[2016-07-05 Tue] | 2d | 2 d |
>> #+TBLFM: $3=$2
>
> A Calc formula interprets field values as a symbolic expressions to
> calculate with. To copy literally one needs a Lisp formula:
>
> | [2016-07-03 Sun]--[2016-07-04 Mon] | 1d | 1d |
> | [2016-07-03 Sun]--[2016-07-05 Tue] | 2d | 2d |
>
> #+TBLFM: $3 = '(identity $2)
That did the trick, thanks!
Just to clarify, how would you fix this:
| [2016-07-05 Tue]--[2016-07-06 Wed] | 1d | vsum(d) |
| [2016-07-06 Wed]--[2016-07-07 Thu] | 1d | 2 d |
#+TBLFM: $3=vsum(@1$-1..@0$-1)
Notice the "vsum(d)" instead of the expected "1 d". How would you add
"identity" here?
Thanks!
Rares
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Bug: Table formula does not copy time interval correctly [8.2.10 (release_8.2.10 @ /usr/share/emacs/25.0.94/lisp/org/)]
2016-07-08 4:06 ` Rares Vernica
@ 2016-07-10 14:38 ` Michael Brand
0 siblings, 0 replies; 4+ messages in thread
From: Michael Brand @ 2016-07-10 14:38 UTC (permalink / raw)
To: Rares Vernica; +Cc: Org Mode
Hi Rares
On Fri, Jul 8, 2016 at 6:06 AM, Rares Vernica <rvernica@gmail.com> wrote:
> Just to clarify, how would you fix this:
>
> | [2016-07-05 Tue]--[2016-07-06 Wed] | 1d | vsum(d) |
> | [2016-07-06 Wed]--[2016-07-07 Thu] | 1d | 2 d |
> #+TBLFM: $3=vsum(@1$-1..@0$-1)
>
> Notice the "vsum(d)" instead of the expected "1 d".
Depending on the number of fields in a range Org builds just a value
or a Calc vector of values. This is due to the comparison of r1/r2 and
c1/c2 which are the row and column beginning and end of the range in
the function org-table-get-range:
(if (and (not corners-only)
(or (not rangep) (and (= r1 r2) (= c1 c2))))
;; Just one field.
[...]
;; A range, return a vector.
[...])
I can not think of any use case where this should be more useful than
substituting ~(and (= r1 r2) (= c1 c2))~ with ~nil~. But since this
substitution could break existing usage I suggest to add ~vec~ to the
Calc formula:
| [2016-07-05 Tue]--[2016-07-06 Wed] | 1d | d | [d] | d |
| [2016-07-06 Wed]--[2016-07-07 Thu] | 1d | [d, d] | [[d, d]] | 2 d |
#+TBLFM: $3 = @1$2..@0$2 :: $4 = vec(@1$2..@0$2) :: $5 = vsum(vec(@1$2..@0$2))
Michael
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-07-10 14:39 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-04 16:28 Bug: Table formula does not copy time interval correctly [8.2.10 (release_8.2.10 @ /usr/share/emacs/25.0.94/lisp/org/)] Rares Vernica
2016-07-07 6:52 ` Michael Brand
2016-07-08 4:06 ` Rares Vernica
2016-07-10 14:38 ` Michael Brand
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.