Function: ses-write-cells
ses-write-cells is a byte-compiled function defined in ses.el.gz.
Signature
(ses-write-cells)
Documentation
Write cells in ses--deferred-write from local variables to data area.
Newlines in the data are escaped.
Source Code
;; Defined in /usr/src/emacs/lisp/ses.el.gz
(defun ses-write-cells ()
"Write cells in `ses--deferred-write' from local variables to data area.
Newlines in the data are escaped."
(let* ((inhibit-read-only t)
(print-escape-newlines t)
rowcol row col cell sym formula printer text)
(setq ses-start-time (float-time))
(with-temp-message " "
(save-excursion
(while ses--deferred-write
(ses--time-check "Writing... (%d cells left)"
(length ses--deferred-write))
(setq rowcol (pop ses--deferred-write)
row (car rowcol)
col (cdr rowcol)
cell (ses-get-cell row col)
sym (ses-cell-symbol cell)
formula (ses-cell-formula cell)
printer (ses-cell-printer cell))
(if (eq (car-safe formula) 'ses-safe-formula)
(setq formula (cadr formula)))
(if (eq (car-safe printer) 'ses-safe-printer)
(setq printer (cadr printer)))
(setq text (prin1-to-string
;; We could shorten it to (ses-cell SYM VAL) when
;; the other parameters are nil, but in practice most
;; cells have non-nil `references', so it's
;; rather pointless.
`(ses-cell ,sym
,(symbol-value sym)
,(unless (equal formula (symbol-value sym))
formula)
,printer
,(ses-cell-references cell))))
(ses-goto-data row col)
(let ((inhibit-quit t))
(delete-region (point) (line-end-position))
(insert text))))
(message " "))))