Function: majutsu--process-filter

majutsu--process-filter is a natively compiled function defined in majutsu-process.el.

Signature

(majutsu--process-filter PROC STRING)

Documentation

Default filter used by majutsu-start-process.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-process.el
(defun majutsu--process-filter (proc string)
  "Default filter used by `majutsu-start-process'."
  (with-current-buffer (process-buffer proc)
    (let ((inhibit-read-only t))
      (goto-char (process-mark proc))
      ;; Find last ^M in STRING.  If one was found, ignore everything
      ;; before it and delete the current line.
      (when-let* ((ret-pos (cl-position ?\r string :from-end t)))
        (setq string (substring string (1+ ret-pos)))
        (delete-region (line-beginning-position) (point)))
      ;; Control packets (with-editor and Majutsu Ediff) are not user-facing
      ;; process output and should be consumed before insertion.
      (setq string
            (majutsu--process-strip-with-editor-control-packets
             proc
             (concat (or (process-get proc 'majutsu--with-editor-filter-pending) "")
                     string)))
      (unless (string-empty-p string)
        (insert (propertize string 'magit-section
                            (process-get proc 'section)))
        (magit-process-yes-or-no-prompt proc string)
        (magit-process-username-prompt proc string)
        (magit-process-password-prompt proc string)
        (run-hook-with-args-until-success 'magit-process-prompt-functions
                                          proc string))
      (set-marker (process-mark proc) (point)))))