From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id EPleKSrbfGIteQAAbAwnHQ (envelope-from ) for ; Thu, 12 May 2022 12:02:18 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id SLpgKSrbfGJGMQEA9RJhRA (envelope-from ) for ; Thu, 12 May 2022 12:02:18 +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 3C2A710848 for ; Thu, 12 May 2022 12:02:18 +0200 (CEST) Received: from localhost ([::1]:58136 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1np5eC-00023G-GM for larch@yhetil.org; Thu, 12 May 2022 06:02:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45892) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1np5ay-0008GT-Oc for emacs-orgmode@gnu.org; Thu, 12 May 2022 05:59:00 -0400 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]:33787) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1np5aw-0003cZ-Sz for emacs-orgmode@gnu.org; Thu, 12 May 2022 05:58:56 -0400 Received: by mail-pg1-x530.google.com with SMTP id r71so3810020pgr.0 for ; Thu, 12 May 2022 02:58:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:in-reply-to:references:date:message-id :mime-version; bh=FdhRkBFhO+88+u2lfrYnBwBwFvqk5PGEemMrmoWCGww=; b=iT5sDUg6qMme61N77sgTDpb1Uur63W0Y2/TMAu6dtIR13dtRtfq0YjZyUJHwt03C9Z Ap4P/qUbIDabyn5uxTVXxS7wo8A3Yj64ns8D6JaMWiWoLR46h0oB1y5aooiU6VFYBBS9 LZ/OX/TT9jvISDyI2mUPBER3KYjrBgCeEVicTvzLgds59zGGFcnsIt3CshfH6dDQceKQ gASWXXpIIc+39mQtVoIaC5WzKwJcgo/JCBsQao4g7b4FWCDvsSyrWYuqOu7Gl+buMmLj IjM6veQDMdOnT4icDydp0yYIV0LYeKIgVdgXswOqjGZTQ0AU1bMQg+OwV7DN2ezALugs qmvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version; bh=FdhRkBFhO+88+u2lfrYnBwBwFvqk5PGEemMrmoWCGww=; b=jZQdIkXXbce7ZKYp6qVKDGgzDwH0+LvUgU2/Fm3KX27IyD+ky27c+gR8i2OW7ck1v8 woAH9lZf0XP1tq1LIBeZNkGaQtcjRiezaUqXdCfwuaz8E2RJ1EV+lDmfUsHUUOwPXZdm GLeRniJZSYSprnxUHxMz9r5zAcDOW291F1AdxcGiovEvrc6xMS0zsykFXZZyoWmHtBRD cfxJY3oq+RF8qZxAE7f2qsw+anVjK3MsJpZHQ9gjt5itKY2S5moQmReE8wzEx4Q0JcW1 1DXN5KnBSstpZgK+K5uB6sjLQoCjxP6Gi/mnWRAHzMnhLSJHMnF15yY7xo6df5lS+Ffw lYLg== X-Gm-Message-State: AOAM532qoZ9Bm+oD3zUv6ygPfzt3cCno2OggZwpwWLYc/q20n30THqAm 6pX5FF9YUf5vJBbhe+MVpOk= X-Google-Smtp-Source: ABdhPJx0/ucvCpyCpT+1AR0PqUheJZfzu7dK157jkAmwvcbR8JaT1nhu+BS0WlgTmba64qf/Lmygvg== X-Received: by 2002:a63:864a:0:b0:3ab:1a03:4e33 with SMTP id x71-20020a63864a000000b003ab1a034e33mr24539365pgd.241.1652349533617; Thu, 12 May 2022 02:58:53 -0700 (PDT) Received: from localhost ([37.120.210.2]) by smtp.gmail.com with ESMTPSA id fv7-20020a17090b0e8700b001cd4989fecfsm1457788pjb.27.2022.05.12.02.58.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 May 2022 02:58:52 -0700 (PDT) From: Ihor Radchenko To: Tyler Grinn Cc: org-mode-email Subject: Re: [PATCH] Re: Concatenate properties In-Reply-To: <874k1w2c6o.fsf_-_@gmail.com> References: <87y1zfk3ls.fsf@gmail.com> <87zgjuis8z.fsf@gmail.com> <87pmkpykiz.fsf@localhost> <87v8uhikzx.fsf@gmail.com> <87sfpkqkos.fsf@localhost> <87zgjst8lq.fsf@gmail.com> <877d6wqdxs.fsf@localhost> <87mtfq8np8.fsf@gmail.com> <87czgkjnit.fsf@localhost> <874k1w2c6o.fsf_-_@gmail.com> Date: Thu, 12 May 2022 17:59:37 +0800 Message-ID: <87czgjhy0m.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::530; envelope-from=yantar92@gmail.com; helo=mail-pg1-x530.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" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1652349738; 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=FdhRkBFhO+88+u2lfrYnBwBwFvqk5PGEemMrmoWCGww=; b=c3rusj3cVq934N+gZNUOYgcw8Z6Ze3fwOp18HeC6pWRxars3Gr31HqR4/Q3mIZgUD/jNSm O/Td08gt2XO0JqcZ64KFD8EmUEEf/sHE5JfD8OtXfOPGbJdBKVPiHJLxVeiGlK+TTYBoX5 zlB2ydi7VGxZi4RBY/QcIYrKq+/eENDE4FP8ZO2YwA++nBVJmq7fEFIWBgiLVT3KNhhCKc SQ906Tlea/PoSU/w1YAQ/coM6aBHwKY+738LXyoiMDEHUehSL1kloEI1fT2njhwlwdWB9i vzb/swSspwouQpjqc0iP+SMZwye8CPyDzu55hoXrNZXAa8VDe1HXCQiXm3v6cA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1652349738; a=rsa-sha256; cv=none; b=Tr3qY7A1/wkDzFKN6AJD2Zre1r0YAEB4MoAsIDH0PH/UoT1+qmnZTtbGlAAPAS0xDjvdFW Zm+Qg6GQ29RR2JlhJId0QDqcPRkptctbiqLYUZtP+iPHFH6OEQJ2xkJhBKCIiF467I5R3K ZGfuSuXH4mG0UwTPv+ELX6LIEyl38hLtTyGfnlZOXc60GVpbvpAgoLfkzNNMvVFLWizuex /6IvPjx17SuOY4pIZbSM8PNr/3T8oQQUy+1iZqcXMcoljOFk6wVgoHf53N0kD+Rns2bwbH hQ2zFnWPTOiBVF5NUNDVFnoliuDpQ8FxZVSTr3tgvCjNDaVs1KtlN4YtE86/Nw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=iT5sDUg6; dmarc=pass (policy=none) header.from=gmail.com; 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" X-Migadu-Spam-Score: -2.01 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=iT5sDUg6; dmarc=pass (policy=none) header.from=gmail.com; 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" X-Migadu-Queue-Id: 3C2A710848 X-Spam-Score: -2.01 X-Migadu-Scanner: scn1.migadu.com X-TUID: NUS9pRUizmeY Tyler Grinn writes: > OK, what I have now is that if the car of an alist item is a list, exact > matching will be done for each list item, but if it is a string, it will > be matched as a regular expression. Sounds reasonable. Note that your patch is >15LOC long and you need to sign the copyright agreement with FSF in order to contribute. See https://orgmode.org/worg/org-contribute.html#copyright Some comments on the patch: > * lisp/org.el (org-property-separators, org-property-get-separator): > Created. I'd make the function private: org--property-get-separator. It is not intended as an API function. > (org-entry-get, org-entry-get-with-inheritance): Use new > org-property-get-separator function. > org-property-separators is a customization option that allows for Please quote the function name as `org-property-get-separator'. > +If a property is specified multiple times with a =+=, like > +=:EXPORT_FILE_NAME+:=, the old behavior was to always combine them > +with a single space. For the new variable, the car of each item in > the Please, use double space " " to separate sentences. Also, see doc/Documentation_Standards.org > +For example, in order to combine =EXPORT_FILE_NAME= properties with a > +forward slash =/=, one can use > + > +#+begin_src emacs-lisp > +(setq org-use-property-inheritance '("EXPORT_FILE_NAME") > + org-property-separators '((("EXPORT_FILE_NAME") . "/"))) > +#+end_src This example is a bit confusing because it is unclear what you want to achieve and why you also need to set inheritance. > +(defcustom org-property-separators nil > ... > + :group 'org-properties > + :type '(alist :key-type string :value-type sexp)) This defcustom type does not match what you described in the docstring. You need something like :type '(alist :key-type (choice string (repeat string)) :value-type string) Best, Ihor