notmuch.el: quote args in notmuch-show to facilitate remote use
authorJesse Rosenthal <jrosenthal@jhu.edu>
Sun, 24 Jan 2010 20:22:33 +0000 (15:22 -0500)
committerCarl Worth <cworth@cworth.org>
Tue, 13 Apr 2010 16:14:03 +0000 (09:14 -0700)
Put single-quotes around the argument of the `show --entire-thread' command
in notmuch-show. This change should have no effect on normal usage.
However, it allows us to use the notmuch.el client with a remote notmuch
binary and database over ssh (by, e.g., setting `notmuch-command' to a
simple shell script). Without the quotes, ssh will not send the command
properly.

One very simple example script is as follows. (Note that it requires
keypair login to the ssh server.)

        #!/bin/sh

        SSH_BIN="/path/to/local/ssh"
        NOTMUCH_HOST="my.remote.server"
        NOTMUCH_REMOTE_PATH="/path/to/remote/notmuch"

        $SSH_BIN $NOTMUCH_HOST $NOTMUCH_REMOTE_PATH $@

emacs/notmuch-show.el

index 6f5a55d470756e8a3eb42f92bca663a6aad1c258..81276d90f32eb2104939afd73c8f6bd5b1ed991c 100644 (file)
@@ -1006,8 +1006,10 @@ used."
       (erase-buffer)
       (goto-char (point-min))
       (save-excursion
-       (let* ((basic-args (list notmuch-command nil t nil "show" "--entire-thread" thread-id))
-               (args (if query-context (append basic-args (list "and (" query-context ")")) basic-args)))
+       (let* ((basic-args (list notmuch-command nil t nil "show" "--entire-thread" "\'" thread-id))
+               (args (if query-context
+                         (append basic-args (list "and (" query-context ")\'"))
+                       (append basic-args (list "\'")))))
          (apply 'call-process args)
          (when (and (eq (buffer-size) 0) query-context)
            (apply 'call-process basic-args)))