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 " "))))