From: Daniele Nicolodi <daniele@grinta.net> To: Org Mode List <emacs-orgmode@gnu.org> Subject: Bug in org-table--set-calc-mode? Date: Mon, 19 Oct 2020 17:38:17 +0200 Message-ID: <6d8c15c2-d1b0-d913-df39-c60381cff70b@grinta.net> (raw) 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
next reply other threads:[~2020-10-19 16:39 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-19 15:38 Daniele Nicolodi [this message] 2020-10-20 13:30 ` [PATCH] org-table: Add mode flag to enable Calc units simplification mode Daniele Nicolodi 2020-10-20 13:44 ` Eric S Fraga 2020-10-20 14:00 ` Daniele Nicolodi 2020-10-20 14:22 ` Eric S Fraga 2020-10-20 14:19 ` Eric S Fraga 2020-10-20 14:32 ` Daniele Nicolodi 2020-10-20 14:53 ` Daniele Nicolodi 2020-10-20 15:35 ` Eric S Fraga 2020-10-20 15:35 ` Eric S Fraga 2020-10-21 15:57 ` Daniele Nicolodi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://orgmode.org * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=6d8c15c2-d1b0-d913-df39-c60381cff70b@grinta.net \ --to=daniele@grinta.net \ --cc=emacs-orgmode@gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Org-mode mailing list This inbox may be cloned and mirrored by anyone: git clone --mirror https://orgmode.org/list/0 list/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 list list/ https://orgmode.org/list \ emacs-orgmode@gnu.org public-inbox-index list Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.yhetil.org/yhetil.emacs.orgmode nntp://news.gmane.io/gmane.emacs.orgmode AGPL code for this site: git clone https://public-inbox.org/public-inbox.git