From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id EKA1GgobnWGAEwEAgWs5BA (envelope-from ) for ; Tue, 23 Nov 2021 17:47:06 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id MB7JFQobnWHNZwAAbx9fmQ (envelope-from ) for ; Tue, 23 Nov 2021 16:47:06 +0000 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 08FE226ED9 for ; Tue, 23 Nov 2021 17:47:06 +0100 (CET) Received: from localhost ([::1]:43452 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpYwi-0007co-Ec for larch@yhetil.org; Tue, 23 Nov 2021 11:47:04 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36678) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpYur-0006hX-Qs for emacs-orgmode@gnu.org; Tue, 23 Nov 2021 11:45:09 -0500 Received: from ciao.gmane.io ([116.202.254.214]:36916) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpYuq-0005N3-AX for emacs-orgmode@gnu.org; Tue, 23 Nov 2021 11:45:09 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1mpYum-0003si-AV for emacs-orgmode@gnu.org; Tue, 23 Nov 2021 17:45:04 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: [PATCH] Fix regex for determining image width from attribute Date: Tue, 23 Nov 2021 23:44:50 +0700 Message-ID: References: <87czmtuy0p.fsf@gmail.com> <87ilwl71gh.fsf@gmail.com> <87a6hxuw0y.fsf@gmail.com> <877dd07fnb.fsf@gmail.com> <8735noqig0.fsf@gmail.com> <87wnl05ag6.fsf@gmail.com> <87y25fq5d2.fsf@gmail.com> <8735nnlaef.fsf@gmail.com> <87v90jph1w.fsf@gmail.com> <871r37l96a.fsf@gmail.com> <87k0gzpb5s.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 In-Reply-To: <87k0gzpb5s.fsf@gmail.com> Content-Language: en-US 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: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, NICE_REPLY_A=-3.515, 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" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1637686026; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=Nbf8GaCw3RoZhhPkpbkFflGLCeY54AsheTakfn0Uhck=; b=YsGKpcBmjHhOmzetd/vjMAfrEXv7r0dD9qzRPhWbFZ3kUJvurLtYdepbEs9IGKseQ2mwfC /GBmH8Sz2zV1eWX9qMqgss7njp+rCSL8BGxHOekDaqUPbYZHurdm3xPiXyU2kL10OWWAdV dBY1cfySQ87yZVLDJJi4JbK6bsc6kmViSqcTk2JCxLPkYh7EGPqqbNS7uIJJzjs5aAWVX8 Tg8az8vaRI3pwkv1535hyBcxJux4qHiB80W+tVkU041PM1mCEmPp6Y83nc4QdaV3calLd8 bvhFkcn1D+NDWJtqhWVBmU2tWKvORRnNNViKG1JeGU2Ptiw47Yshr/QJPFs7RA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1637686026; a=rsa-sha256; cv=none; b=JlJom+2boEYn86pzSxSTrMd18sG1sK4XrzGLLF9VVK0E8/0Z73APsgJrum+xNu2dkN18zt w7YrizSBqjr2U0G3sxQnyQWrbawEq2H7AEGyuF6qAli3bbGI9/6s+P2XtWRpUACFGcd3wm PIU5kNpPaY2pgYvU5ALUtDMp1fL17S8WQzk/Ud8xEBjR5LTRjDbsGkbjQJ8heBC5olfjyi WuV/x7z8dfBOUjq9Z0oOnHm6PpNMKINpNbXnkXZoSU2ML189DB0yRdQjPP9dBxdDTp2bzp VVoGeaLIGQMu9pObwhj8K4XI1YnbUdzSk+Asb5sef1OxhuYplxBisLR2JxiYAw== 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" X-Migadu-Spam-Score: -2.29 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" X-Migadu-Queue-Id: 08FE226ED9 X-Spam-Score: -2.29 X-Migadu-Scanner: scn0.migadu.com X-TUID: xp7SshS2eVKV On 23/11/2021 14:46, Matt Huszagh wrote: > Here are two patches that prioritize attr_org over other attr_ > keywords. I believe this is what you had in mind Timothy. But let me > know if not. > diff --git a/lisp/org.el b/lisp/org.el > index 308bb7d51..bf5d08e09 100644 > --- a/lisp/org.el > +++ b/lisp/org.el > @@ -16853,13 +16853,20 @@ buffer boundaries with possible narrowing." > ((listp org-image-actual-width) > (let* ((case-fold-search t) > (par (org-element-lineage link '(paragraph))) > - (attr-re "^[ \t]*#\\+attr_.*?: +.*?:width +\\(\\S-+\\)") > + (attr-re (lambda (backend) > + (concat "^[ \t]*#\\+attr_" > + backend > + ": +.*?:width +\\(\\S-+\\)"))) > (par-end (org-element-property :post-affiliated par)) > - ;; Try to find an attribute providing a :width. > + ;; If an attr_org provides a :width, use that. Otherwise, > + ;; use the first attribute that provides it, if any. > (attr-width > (when (and par (org-with-point-at > (org-element-property :begin par) > - (re-search-forward attr-re par-end t))) > + (or (re-search-forward (funcall attr-re "org") > + par-end t) > + (re-search-forward (funcall attr-re ".*?") > + par-end t)))) I may be wrong, but it seems both the old and the new regexps match #+attr_html : :width 50% that is not a keyword due to a space before ":". The dot in the regexp is too permissive. > The second patch (intended to be applied after the first) improves the > documentation. It describes behavior that wasn't previously documented > and removes redundant documentation between org-image-actual-width and > org-display-inline-image--width (now only in > org-image-actual-width). Please double check I got everything correct, > as I haven't used all this behavior myself. > +that is not found, use the first #+ATTR_.*:width specification. Despite ".*" includes ": " before ":width", I would prefer explicit space before ":width".