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