            ;; [1]: https://stackoverflow.com/q/3921409/3538165
            (format "Repository %S has a merge conflict:\n%S"
                    local-repo
-                   (string-join
-                    (mapcar (lambda (line)
-                              (concat "  " line))
-                            (split-string conflicted-files "\n"))
-                    "\n"))
+                   (straight--split-and-trim
+                    conflicted-files 2))
            ("a" "Abort merge"
             (straight--get-call "git" "merge" "--abort")))))))
 

      (straight-vc-git--popup
        (format "Repository %S has a dirty worktree:\n\n%s"
                local-repo
                (string-join
                 (mapcar (lambda (line)
                           (concat "  " line))
                         (split-string status "\n"))
                 "\n"))
        ("z" "Stash changes"
         (let ((msg (read-string "Optional stash message: ")))
           (if (string-empty-p msg)


ACTIONS later in the list take precedence over earlier ones with
regard to keybindings."
  (unless (assoc "C-g" actions)
    (setq actions (append actions '(("C-g" "Cancel" keyboard-quit)))))
  (let ((keymap (make-sparse-keymap))
        (func nil)
        (prompt (concat prompt "\n"))
        (max-length (apply #'max (mapcar #'length (mapcar #'car actions)))))
    (dolist (action actions)
      (cl-destructuring-bind (key desc func . args) action
        (when desc
          (setq prompt
                (format "%s\n %s%s %s" prompt
                        (make-string (- max-length (length key)) ? )
                        key desc)))
        (define-key keymap (kbd key)
          (lambda ()
            (interactive)
