From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Hongyi Zhao Newsgroups: gmane.emacs.help Subject: Re: Convert the shell command used in emacs init-file into its normal version. Date: Wed, 9 Jun 2021 16:22:38 +0800 Message-ID: References: <20210609081309.GE21706@tuxteam.de> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36669"; mail-complaints-to="usenet@ciao.gmane.io" Cc: help-gnu-emacs To: tomas@tuxteam.de Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Jun 09 10:23:15 2021 Return-path: Envelope-to: geh-help-gnu-emacs@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 1lqtUZ-0009Hg-0E for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 09 Jun 2021 10:23:15 +0200 Original-Received: from localhost ([::1]:60408 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lqtUY-000700-27 for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 09 Jun 2021 04:23:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44710) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lqtUE-0006zs-Vv for help-gnu-emacs@gnu.org; Wed, 09 Jun 2021 04:22:55 -0400 Original-Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]:41519) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lqtUB-0005lg-MH for help-gnu-emacs@gnu.org; Wed, 09 Jun 2021 04:22:54 -0400 Original-Received: by mail-lf1-x12c.google.com with SMTP id j20so7369748lfe.8 for ; Wed, 09 Jun 2021 01:22:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4lW1eWlHF6j6dHVbqEYL8YhX/N1UefQMdRrsumum3ig=; b=ESJVf3MxHJR+Hk8BBZGD3wJPVJrOPJBXhkRca/IUSx+wA6hCYNgK1ZEKd4WWwqWhqZ Y4kOwKAHhwTXmMv/LAoyQXqb9/JlnkR9DWCvf36x/qcOFj3Qtvjas/HeSlXI69cfidTh S5eMIoTNRYAKl0wjXDrywF6uekbLN13prrKw0EZ6MI2GLhOOhNms4Rf7yWRSB/e9fGhw H3hxWjKpbX7mRSwNWp/2ZhXClDBpwBc8exV3HG1dT53sNsup8D3RB1xZfC7Z+toyTdL1 iSyWS2DZBcbbvyHBkE0athjQgPEmohUTCT+0PhcozU3LS/MaaQTJFMelWTQ5riULwtMx i6lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4lW1eWlHF6j6dHVbqEYL8YhX/N1UefQMdRrsumum3ig=; b=kM/8ijnjzL2/FK/iXOiOLonLBG+EbXj3HqTdx+DDMehGQTXiJykC4/jlncZGvIzu3l 6gCibjfQH0pIfdVD4/ysIwisGspd2XdDamFUjFGzXBurfe8TxPwXbLEtyI5NSOxWYFNa KJThhG97hZjrUQSqd0eO86LF7wRXWPJMXRBV8NDBnELDeFJdr4SNUv1LB4PrKaykhMkp UlM2IL+0tTedxFtx2espL4uQF8B3tXOsdoG6KSEoykt8Hk7EAXnUA0ChVVjU75tsWLEb K1bA5rddu76waoDWkvJTrW/7oBFyf/PzrORLYVc7czy9VPLYjy1wwNmOv9Y5I+yOf4LI Oxbw== X-Gm-Message-State: AOAM533wgV/lt+/+gyp58kS7t28gMY4MCxzw6F7wWoXlBunUI2+GuEa1 2OwQPt72Dlhb/Pt0MArqRCaLbBRYlihH19UHudI= X-Google-Smtp-Source: ABdhPJxC07fQT2Qc6f8MSa7vQ1KRohxPb9//11ZjQW1F2qy7Mq8QmyfP450qBCT3MMNwzs7uXRbRXkRRBYS+G4J7//o= X-Received: by 2002:ac2:42cb:: with SMTP id n11mr17528195lfl.461.1623226969687; Wed, 09 Jun 2021 01:22:49 -0700 (PDT) In-Reply-To: <20210609081309.GE21706@tuxteam.de> Received-SPF: pass client-ip=2a00:1450:4864:20::12c; envelope-from=hongyi.zhao@gmail.com; helo=mail-lf1-x12c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:130661 Archived-At: On Wed, Jun 9, 2021 at 4:13 PM wrote: > > On Wed, Jun 09, 2021 at 04:03:09PM +0800, Hongyi Zhao wrote: > > On Wed, Jun 9, 2021 at 3:01 PM Jean Louis wrote: > > > > > > * Hongyi Zhao [2021-06-09 09:50]: > > > > I found the following command from > > > > : > > > > > > > > "curl -s https://api.mathpix.com/v3/latex -X POST -H \"app_id: %s\" -H > > > > \"app_key: %s\" -H \"Content-Type: application/json\" --data > > > > \"{\\\"src\\\":\\\"%s\\\",\\\"formats\\\": > > > > [\\\"latex_styled\\\"],\\\"format_options\\\":{\\\"latex_styled\\\": > > > > {\\\"transforms\\\": [\\\"rm_spaces\\\"]}}}\"" > > > > > > > > I want to obtain its normal version and test it under the system's > > > > shell terminal. Any hints for deleting the escape characters correctly > > > > from the above command in Emacs way? > > > > > > You should use the function `call-process' as it will help with > > > quoting: > > > > > > (call-process "curl" nil nil nil "-s" "https://api.mathpix.com/v3/latex" > > > "-X" "POST" "-H" (format "app_id: %s" id) > > > "-H" (format "app_key: %s" key) > > > "-H" "Content-Type: application/json" > > > "--data" "{\"src\":\"%s\", > > > \"formats\": [\"latex_styled\"], > > > \"format_options\": {\"latex_styled\": > > > {\"transforms\": [\"rm_spaces\"]}}}") > > > > You've stripped the escaping characters out manually in the above code. > > It's a bit more complex than that: The above is one big string in Emacs > lisp which is to be passed to a shell. So it has an "outer" syntax, > to be interpreted by the Emacs lisp reader, and an "inner" to be > interpreted by the shell reader. > > The below is split into several strings (call-process takes a list > of arguments, which are passed to exec), so no "shell escaping" is > necessary. But since the individual arguments are represented as > Emacs lisp strings, they need that escaping. Is this way more efficient than the original version? > So in a way yes, one layer of escaping has been removed, but it's > the lower layer, the shell escaping. It just looks very similar to > the upper (lisp) layer :-) > > Cheers > - t -- Assoc. Prof. Hongyi Zhao Theory and Simulation of Materials Hebei Vocational University of Technology and Engineering NO. 552 North Gangtie Road, Xingtai, China