[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] org-table: Add mode flag to enable Calc units simplification mod
From: |
Daniele Nicolodi |
Subject: |
[PATCH] org-table: Add mode flag to enable Calc units simplification mode |
Date: |
Tue, 20 Oct 2020 15:30:00 +0200 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.12.1 |
Hello,
attached there are a few patches reworking the code, fixing the bug, and
introducing a new mode flag to enable Calc's units simplification mode
as discussed in a recent thread on the mailing list. I haven't updated
the documentation. I can do it once we agree that this feature is a
good idea.
Cheers,
Dan
On 19/10/2020 17:38, Daniele Nicolodi wrote:
> Hello,
>
> I am hacking org-table-eval-formula (see thread about monetary values in
> org-tables) which uses this inline function:
>
> (defsubst org-table--set-calc-mode (var &optional value)
> (if (stringp var)
> (setq var (assoc var '(("D" calc-angle-mode deg)
> ("R" calc-angle-mode rad)
> ("F" calc-prefer-frac t)
> ("S" calc-symbolic-mode t)))
> value (nth 2 var) var (nth 1 var)))
> (if (memq var org-tbl-calc-modes)
> (setcar (cdr (memq var org-tbl-calc-modes)) value)
> (cons var (cons value org-tbl-calc-modes)))
> org-tbl-calc-modes)
>
> which I am not able to understand or which is not correct.
>
> The first (if ...) does some value substitutions, however, IIUC the
> second (if ...) sets a new value for an entry in the org-tbl-calc-modes
> plist if the entry is already present and builds a new plist with the
> entry prepended if the entry is not there. However, the original plist
> is returned and not the one with the new entry prepended.
>
> It does not seem to be the intended behavior.
>
> Shouldn't this be simply:
>
> (defsubst org-table--set-calc-mode (var &optional value)
> (if (stringp var)
> (setq var (assoc var '(("D" calc-angle-mode deg)
> ("R" calc-angle-mode rad)
> ("F" calc-prefer-frac t)
> ("S" calc-symbolic-mode t)))
> value (nth 2 var) var (nth 1 var)))
> (plist-put org-tbl-calc-modes var value))
>
> or, better, the code refactored to do not use this function?
>
> Cheers,
> Dan
>
0001-org-table-Fix-table-formula-mode-string-handling.patch
Description: Text document
0003-org-table-Add-mode-flag-to-enable-Calc-units-simplif.patch
Description: Text document
0002-org-table-Simplify-mode-string-parsing.patch
Description: Text document
- Bug in org-table--set-calc-mode?, Daniele Nicolodi, 2020/10/19
- [PATCH] org-table: Add mode flag to enable Calc units simplification mode,
Daniele Nicolodi <=
- Re: [PATCH] org-table: Add mode flag to enable Calc units simplification mode, Eric S Fraga, 2020/10/20
- Re: [PATCH] org-table: Add mode flag to enable Calc units simplification mode, Eric S Fraga, 2020/10/20
- Re: [PATCH] org-table: Add mode flag to enable Calc units simplification mode, Daniele Nicolodi, 2020/10/20
- Re: [PATCH] org-table: Add mode flag to enable Calc units simplification mode, Daniele Nicolodi, 2020/10/20
- Re: [PATCH] org-table: Add mode flag to enable Calc units simplification mode, Eric S Fraga, 2020/10/20
- Re: [PATCH] org-table: Add mode flag to enable Calc units simplification mode, Eric S Fraga, 2020/10/20
Re: [PATCH] org-table: Add mode flag to enable Calc units simplification mode, Daniele Nicolodi, 2020/10/21