]> git.eshelyaron.com Git - emacs.git/commitdiff
Factor out some common code in ispell.el
authorReuben Thomas <rrt@sc3d.org>
Mon, 2 Nov 2020 21:45:40 +0000 (21:45 +0000)
committerReuben Thomas <rrt@sc3d.org>
Tue, 3 Nov 2020 16:56:50 +0000 (16:56 +0000)
* lisp/textmodes/ispell.el (ispell-with-safe-default-directory): Add
  macro.
  (ispell-call-process, ispell-call-process-region): Use it.

lisp/textmodes/ispell.el

index 60415b02b8bb824f458191ec827da0f18098be6d..c185f9f2c812b1f6cc65927a0f73808f30b563a9 100644 (file)
@@ -769,18 +769,23 @@ Otherwise returns the library directory name, if that is defined."
            (setq ispell-really-hunspell nil))))))
     result))
 
+(defmacro ispell-with-safe-default-directory (&rest body)
+  "Execute the forms in BODY with a reasonable
+`default-directory'."
+  (declare (indent 0) (debug t))
+  `(let ((default-directory default-directory))
+     (unless (file-accessible-directory-p default-directory)
+       (setq default-directory (expand-file-name "~/")))
+     ,@body))
+
 (defun ispell-call-process (&rest args)
-  "Like `call-process' but defend against bad `default-directory'."
-  (let ((default-directory default-directory))
-    (unless (file-accessible-directory-p default-directory)
-      (setq default-directory (expand-file-name "~/")))
+  "Like `call-process', but defend against bad `default-directory'."
+  (ispell-with-safe-default-directory
     (apply 'call-process args)))
 
 (defun ispell-call-process-region (&rest args)
-  "Like `call-process-region' but defend against bad `default-directory'."
-  (let ((default-directory default-directory))
-    (unless (file-accessible-directory-p default-directory)
-      (setq default-directory (expand-file-name "~/")))
+  "Like `call-process-region', but defend against bad `default-directory'."
+  (ispell-with-safe-default-directory
     (apply 'call-process-region args)))
 
 (defvar ispell-debug-buffer)