diff options
| author | Vincent Belaïche | 2024-12-24 10:32:51 +0100 |
|---|---|---|
| committer | Vincent Belaïche | 2025-06-21 21:13:22 +0200 |
| commit | ed25af44d354fa8e87fbb4d62e1ed666847cbc4e (patch) | |
| tree | d3d73bf9e16bcb9b7eef2c5e728758a98640ffdc | |
| parent | e1f6a02022b3071b084fb1eaba948f9844f64b22 (diff) | |
| download | emacs-ed25af44d354fa8e87fbb4d62e1ed666847cbc4e.tar.gz emacs-ed25af44d354fa8e87fbb4d62e1ed666847cbc4e.zip | |
Add formula as an expression setters to ses-setq.
| -rw-r--r-- | lisp/ses.el | 25 |
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)) |