mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Add formula as an expression setters to ses-setq.
This commit is contained in:
parent
e1f6a02022
commit
ed25af44d3
1 changed files with 24 additions and 1 deletions
25
lisp/ses.el
25
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))
|
||||
|
|
|
|||
Loading…
Reference in a new issue