Add formula as an expression setters to ses-setq.

This commit is contained in:
Vincent Belaïche 2024-12-24 10:32:51 +01:00 committed by Vincent Belaïche
parent e1f6a02022
commit ed25af44d3

View file

@ -4090,7 +4090,7 @@ Use `math-format-value' as a printer for Calc objects."
(setq value (car arglist)
arglist (cdr arglist))
(pcase value
((or 'sv 'sf 'rcv 'rcf)
((or 'sv 'sf 'rcv 'rcf 'sfq 'rcfq)
(setq undo-list (append (list value ::) undo-list)))
(_ (error "Invalid setter %S" value)))
value))
@ -4171,6 +4171,29 @@ Use `math-format-value' as a printer for Calc objects."
cell (ses-get-cell row col)
sym (ses-cell-symbol cell))
. #2#)
('sfq
(setq sym (pop arglist)
new-formula (pop arglist)
undo-chunk (list new-formula sym))
(or (ses-is-cell-sym-p sym)
(error "Not a SES cell symbol %S" sym))
(setq row (ses-sym-rowcol sym)
col (cdr row)
row (car row)
new-formula (eval new-formula)
cell (ses-get-cell row col))
. #2#)
('rcfq
(setq row (pop arglist)
col (pop arglist)
new-formula (pop arglist)
undo-chunk (list new-formula col row)
row (eval row)
col (eval col)
new-formula (eval new-formula)
cell (ses-get-cell row col)
sym (ses-cell-symbol cell))
. #2#)
(_ (error "INTERNAL"))))
(ses-write-cells)
value))