[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] org-table: Add mode flag to enable Calc units simplification
From: |
Daniele Nicolodi |
Subject: |
Re: [PATCH] org-table: Add mode flag to enable Calc units simplification mode |
Date: |
Wed, 21 Oct 2020 17:57:01 +0200 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.12.1 |
Hello,
after working on this I realized that the org-tbl-calc-modes variables
is used only locally despite being declare globally. Maybe a remnant
from pre-lexical-binding times. Attached is a patch (on top of the
others one in this thread) that simplifies things a little.
Cheers,
Dan
On 20/10/2020 15:30, Daniele Nicolodi wrote:
> 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
>>
>
0004-org-table-Remove-unused-org-tbl-calc-modes-variable.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, 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, 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 <=