Function: ses-call-printer

ses-call-printer is a byte-compiled function defined in ses.el.gz.

Signature

(ses-call-printer PRINTER &optional VALUE)

Documentation

Invoke PRINTER (a string or parenthesized string or function-symbol or lambda of one argument) on VALUE. Result is the printed cell as a string. The variable ses-call-printer-return is set to t if the printer used parenthesis to request left-justification, or the error-signal if the printer signaled one (and "%s" is used as the default printer), else nil.

Source Code

;; Defined in /usr/src/emacs/lisp/ses.el.gz
(defun ses-call-printer (printer &optional value)
  "Invoke PRINTER (a string or parenthesized string or function-symbol or
lambda of one argument) on VALUE.  Result is the printed cell as a string.
The variable `ses-call-printer-return' is set to t if the printer used
parenthesis to request left-justification, or the error-signal if the
printer signaled one (and \"%s\" is used as the default printer), else nil."
  (setq ses-call-printer-return nil)
  (condition-case signal
      (cond
       ((stringp printer)
	(if value
	    (format printer value)
	  ""))
       ((stringp (car-safe printer))
	(setq ses-call-printer-return t)
	(if value
	    (format (car printer) value)
	  ""))
       (t
	(setq value
              (funcall
               (or (and (symbolp printer)
                        (let ((locprn (gethash printer
                                               ses--local-printer-hashmap)))
                          (and locprn
                               (ses--locprn-compiled locprn))))
                   printer)
               value))
	(if (stringp value)
	    value
	  (or (stringp (car-safe value))
	      (error "Printer should return \"string\" or (\"string\")"))
	  (setq ses-call-printer-return t)
	  (car value))))
    (error
     (setq ses-call-printer-return signal)
     (ses-prin1 value))))