Function: cust-print-print-circular

cust-print-print-circular is a byte-compiled function defined in cust-print.el.gz.

Signature

(cust-print-print-circular OBJECT)

Source Code

;; Defined in /usr/src/emacs/lisp/obsolete/cust-print.el.gz
(defun cust-print-print-circular (object)
  ;; Printer for `prin1' and `princ' that handles circular structures.
  ;; If OBJECT appears multiply, and has not yet been printed,
  ;; prefix with label; if it has been printed, use `#N#' instead.
  ;; Otherwise, print normally.
  (let ((tag (assq object circle-table)))
    (if tag
	(let ((id (cdr tag)))
	  (if (> id 0)
	      (progn
		;; Already printed, so just print id.
		(cust-print-original-princ "#")
		(cust-print-original-princ id)
		(cust-print-original-princ "#"))
	    ;; Not printed yet, so label with id and print object.
	    (setcdr tag (- id)) ; mark it as printed
	    (cust-print-original-princ "#")
	    (cust-print-original-princ (- id))
	    (cust-print-original-princ "=")
	    (cust-print-low-level-prin object)
	    ))
      ;; Not repeated in structure.
      (cust-print-low-level-prin object))))