From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id kCIYK8pgy2QnFwAASxT56A (envelope-from ) for ; Thu, 03 Aug 2023 10:09:46 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id oCUeK8pgy2SuCAEA9RJhRA (envelope-from ) for ; Thu, 03 Aug 2023 10:09:46 +0200 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 48A57657C2 for ; Thu, 3 Aug 2023 10:09:46 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=gyL41KDq; 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"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1691050186; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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:dkim-signature; bh=cGaHeeyPxQVq3qJcirMChm8AvjgwIYh5COsttX64hKI=; b=qK6nZmUWgAiaVJCWOoyA4QKhMxXWwGfa9llf/I/SflFoG7AMwSHos1DFdLKVTrd6bVnkpt eVcexqSaGeO05S36HTVhQWYnLbo0Jcq9pk1JxWtER24q4IsPWinoql/fnlEPFAtHkhjVU0 CHqcjnj4HOf0D0kqtB1j0OV5LgqIXUXeK1zuBTJZCX5Tc3/sJoTuOxOMwGRVvvyM8yav3I UU2kXNb7mYlWbNOIbqheBLgip7cUWLp+sSH2QL4kaF/dKzsXCpCZevmiJAjyk7OGVYVpZ3 bbSiM69qLvaxBs2439QfOTIJuMMvQmH8ejrGm/feJfJYNdJZ5fJAeIc+TB0NLQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1691050186; a=rsa-sha256; cv=none; b=uOH9jEjwSo1FsYFGKiwLkZmWcHrY8dILXFZNd71EcrT2wSndjejJhF7JJwusoWg2h3njv4 jXG2zPhg2dLUv0Z1nzWCrkqovtNcxAJo1tM/q8Vh+N/OXmRbFMuHMT9XSXYpZCUquzKWHW VYahtdX4LvLS3AjTXSmC/qq77RLGJ/s4jgjqbmfEJoBAI1WVK0Bo+zNXXjs/IwG8NXhJmp fOlf/lhojBr/kqjMLukAPii/fJn7fbpHLiLru8MHtCBAWmD/itOcNNPIsG7gPq3NpOAIvO /BSsV1kZXJTzVnKUw0hEFRVCOxZWslpzw06B94dENN7DtujXT9bOxS2yHqGYDw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=gyL41KDq; 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"; dmarc=pass (policy=none) header.from=gmail.com Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qRTO1-0001Sb-8i; Thu, 03 Aug 2023 04:08:45 -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 1qRTNz-0001Oh-7U for emacs-orgmode@gnu.org; Thu, 03 Aug 2023 04:08:43 -0400 Received: from mail-yb1-xb2e.google.com ([2607:f8b0:4864:20::b2e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qRTNx-0002cc-NW for emacs-orgmode@gnu.org; Thu, 03 Aug 2023 04:08:42 -0400 Received: by mail-yb1-xb2e.google.com with SMTP id 3f1490d57ef6-ca4a6e11f55so680017276.1 for ; Thu, 03 Aug 2023 01:08:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691050120; x=1691654920; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=cGaHeeyPxQVq3qJcirMChm8AvjgwIYh5COsttX64hKI=; b=gyL41KDqliUSGFwpxrPV5kK0E1VmNZO1e4fHIaeCJCV5fnvJBx+8BDrhyKJdX+pska DEj1YC4v8hQl+EcCvIbxBBke00yFLnye1OFFCmmFfyxaZ7ekAcwRRDntHTlNt8tpkrr7 AqDwfiY3Ut5/23S8M64J0x3PL4uD16gwoMxG3dGIhAQl95ACNjLcFfooFfTQvwrHycl4 A0usk8Q6x3yRGk+Q8HSgAv1zNFl41L1rYgiaR+LLB+erIdTrop9zO+5098ZpXpJkrJNf PF8GWFBQgDuz7y85LtHHkOjpD9Q9OyWhDQeI4hwLDRHJVZCwglxoKz2SLW+rKf6Uvpo1 Ag1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691050120; x=1691654920; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cGaHeeyPxQVq3qJcirMChm8AvjgwIYh5COsttX64hKI=; b=l4uLiaxmaxEDZqGYoEML4HVIRhX+aDflMYNQrBcBPPKs3XrJFVk1Jh90N949ha8Xij IYiJmZFxI8y5koKrJ2LWq8ARVkvcvNVkkkGF2Vod6TtgTvL1e3/lw1K+2OCyYNo2Kl/z OyP1CN/+wclGl/82K5D3M0blz14S2fP1YnRnDtXqabkUVHEvzi6wurXzY23k6hwtEkSa WRLlwScQ33H8yg9vMRUNg9KUsuKfh7wQ4P2Znm12zwoIk1fN34+AhSE3k7C1mF7LF4WX uhM2M32hyzoREMI810vrexPxTmCXYB4SoVIlgvoCk2uc2X/BdkN3mKPDX/fuwe0cEkaG Ra6g== X-Gm-Message-State: AOJu0Yxd7qcemeMp4FpgJNI5ey/KebdR4JLRUo2cjqX3DV/K9PZ5tbx7 zxLIH67SM2SFsTizKAd16pg5z2ar/ORG+OanZQs= X-Google-Smtp-Source: AGHT+IG6qkm5rZ4GzMulEsBCyFnGk5eUAlNi1rgG/f6/ox39LOXNaqX/lbN+sovUdtnCQqiFg6AzCQrGSBBJ6/fyOnY= X-Received: by 2002:a25:5012:0:b0:d3c:13a2:1f1f with SMTP id e18-20020a255012000000b00d3c13a21f1fmr3851831ybb.63.1691050119859; Thu, 03 Aug 2023 01:08:39 -0700 (PDT) MIME-Version: 1.0 References: <87sfc4a0ce.fsf@localhost> <87r0ro9mzc.fsf@gmail.com> <87zg69zq49.fsf@localhost> <87r0rg1lwe.fsf@gmail.com> <87leho3y0n.fsf@localhost> <87a5y3vzpe.fsf@gmail.com> <87jzx6ylrm.fsf@localhost> <87ttw8kd9u.fsf@gmail.com> <87fs5ppcx7.fsf@localhost> <875y6hwqqe.fsf@localhost> <87o7k48jcf.fsf@localhost> <87v8e8m0ao.fsf@localhost> <87tttkghou.fsf@localhost> <87wmyc1sud.fsf@localhost> In-Reply-To: <87wmyc1sud.fsf@localhost> From: Mehmet Tekman Date: Thu, 3 Aug 2023 10:08:03 +0200 Message-ID: Subject: Re: [ANN] lisp/ob-tangle-sync.el To: Ihor Radchenko Cc: emacs-orgmode@gnu.org Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2607:f8b0:4864:20::b2e; envelope-from=mtekman89@gmail.com; helo=mail-yb1-xb2e.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham 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-Queue-Id: 48A57657C2 X-Migadu-Scanner: mx0.migadu.com X-Migadu-Spam-Score: -6.51 X-Spam-Score: -6.51 X-TUID: o1p6TaS6G+r2 Thanks for the review! > setq unexplained-params (delete-dups unexplained-params)) The help mentions that it stores the result in the list, and it looks like it works #+BEGIN_SRC elisp (let ((x '(1 2 1 2 3))) (delete-dups x) x) #+END_SRC > > What we can do it make `org-babel-read' assign a text property to the > resulting string when it is a string with quotes: > > (org-babel-read "my file with quotes") ; => "my file with quotes" > (org-babel-read "\"my file with quotes\"") ; => #("my file with quotes" 0 19 (org-babel-quote t)) > > Then, we can later use this information in `org-babel-merge-params'. > We will not call `split-string', when 'org-babel-quote text property is > present. > Also, `split-string' won't work when we have something like > > "yes \"my file with quotes\"" > > Instead, we should use > (mapcar #'org-babel-read (org-babel-balanced-split "yes \"my file with quotes\"" ?\s)) See my next patch, it implements a quote aware string splitting function which is used just for the tangle headers. Is my implementation there enough, without having to use text properties? > > - (tangle . ((tangle yes no :any))) > > + (tangle . ((tangle yes no :any) > > + (import export skip sync))) > > We should not yet change this before the code using the new tangle > values is in place. This is a big source of confusion for me, since I don't really know how to implement this extra merging behaviour *without* first having tangle headers implemented, since no other element in `org-babel-common-header-args-w-values' has multiple exclusion groups where at least one has `:any'