From ed25af44d354fa8e87fbb4d62e1ed666847cbc4e Mon Sep 17 00:00:00 2001 From: Vincent Belaïche Date: Tue, 24 Dec 2024 10:32:51 +0100 Subject: Add formula as an expression setters to ses-setq. --- lisp/ses.el | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) 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." (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)) -- cgit v1.2.1