From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id AFJzMKTpNWZ7/gAAe85BDQ:P1 (envelope-from ) for ; Sat, 04 May 2024 09:54:13 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id AFJzMKTpNWZ7/gAAe85BDQ (envelope-from ) for ; Sat, 04 May 2024 09:54:12 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1714809252; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=R9N7EzeITcWYhh2X4tkxfCzU5o9qBtmAd4WzbBj8Sc8=; b=V9rYg71iT3TFNSwQ9E+igYt8p7Py3KhlrHzO6HGlRsrzq0VYfHE1Y7GTdsybyKRGY3YKMd M4radAQluTJjolGh+ponFWcCK7hGclzSH3ZhywFK6ke+3DvNxhvqZO/+i/UcHLB+t3Ou5q 3Dr4VW7MA2Sy7+lWTUunZv41L+gQZQaLX19oFn+bC9Knaz6wuSAYaKGMSr2ePQ+UvuszBk ud8TJ9fo1rareokCH+cJmFrQNRuY3hm3Nv67ro+5MHuSVwIjeb0ypdG+skATEJFpRwrpKc hjf1dWwGZR9bmHOakbOeScBKnkdTeB7dMTbRhDN/FDq47gbaerjsexp8UEFyJQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1714809252; a=rsa-sha256; cv=none; b=rBMVrx0S21mQGqo2+sYIQqadM+zuhNq2hG1JW/iQIlhSl4HtokcFf9t30gJBk9zRN1kBfZ McfwbFHKIcwwr6+/BYtk7TqMkr64/EwTXxlHlddGGKIdqYPMeXNhobQKxLK8DA9axQ5fur ZCYok5i1rC67HU7u1aT08OLY3WK+xXZddBtq8dtVSG9pjA64RwN8oQUQbunXYdASmqXH6m 1wuRnGgBN46SeWI9zwsoZ7iDIlhXY4+MmkOzYU9IBo/nioYGtyvLT7RI4Q+eUU2dLtcNnc 8hwLk48dmO/AmWMDfswiu5SxBb7e6JBeGlFa29r60dFjXnOkP6f3ElfCzVomPw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A7ED51E7B for ; Sat, 04 May 2024 09:54:12 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s3ADW-0008Tj-8k; Sat, 04 May 2024 03:53:58 -0400 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 1s3ADU-0008TS-PW for emacs-orgmode@gnu.org; Sat, 04 May 2024 03:53:56 -0400 Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s3ADS-0000oi-U2 for emacs-orgmode@gnu.org; Sat, 04 May 2024 03:53:56 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1s3ADO-0005UX-Ti for emacs-orgmode@gnu.org; Sat, 04 May 2024 09:53:50 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: Importing "quoted" strings in `org-babel-import-elisp-from-file' Date: Sat, 4 May 2024 14:53:39 +0700 Message-ID: References: <18f24d87b62.d55e94e24743657.3252620114689708448@excalamus.com> <87il00crdm.fsf@localhost> <87jzkdenc8.fsf@localhost> <87h6fft7z6.fsf@localhost> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------q5x0wAclI2FttpdlO7ymjnNU" User-Agent: Mozilla Thunderbird Content-Language: en-US, ru-RU In-Reply-To: <87h6fft7z6.fsf@localhost> Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 26 X-Spam_score: 2.6 X-Spam_bar: ++ X-Spam_report: (2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -1.68 X-Spam-Score: -1.68 X-Migadu-Queue-Id: A7ED51E7B X-Migadu-Scanner: mx11.migadu.com X-TUID: IXo9mTYf1Dgg This is a multi-part message in MIME format. --------------q5x0wAclI2FttpdlO7ymjnNU Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 03/05/2024 19:06, Ihor Radchenko wrote: > Max Nikulin writes: > >> What I do not like in `org-babel-read' is false positive for escaped >> quote when actually backslash is escaped: >> >> (org-babel-read "\"1\\\\\" 2 \\\\\"3\"" t) >> "1\\" > > Fixed, on main. > https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=2028bb15c I have no idea if "other\n\"string\"\nlines" may be passed `org-babel-read', but it is not discarded by the current regexp: "^[[:space:]]*\"\\(.*\\)\"[[:space:]]*$" Is there a reason why it is necessary to call `read' twice on the same content? From my point of view, result of first call may be returned. Does `read' have other role than unescaping backslash-protected characters? Likely it can be done by `replace-regexp-in-string', see the attachment. I have tried regexp on the following string: (let ((cases '(("" . nil) ("\"" . nil) ("\"\"" . t) ("\"\\\"" . nil) ("\"\\\\\"" . t) ("a" . nil) ("\"a\"" . t) ("\\\"a\\\"" . nil) ("\\\"a\\\\\"" . nil) ("\"a\\\"\"" . t) ("\"aa\\\"bb\"" . t) (" \"aa( bb\"" . t)))) --------------q5x0wAclI2FttpdlO7ymjnNU Content-Type: text/x-patch; charset=UTF-8; name="patch-ob-read-quoted-string.diff" Content-Disposition: attachment; filename="patch-ob-read-quoted-string.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3Avb2ItY29yZS5lbCBiL2xpc3Avb2ItY29yZS5lbAppbmRleCA0 NzBkYjlmZTYuLmE0NGQyN2NiYSAxMDA2NDQKLS0tIGEvbGlzcC9vYi1jb3JlLmVsCisrKyBi L2xpc3Avb2ItY29yZS5lbApAQCAtMzM0Niw2ICszMzQ2LDI2IEBAIChkZWZ1biBvcmctYmFi ZWwtc2NyaXB0LWVzY2FwZSAoc3RyICZvcHRpb25hbCBmb3JjZSkKIAkgICh0IHN0cikpKSkK ICAgICAoY29uZGl0aW9uLWNhc2UgbmlsIChvcmctYmFiZWwtcmVhZCBlc2NhcGVkKSAoZXJy b3IgZXNjYXBlZCkpKSkKIAorKGRlZmNvbnN0IG9yZy1iYWJlbC0tcXVvdGVkLXN0cmluZy1y ZWdleHAKKyAgKHJ4IHN0cmluZy1zdGFydAorICAgICAgKHplcm8tb3ItbW9yZSAob3Igc3Bh Y2UgP1xuKSkKKyAgICAgID9cIgorICAgICAgKGdyb3VwCisgICAgICAgKHplcm8tb3ItbW9y ZQorICAgICAgICA7OyBBbnl0aGluZyBiZXNpZGVzIGRvdWJsZSBxdW90ZXMgZW5kZWQgbm90 IHdpdGggYmFja3NsYXNoLgorICAgICAgICAoemVyby1vci1vbmUgKHplcm8tb3ItbW9yZSAo bm90ID9cIikpCisJCSAgICAgKG5vdCAob3IgP1wiID9cXCkpKQorICAgICAgICA7OyBTa2lw IGJhY2tzbGFzaGVzIGVzY2FwaW5nIHRoZW1zZWx2ZXMuCisJKHplcm8tb3ItbW9yZSAiXFxc XCIpCisgICAgICAgIDs7IEVzY2FwZWQgcXVvdGVzIGFyZSBhbGxvd2VkLgorCSh6ZXJvLW9y LW9uZSAiXFxcIiIpKSkKKyAgICAgID9cIgorICAgICAgKHplcm8tb3ItbW9yZSAob3Igc3Bh Y2UgP1xuKSkKKyAgICAgIHN0cmluZy1lbmQpCisgICJSZWdleHAgbWF0Y2hpbmcgc2luZ2xl IHN0cmluZyBpbiBkb3VibGUgcXVvdGVzLgorR3JvdXAgMSBpcyB0ZXh0IGluc2lkZSBxdW90 ZXMuIFN0cmluZyBtYXkgYmUgb3B0aW9uYWxseSBwYWRkZWQgd2l0aAorc3BhY2VzLiBCYWNr c2xhc2hlcyBxdW90ZSBvdGhlciBjaGFyYWN0ZXJzLiIpCisKIChkZWZ1biBvcmctYmFiZWwt cmVhZCAoY2VsbCAmb3B0aW9uYWwgaW5oaWJpdC1saXNwLWV2YWwpCiAgICJDb252ZXJ0IHRo ZSBzdHJpbmcgdmFsdWUgb2YgQ0VMTCB0byBhIG51bWJlciBpZiBhcHByb3ByaWF0ZS4KIE90 aGVyd2lzZSBpZiBDRUxMIGxvb2tzIGxpa2UgTGlzcCAobWVhbmluZyBpdCBzdGFydHMgd2l0 aCBhCkBAIC0zMzYxLDE1ICszMzgxLDExIEBAIChkZWZ1biBvcmctYmFiZWwtcmVhZCAoY2Vs bCAmb3B0aW9uYWwgaW5oaWJpdC1saXNwLWV2YWwpCiAgICAgICAgICA7OyBGSVhNRTogQXJi aXRyYXJ5IGNvZGUgZXZhbHVhdGlvbi4KIAkgKGV2YWwgKHJlYWQgY2VsbCkgdCkpCiAJKChz YXZlLW1hdGNoLWRhdGEKLSAgICAgICAgICAgKGFuZCAoc3RyaW5nLW1hdGNoICJeW1s6c3Bh Y2U6XV0qXCJcXCguKlxcKVwiW1s6c3BhY2U6XV0qJCIgY2VsbCkKLSAgICAgICAgICAgICAg ICA7OyBDRUxMIGlzIGEgc2luZ2xlIHN0cmluZwotICAgICAgICAgICAgICAgICh3aXRoLXRl bXAtYnVmZmVyCi0gICAgICAgICAgICAgICAgICAoaW5zZXJ0IGNlbGwpCi0gICAgICAgICAg ICAgICAgICAoZ290by1jaGFyIDEpCi0gICAgICAgICAgICAgICAgICAocmVhZCAoY3VycmVu dC1idWZmZXIpKQotICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiWzpz cGFjZTpdIikKLSAgICAgICAgICAgICAgICAgIChlb2JwKSkpKQotICAgICAgICAgKHJlYWQg Y2VsbCkpCisgICAgICAgICAgIChhbmQgKHN0cmluZy1tYXRjaCBvcmctYmFiZWwtLXF1b3Rl ZC1zdHJpbmctcmVnZXhwIGNlbGwpCisgICAgICAgICAgICAgICAgOzsgVW5xdW90ZSBjaGFy YWN0ZXJzIGVzY2FwZWQgYnkgYmFja3NsYXNoZXMgc2ltaWxhciB0byBgcmVhZCcuCisgICAg ICAgICAgICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAg ICAiXFxcXFxcKD86XFwoLlxcKVxcfFxuXFwpIiAiXFwxIgorCQkgKG1hdGNoLXN0cmluZyAx IGNlbGwpICdmaXhlZGNhc2UgbmlsKSkpKQogCSh0IChvcmctbm8tcHJvcGVydGllcyBjZWxs KSkpKQogCiAoZGVmdW4gb3JnLWJhYmVsLS1zdHJpbmctdG8tbnVtYmVyIChzdHJpbmcpCg== --------------q5x0wAclI2FttpdlO7ymjnNU--