Function: majutsu--jj-command-args

majutsu--jj-command-args is a natively compiled function defined in majutsu-command.el.

Signature

(majutsu--jj-command-args COMMAND)

Documentation

Return jj arguments parsed from COMMAND.

COMMAND may start with the jj executable name, but it does not have to. Signal a user error if COMMAND is empty or uses shell syntax.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-command.el
(defun majutsu--jj-command-args (command)
  "Return jj arguments parsed from COMMAND.
COMMAND may start with the jj executable name, but it does not have to.
Signal a user error if COMMAND is empty or uses shell syntax."
  (setq command (string-trim (or command "")))
  (when (string-empty-p command)
    (user-error "Need non-empty input"))
  (when (majutsu--shell-command-needs-shell-p command)
    (user-error "Shell syntax is not supported here; use `majutsu-shell-command'"))
  (let* ((argv (condition-case nil
                   (split-string-shell-command command)
                 (error
                  (user-error "Failed to parse command: %s" command))))
         (program (car argv))
         (jj (majutsu-jj--executable)))
    (cond
     ((null argv)
      (user-error "Need non-empty input"))
     ((string= (majutsu--command-program-name program)
               (majutsu--command-program-name jj))
      (setq argv (cdr argv))
      (when (and argv
                 (string= (majutsu--command-program-name (car argv))
                          (majutsu--command-program-name jj)))
        (setq argv (cdr argv)))
      (or argv
          (user-error "Need jj subcommand")))
     (t argv))))