Function: ses-reconstruct-all
ses-reconstruct-all is an interactive and byte-compiled function
defined in ses.el.gz.
Signature
(ses-reconstruct-all)
Documentation
Reconstruct buffer based on cell data stored in Emacs variables.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/ses.el.gz
(defun ses-reconstruct-all ()
"Reconstruct buffer based on cell data stored in Emacs variables."
(interactive "*")
(ses-begin-change)
;;Reconstruct reference lists.
(let (x yrow ycol)
;;Delete old reference lists
(dotimes-with-progress-reporter
(row ses--numrows) "Deleting references..."
(dotimes (col ses--numcols)
(ses-set-cell row col 'references nil)))
;;Create new reference lists
(dotimes-with-progress-reporter
(row ses--numrows) "Computing references..."
(dotimes (col ses--numcols)
(dolist (ref (ses-formula-references (ses-cell-formula row col)))
(setq x (ses-sym-rowcol ref)
yrow (car x)
ycol (cdr x))
(ses-set-cell yrow ycol 'references
(cons (ses-cell-symbol row col)
(ses-cell-references yrow ycol)))))))
;; Delete everything and reconstruct basic data area.
(ses-widen)
(let ((inhibit-read-only t))
(goto-char (point-max))
(if (search-backward ";; Local Variables:\n" nil t)
(delete-region (point-min) (point))
;; Buffer is quite screwed up --- can't even save the user-specified
;; locals.
(delete-region (point-min) (point-max))
(insert ses-initial-file-trailer)
(goto-char (point-min)))
;; Create a blank display area.
(dotimes (_ ses--numrows)
(insert ses--blank-line))
(insert ses-print-data-boundary)
(backward-char (1- (length ses-print-data-boundary)))
(setq ses--data-marker (point-marker))
(forward-char (1- (length ses-print-data-boundary)))
;; Placeholders for cell data.
(insert (make-string (* ses--numrows (1+ ses--numcols)) ?\n))
;; Placeholders for col-widths, col-printers, default-printer, header-row.
(insert "\n\n\n\n")
(insert ses-initial-global-parameters)
(backward-char (1- (length ses-initial-global-parameters)))
(setq ses--params-marker (point-marker))
(forward-char (1- (length ses-initial-global-parameters))))
(ses-set-parameter 'ses--col-widths ses--col-widths)
(ses-set-parameter 'ses--col-printers ses--col-printers)
(ses-set-parameter 'ses--default-printer ses--default-printer)
(ses-set-parameter 'ses--header-row ses--header-row)
(ses-set-parameter 'ses--numrows ses--numrows)
(ses-set-parameter 'ses--numcols ses--numcols)
;;Keep our old narrowing
(ses-setup)
(ses-recalculate-all)
(goto-char (point-min)))