diff --git a/lisp/ses.el b/lisp/ses.el index 8cd717b8e14..1fa7d01e8fa 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -4082,7 +4082,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)) @@ -4163,6 +4163,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))