Function: erc-fill-wrap

erc-fill-wrap is a byte-compiled function defined in erc-fill.el.gz.

Signature

(erc-fill-wrap)

Documentation

Use text props to mimic the effect of erc-fill-static.

See erc-fill-wrap-mode(var)/erc-fill-wrap-mode(fun) for details.

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc-fill.el.gz
(defun erc-fill-wrap ()
  "Use text props to mimic the effect of `erc-fill-static'.
See `erc-fill-wrap-mode' for details."
  (unless erc-fill-wrap-mode
    (erc-fill-wrap-mode +1))
  (save-excursion
    (goto-char (point-min))
    (let ((len (or (and erc-fill--wrap-length-function
                        (funcall erc-fill--wrap-length-function))
                   (and-let* ((msg-prop (erc--check-msg-prop 'erc--msg))
                              ((not (eq msg-prop 'unknown))))
                     (when-let* ((e (erc--get-speaker-bounds))
                                 (b (pop e))
                                 ((or erc-fill--wrap-action-dedent-p
                                      (not (erc--check-msg-prop 'erc--ctcp
                                                                'ACTION)))))
                       (goto-char e))
                     (skip-syntax-forward "^-")
                     (forward-char)
                     (cond ((eq msg-prop 'datestamp)
                            (when erc-fill--wrap-rejigger-last-message
                              (set-marker erc-fill--wrap-last-msg (point-min)))
                            (save-excursion
                              (goto-char (point-max))
                              (skip-chars-backward "\n")
                              (let ((beg (pos-bol)))
                                (insert " ")
                                (prog1 (erc-fill--wrap-measure beg (point))
                                  (delete-region (1- (point)) (point))))))
                           ((and erc-fill-wrap-merge
                                 (funcall erc-fill--wrap-continued-predicate))
                            (add-text-properties
                             (point-min) (point)
                             '(display "" erc-fill--wrap-merge ""))
                            (if erc-fill-wrap-merge-indicator
                                (erc-fill--wrap-insert-merged-pre)
                              0))
                           (t
                            (erc-fill--wrap-measure (point-min) (point))))))))
      (add-text-properties
       (point-min) (1- (point-max)) ; exclude "\n"
       `( line-prefix (space :width ,(if len
                                         `(- erc-fill--wrap-value ,len)
                                       'erc-fill--wrap-value))
          wrap-prefix (space :width erc-fill--wrap-value))))))