Function: majutsu-ediff--run-control-packet

majutsu-ediff--run-control-packet is a natively compiled function defined in majutsu-ediff.el.

Signature

(majutsu-ediff--run-control-packet SPEC DIRECTORY)

Documentation

Handle parsed control SPEC in DIRECTORY and signal completion.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-ediff.el
(defun majutsu-ediff--run-control-packet (spec directory)
  "Handle parsed control SPEC in DIRECTORY and signal completion."
  (let ((default-directory (or directory default-directory))
        (inputs nil)
        (ok nil))
    (unwind-protect
        (condition-case err
            (progn
              (setq inputs (majutsu-ediff--control-required-inputs spec))
              (unless (majutsu-ediff--wait-for-input-files inputs)
                (error "temporary inputs unavailable: %s"
                       (mapconcat #'identity inputs ", ")))
              (pcase (plist-get spec :type)
                ('diff
                 (majutsu-ediff-diffedit-file
                  (plist-get spec :left)
                  (plist-get spec :right)
                  (plist-get spec :file)))
                ('merge
                 (majutsu-ediff-merge-files
                  (plist-get spec :left)
                  (plist-get spec :base)
                  (plist-get spec :right)
                  (plist-get spec :output)
                  (plist-get spec :marker))))
              (setq ok t))
          ((error quit)
           (message "Majutsu Ediff control callback failed: %s"
                    (error-message-string err))))
      (condition-case err
          (majutsu-ediff--signal-control-session (plist-get spec :pid) ok)
        ((error quit)
         (message "Majutsu Ediff failed to signal editor process: %s"
                  (error-message-string err)))))))