diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index a2d2604..9561227 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -301,8 +301,7 @@ If COUNT has been specified indent by that much, otherwise look at "Function for `message-mode-hook'." (setq-local comment-auto-fill-only-comments nil) (auto-fill-mode) - (flyspell-mode) - (ispell-change-dictionary (read-string "New dictionary: "))) + (flyspell-mode)) (defun oni:mini-fix-timestamp-string (date-string) "A minimal version of Xah Lee's `fix-timestamp-string'. @@ -468,6 +467,35 @@ use. If MODE is not nil, open a new buffer with the name (while (search-forward from nil t) (replace-match to)))) +(defun oni:request-pull () + "Start a mail to request pulling from a git repository." + (interactive) + (let* ((default-directory + (expand-file-name + (or (locate-dominating-file default-directory ".git") + (magit-read-top-dir nil)))) + (refs (magit-list-interesting-refs magit-uninteresting-refs)) + (from (cdr (assoc (completing-read "From: " refs) refs))) + (url (read-from-minibuffer "Pull URL: ")) + (to (symbol-name (read-from-minibuffer "Up to (HEAD): " + nil nil t nil "HEAD"))) + (patchp (and current-prefix-arg (listp current-prefix-arg)))) + (message "Requesting pull for %s from %s to %s at %s with%s patch" + default-directory from to url (if patchp "" "out")) + + (compose-mail + nil (concat + "Requesting pull for " + (file-name-base (directory-file-name default-directory)))) + + (save-excursion + (goto-char (point-max)) + (insert + (shell-command-to-string + (concat "git --git-dir='" default-directory ".git' --work-tree='" + default-directory "' request-pull " (when patchp "-p ") + from " " url " " to)))))) + (defun oni:required-packages-installed-p () "Check if all the packages I need are installed." (let ((tmp-packages oni:required-packages)