aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Belaïche2024-12-24 10:32:51 +0100
committerVincent Belaïche2025-06-21 21:13:22 +0200
commited25af44d354fa8e87fbb4d62e1ed666847cbc4e (patch)
treed3d73bf9e16bcb9b7eef2c5e728758a98640ffdc
parente1f6a02022b3071b084fb1eaba948f9844f64b22 (diff)
downloademacs-ed25af44d354fa8e87fbb4d62e1ed666847cbc4e.tar.gz
emacs-ed25af44d354fa8e87fbb4d62e1ed666847cbc4e.zip
Add formula as an expression setters to ses-setq.
-rw-r--r--lisp/ses.el25
1 files changed, 24 insertions, 1 deletions
diff --git a/lisp/ses.el b/lisp/ses.el
index 3dd3ab3dc17..9e284b51fb5 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -4090,7 +4090,7 @@ Use `math-format-value' as a printer for Calc objects."
4090 (setq value (car arglist) 4090 (setq value (car arglist)
4091 arglist (cdr arglist)) 4091 arglist (cdr arglist))
4092 (pcase value 4092 (pcase value
4093 ((or 'sv 'sf 'rcv 'rcf) 4093 ((or 'sv 'sf 'rcv 'rcf 'sfq 'rcfq)
4094 (setq undo-list (append (list value ::) undo-list))) 4094 (setq undo-list (append (list value ::) undo-list)))
4095 (_ (error "Invalid setter %S" value))) 4095 (_ (error "Invalid setter %S" value)))
4096 value)) 4096 value))
@@ -4171,6 +4171,29 @@ Use `math-format-value' as a printer for Calc objects."
4171 cell (ses-get-cell row col) 4171 cell (ses-get-cell row col)
4172 sym (ses-cell-symbol cell)) 4172 sym (ses-cell-symbol cell))
4173 . #2#) 4173 . #2#)
4174 ('sfq
4175 (setq sym (pop arglist)
4176 new-formula (pop arglist)
4177 undo-chunk (list new-formula sym))
4178 (or (ses-is-cell-sym-p sym)
4179 (error "Not a SES cell symbol %S" sym))
4180 (setq row (ses-sym-rowcol sym)
4181 col (cdr row)
4182 row (car row)
4183 new-formula (eval new-formula)
4184 cell (ses-get-cell row col))
4185 . #2#)
4186 ('rcfq
4187 (setq row (pop arglist)
4188 col (pop arglist)
4189 new-formula (pop arglist)
4190 undo-chunk (list new-formula col row)
4191 row (eval row)
4192 col (eval col)
4193 new-formula (eval new-formula)
4194 cell (ses-get-cell row col)
4195 sym (ses-cell-symbol cell))
4196 . #2#)
4174 (_ (error "INTERNAL")))) 4197 (_ (error "INTERNAL"))))
4175 (ses-write-cells) 4198 (ses-write-cells)
4176 value)) 4199 value))