Function: cl-print--string-props

cl-print--string-props is a byte-compiled function defined in cl-print.el.gz.

Signature

(cl-print--string-props OBJECT START STREAM)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-print.el.gz
(defun cl-print--string-props (object start stream)
  (let* ((first (not (eq start 0)))
         (len (length object))
         (interval-limit (and (natnump print-length)
                              (max 1 (/ print-length 3))))
         (interval-count 0)
         (start-pos (if (text-properties-at start object)
                        start (next-property-change start object)))
         (end-pos (next-property-change start-pos object len)))
    (while (and (or (null interval-limit)
                    (< interval-count interval-limit))
                (< start-pos len))
      (let ((props (text-properties-at start-pos object)))
        (when props
          (if first
              (setq first nil)
            (princ " " stream))
          (princ start-pos stream)
          (princ " " stream) (princ end-pos stream)
          (princ " " stream) (cl-print-object props stream)
          (cl-incf interval-count))
        (setq start-pos end-pos
              end-pos (next-property-change start-pos object len))))
    (when (< start-pos len)
      (princ " " stream)
      (cl-print-insert-ellipsis object (list start-pos) stream))))