branch: elpa/engine-mode commit 75bca85a18fee8ffbc4397d5e45cb32c42dcd5ce Author: Harry Schwartz <ha...@thoughtbot.com> Commit: Harry Schwartz <ha...@thoughtbot.com>
minor tweaks * Assert that engine-name is a symbol * defengine always returns the function, even with keybindings Thanks to @purcell! https://github.com/hrs/engine-mode/pull/1/files --- engine-mode.el | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/engine-mode.el b/engine-mode.el index ef96668215..8227b14263 100644 --- a/engine-mode.el +++ b/engine-mode.el @@ -47,6 +47,7 @@ ;; along with this program. If not, see <http://www.gnu.org/licenses/>. ;;; Code: +(eval-when-compile (require 'cl)) (define-minor-mode engine-mode "Minor mode for defining and querying search engines through Emacs." @@ -61,7 +62,7 @@ (defun engine/get-query (engine-name) "Return the selected region (if any) or prompt the user for a query." - (if mark-active + (if (use-region-p) (buffer-substring (region-beginning) (region-end)) (engine/prompted-search-term engine-name))) @@ -86,14 +87,14 @@ (quote ,(engine/function-name engine-name))))) (defmacro defengine (engine-name search-engine-url &optional keybinding) - (let ((evaled-engine-name engine-name) - (search-term (gensym))) - `(progn (defun ,(engine/function-name evaled-engine-name) (,search-term) - ,(engine/docstring evaled-engine-name) - (interactive - (list (engine/get-query ,(symbol-name evaled-engine-name)))) - (engine/execute-search ,search-engine-url ,search-term)) - ,(engine/bind-key evaled-engine-name keybinding)))) + (assert (symbolp engine-name)) + `(prog1 + (defun ,(engine/function-name engine-name) (search-term) + ,(engine/docstring engine-name) + (interactive + (list (engine/get-query ,(symbol-name engine-name)))) + (engine/execute-search ,search-engine-url search-term)) + ,(engine/bind-key engine-name keybinding))) (provide 'engine-mode) ;;; engine-mode.el ends here