From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.devel Subject: Re: Question about start-process and argument list Date: Fri, 3 Feb 2023 14:24:24 +0300 Message-ID: References: <87r0v7wgrp.fsf@ericabrahamsen.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15922"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.2.9+54 (af2080d) (2022-11-21) Cc: emacs-devel@gnu.org To: Eric Abrahamsen Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Feb 03 12:49:52 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pNuZk-0003vd-Fo for ged-emacs-devel@m.gmane-mx.org; Fri, 03 Feb 2023 12:49:52 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pNuZJ-0001mO-E8; Fri, 03 Feb 2023 06:49:25 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pNuZ1-0001iE-PD for emacs-devel@gnu.org; Fri, 03 Feb 2023 06:49:14 -0500 Original-Received: from stw1.rcdrun.com ([217.170.207.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pNuZ0-00041b-42 for emacs-devel@gnu.org; Fri, 03 Feb 2023 06:49:07 -0500 Original-Received: from localhost ([::ffff:197.239.7.46]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 0000000000055D55.0000000063DCF4B3.0000481B; Fri, 03 Feb 2023 04:49:07 -0700 Mail-Followup-To: Eric Abrahamsen , emacs-devel@gnu.org Content-Disposition: inline In-Reply-To: <87r0v7wgrp.fsf@ericabrahamsen.net> Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_SBL=0.141, RCVD_IN_SORBS_WEB=1.5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:302923 Archived-At: * Eric Abrahamsen [2023-02-03 09:37]: > 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: I would not try to generalize the command for all search engines unless they really have compatible command lie. > '("--rcfile" config-file "-r" "another-arg" "from:bob subject:lunch") Which is OK in itself, as it is safer to run program without using external shell. > 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? It has same effect. > 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. Rather no, as that becomes unsafe. Yes, it would invoke shell and some environment and the program line. But for programing purposes is unsafe. I learned it from experience ahat `start-process' and `call-process' are safe way and more conclusive for programming purposes. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/