anchor.diff:                        (iobuf-data ib)
                         :offset (iobuf-start ib)
                         :count (iobuf-length ib)
  -                      :encoding (babel:external-format-encoding ef)
  +                      :encoding encoding
                         :max-chars 1))
                (babel:end-of-input-in-character ()
                  (fill-buf-or-eof)
  
positive.code:               ;; Some encodings such as CESU or Java's modified UTF-8 take
                ;; as much as 6 bytes per character. Make sure we have enough
                ;; space to collect read-ahead bytes if required.
                ((< (iobuf-length ib) +max-octets-per-char+)
                 (iobuf-copy-data-to-start ib)
                 (setf unread-index 0)))
          ;; line-end handling
  
negative.code:     (iobuf-reset ib)
      nil))
  
  (defun %fill-ibuf (read-fn fd buf)
    (let ((num (nix:repeat-upon-eintr
                 (funcall read-fn fd (iobuf-end-pointer buf)
                          (iobuf-end-space-length buf)))))
  