From a2934872baedf5874f0f882fe6bcd24529fbc2a4 Mon Sep 17 00:00:00 2001 From: Jeremy Baxter Date: Sat, 20 Jul 2024 14:26:28 +1200 Subject: [PATCH] esv.el: accept one package argument --- esv.el | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/esv.el b/esv.el index 7935696..fbd1ba2 100644 --- a/esv.el +++ b/esv.el @@ -69,31 +69,37 @@ (read-only-mode)) -(defun esv (book verses) +(defun esv (passage) "Fetch the Bible passage identified by BOOK and VERSES. The result will be redirected to a buffer named after the passage. Requires the esv command line tool to be in the system's PATH. esv can be acquired at ." - (interactive "MBook: \nMVerses: ") - (let - ((buffer (concat book " " verses)) + (interactive "MPassage: ") + (let* + ((slices (split-string passage)) + (verses (car (last slices))) + (book (mapconcat #'(lambda (e) e) + (take (1- (length slices)) slices) " ")) + (buffer (concat book " " verses)) (arg-list (append esv-arguments - (list (format "-l%d" esv-columns))))) + (list (format "-l%d" esv-columns)) + (list book) (list verses)))) + (add-to-list 'arg-list book) + (add-to-list 'arg-list verses) (catch 'buffer-exists (when (get-buffer buffer) (unless esv-close-existing-buffers (message "Buffer `%s' already exists" buffer) (throw 'buffer-exists nil)) - (kill-buffer buffer)) - (apply #'call-process esv-program nil buffer t - (append arg-list (list book) (list verses))) - (display-buffer buffer) - (with-current-buffer buffer - (esv-mode) - (goto-char (point-min))) - (set-window-start (get-buffer-window buffer) (point-min)) - t))) + (kill-buffer buffer))) + (apply #'call-process esv-program nil buffer t arg-list) + (display-buffer buffer) + (with-current-buffer buffer + (esv-mode) + (goto-char (point-min))) + (set-window-start (get-buffer-window buffer) (point-min))) + t) (provide 'esv)