emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Question about start-process and argument list


From: Eric Abrahamsen
Subject: Question about start-process and argument list
Date: Thu, 02 Feb 2023 19:48:42 -0800
User-agent: Gnus/5.13 (Gnus v5.13)

Hi!

I recently got a bug report about the Mairix search engine for Gnus --
long story short, the gnus-search.el code calls all command-line mail
indexers (notmuch, mairix, namazu, etc) like this:

(apply #'start-process (format "search-%s" server)
                        buffer program cp-list)

Where `program' is the indexer, and `cp-list' is a list of command-line
flags. The important thing is that the last element of `cp-list' is the
search-query string itself, but this string has not been split on
spaces. Meaning that cp-list could look like:

'("--rcfile" config-file "-r" "another-arg" "from:bob subject:lunch")

Other search engines seem to accept this fine, but Mairix fails unless
the search query is also split on spaces:

'("--rcfile" config-file "-r" "another-arg" "from:bob" "subject:lunch")

It occurred to me that this is probably the way it should be done, even
if the other engines don't happen to be choking on the format. I have
two questions:

1. What does the program actually see, in this case? Is the first
   example above, is it the equivalent of (on the command line) wrapping
   the query in double quotes?
2. Should I be using `start-process-shell-command' instead? The docs
   mention that the main difference is that it will use shell features,
   which aren't really relevant here, but maybe it's the right thing to
   do, semantically.

Any comments very welcome,
Eric




reply via email to

[Prev in Thread] Current Thread [Next in Thread]