From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 17 Jun 2023 12:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 64128@debbugs.gnu.org Cc: Paul Eggert , Stefan Monnier X-Debbugs-Original-To: Emacs Bug Report Received: via spool by submit@debbugs.gnu.org id=B.16870044374204 (code B ref -1); Sat, 17 Jun 2023 12:21:02 +0000 Received: (at submit) by debbugs.gnu.org; 17 Jun 2023 12:20:37 +0000 Received: from localhost ([127.0.0.1]:50992 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAUuz-00015k-Dq for submit@debbugs.gnu.org; Sat, 17 Jun 2023 08:20:37 -0400 Received: from lists.gnu.org ([209.51.188.17]:35400) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAUuu-00015V-Ug for submit@debbugs.gnu.org; Sat, 17 Jun 2023 08:20:35 -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 1qAUuu-0002fy-Jl for bug-gnu-emacs@gnu.org; Sat, 17 Jun 2023 08:20:32 -0400 Received: from mail-lf1-x130.google.com ([2a00:1450:4864:20::130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qAUut-0007jn-0Y for bug-gnu-emacs@gnu.org; Sat, 17 Jun 2023 08:20:32 -0400 Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-4f849a0e371so2261672e87.1 for ; Sat, 17 Jun 2023 05:20:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687004428; x=1689596428; h=to:cc:date:message-id:subject:mime-version:from:sender:from:to:cc :subject:date:message-id:reply-to; bh=PH/i4d67o/j/ZAVmpc/gRUD82Tsv1IeLzd4T+TFPXF4=; b=qrmye19N5zQKU+GIzt1ouJ+wzuORPnoco1Yb9qsD1K/XICuP1fBkRDJ3BCzWAheRsy Cr8dfyovyrjpz2PWZTxjS9cYArlClENxlWCJjcPy5iwg98bSy/6qem51rKNzPGbRc96z W9oT1faRs1LiQwTuN7wx75/HYcfPUB/AqSbVJwrIp6jg0LtTfapO6F/64k4lkTFq6E1Y GMTNIk2vxws0uRb9QrxsG9V/dDM2HzdP9hnTx8e7ThEdYbIUqzpkGtnj35E8FHvqST9c XNAwPliNSV6YLyP/G+9jHAHSGZyznpogk6wjhpb/KwIFzTSGdKcFwwuf0ZA4cuY/2YZW VVyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687004428; x=1689596428; h=to:cc:date:message-id:subject:mime-version:from:sender :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=PH/i4d67o/j/ZAVmpc/gRUD82Tsv1IeLzd4T+TFPXF4=; b=NYmecrrnlmduNAY/3CiuMQXn/0PlnxkToTljkv5ilX9xU8nkGKAufPOnwZUJy93xH0 1lLJPGbgi2nAyrqcTQdvnJa95chz+8EYup4Wr8eInq6TWgqaE0Dbj146nIQVBvHPirev ir1D1AQlUoQ7FiLvJED/8H9B7NVgbipeuXHgGeBR3XkmIrwmvYKN1qTtWnizUA8KMFm7 /7iSifF4ztftjiIEZiM6HbwFBTI7il85GbtO0rzxabVs8xx0o5jtqURIzCO3jBBN0d7m k5Dy2SAOsvsoaPwQOMvOGGEJMLfaMhiShjfYcecFJL/M0dNBoS9qfSIcWPfBS9rWtWzY glTA== X-Gm-Message-State: AC+VfDxNRRAEm1kuTaIVS2UEnUcr6eOE7u2KbznQVTeaL3DRvadzyjz2 oveCKI+m7AMAzwR0IgVclcwmPytzQFk= X-Google-Smtp-Source: ACHHUZ5wEIqI9aMK259zNWv2FhyJYpcjEKat3ZUpqO/xJLa6Z+fsKWzN0eRe0YHLtHapCk0TGJBpYw== X-Received: by 2002:a19:6456:0:b0:4f7:68d8:f3a2 with SMTP id b22-20020a196456000000b004f768d8f3a2mr2965880lfj.44.1687004428274; Sat, 17 Jun 2023 05:20:28 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id t25-20020ac243b9000000b004f84694fe4dsm69071lfl.182.2023.06.17.05.20.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Jun 2023 05:20:27 -0700 (PDT) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Content-Type: multipart/mixed; boundary="Apple-Mail=_13FA75CF-D51B-4626-A0E8-BF4B62348CEC" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Message-Id: Date: Sat, 17 Jun 2023 14:20:27 +0200 X-Mailer: Apple Mail (2.3654.120.0.1.15) Received-SPF: pass client-ip=2a00:1450:4864:20::130; envelope-from=mattias.engdegard@gmail.com; helo=mail-lf1-x130.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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --Apple-Mail=_13FA75CF-D51B-4626-A0E8-BF4B62348CEC Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii In Emacs regexps, some but not all zero-width assertions have the = special property in that they are not treated as an element for an = immediately following ?, * or +. For example, \b* matches a literal asterisk at a word boundary -- the `*` becomes literal = because it is treated as if there were nothing for it to act upon. Even = stranger: xy\b* is parsed as, in rx syntax, (* "xy" word-boundary) which is remarkable: = the repetition operator encompasses several elements even though there = are no brackets given. Demo: (and (string-match "quack,\\b*" "quack,quack,quack,quaaaack!") (match-data)) =3D> (0 18) Zero-width assertions that have the property: ^ (bol), $ (eol), \` (bos), \' (eos), \b (word-boundary), \B = (not-word-boundary) Zero-width assertions that do not have the property (and are treated as = any other element): \< (bow), \> (eow), \_< (symbol-start), \_> (symbol-end), \=3D (point) These regexp patterns should be very rare in practice: they should = always be a mistake, but it would be nice if they behaved in a way that = makes some kind of sense. A modest improvement would be to make operators become literal after any = zero-width assertion, so that \<* becomes (: word-start "*") instead of (* word-start), and xy\b* becomes (: "xy" word-boundary "*") instead of (* "xy" word-boundary). Suggested patch attached. --Apple-Mail=_13FA75CF-D51B-4626-A0E8-BF4B62348CEC Content-Disposition: attachment; filename=regexp-zero-width-assertion-bug.diff Content-Type: application/octet-stream; x-unix-mode=0644; name="regexp-zero-width-assertion-bug.diff" Content-Transfer-Encoding: 7bit diff --git a/src/regex-emacs.c b/src/regex-emacs.c index e3237cd425a..120a727cf74 100644 --- a/src/regex-emacs.c +++ b/src/regex-emacs.c @@ -1716,7 +1716,9 @@ regex_compile (re_char *pattern, ptrdiff_t size, /* Address of start of the most recently finished expression. This tells, e.g., postfix * where to find the start of its - operand. Reset at the beginning of groups and alternatives. */ + operand. Reset at the beginning of groups and alternatives, + and after any zero-width assertion (which should not be the target + of any postfix repetition operators). */ unsigned char *laststart = 0; /* Address of beginning of regexp, or inside of last group. */ @@ -1847,12 +1849,14 @@ regex_compile (re_char *pattern, ptrdiff_t size, case '^': if (! (p == pattern + 1 || at_begline_loc_p (pattern, p))) goto normal_char; + laststart = 0; BUF_PUSH (begline); break; case '$': if (! (p == pend || at_endline_loc_p (p, pend))) goto normal_char; + laststart = 0; BUF_PUSH (endline); break; @@ -1892,7 +1896,7 @@ regex_compile (re_char *pattern, ptrdiff_t size, /* Star, etc. applied to an empty pattern is equivalent to an empty pattern. */ - if (!laststart || laststart == b) + if (laststart == b) break; /* Now we know whether or not zero matches is allowed @@ -2482,7 +2486,7 @@ regex_compile (re_char *pattern, ptrdiff_t size, goto normal_char; case '=': - laststart = b; + laststart = 0; BUF_PUSH (at_dot); break; @@ -2523,17 +2527,17 @@ regex_compile (re_char *pattern, ptrdiff_t size, case '<': - laststart = b; + laststart = 0; BUF_PUSH (wordbeg); break; case '>': - laststart = b; + laststart = 0; BUF_PUSH (wordend); break; case '_': - laststart = b; + laststart = 0; PATFETCH (c); if (c == '<') BUF_PUSH (symbeg); @@ -2544,18 +2548,22 @@ regex_compile (re_char *pattern, ptrdiff_t size, break; case 'b': + laststart = 0; BUF_PUSH (wordbound); break; case 'B': + laststart = 0; BUF_PUSH (notwordbound); break; case '`': + laststart = 0; BUF_PUSH (begbuf); break; case '\'': + laststart = 0; BUF_PUSH (endbuf); break; @@ -2597,7 +2605,7 @@ regex_compile (re_char *pattern, ptrdiff_t size, /* If followed by a repetition operator. */ || (p != pend - && (*p == '*' || *p == '+' || *p == '?' || *p == '^')) + && (*p == '*' || *p == '+' || *p == '?')) || (p + 1 < pend && p[0] == '\\' && p[1] == '{')) { /* Start building a new exactn. */ --Apple-Mail=_13FA75CF-D51B-4626-A0E8-BF4B62348CEC-- From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 17 Jun 2023 18:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Cc: 64128@debbugs.gnu.org, eggert@cs.ucla.edu X-Debbugs-Original-Cc: Emacs Bug Report , Paul Eggert Received: via spool by submit@debbugs.gnu.org id=B.168702747819725 (code B ref -1); Sat, 17 Jun 2023 18:45:01 +0000 Received: (at submit) by debbugs.gnu.org; 17 Jun 2023 18:44:38 +0000 Received: from localhost ([127.0.0.1]:52624 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAauc-000585-3H for submit@debbugs.gnu.org; Sat, 17 Jun 2023 14:44:38 -0400 Received: from lists.gnu.org ([209.51.188.17]:42086) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAauZ-00057v-Ks for submit@debbugs.gnu.org; Sat, 17 Jun 2023 14:44:36 -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 1qAauZ-0004nT-Bc for bug-gnu-emacs@gnu.org; Sat, 17 Jun 2023 14:44:35 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qAauX-0001Rp-Uy for bug-gnu-emacs@gnu.org; Sat, 17 Jun 2023 14:44:35 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id F00F8441320; Sat, 17 Jun 2023 14:44:32 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id B83DF4412DD; Sat, 17 Jun 2023 14:44:31 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1687027471; bh=Iz+hAfY16crJFWqulXlJ602BRaIsW5fS7DARLG/nT44=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=Poza0xlyMlyIn+6s5clUBKx5wjgkGDNXqr2WVB9tg2tgVisdV9cTr+Uol3/WOL7Go c94uhm366BRwMsVxt2kWwN5keUdVwLCNbTcsN4oRnKLXuFnyp5VKHUv7BEcRZm9zjs SmQ/FTh0XwzHuuCHolW7DluykrHpP3rE5UIAr9DNSlKH0JN+JkWElWbKvU0wBba+ot I73zmE/BVz+51/A7rXCBRt83Vl0db+CYvZwqTmqvut9shsOskTiJJZJBgUCukYG8rS zoILmp4DWkC8fXLgOsQXh4qzAdc7iOMu0SZ3Gyhm1DaOjZ2ACgMFvQ/bqJfVucOgGy vBSZ0JI3gzVxw== Received: from pastel (unknown [45.72.207.87]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 8E7AC12013F; Sat, 17 Jun 2023 14:44:31 -0400 (EDT) From: Stefan Monnier In-Reply-To: ("Mattias =?UTF-8?Q?Engdeg=C3=A5rd?="'s message of "Sat, 17 Jun 2023 14:20:27 +0200") Message-ID: References: Date: Sat, 17 Jun 2023 14:44:30 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.045 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain T_SCC_BODY_TEXT_LINE -0.01 - X-SPAM-LEVEL: Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) > (and (string-match "quack,\\b*" "quack,quack,quack,quaaaack!") > (match-data)) > => (0 18) That's so bizarre that it feels like we really should try and preserve it for posterity. Not. > These regexp patterns should be very rare in practice: they should > always be a mistake, but it would be nice if they behaved in a way > that makes some kind of sense. > > A modest improvement would be to make operators become literal after > any zero-width assertion, so that I think the behavior that makes most sense is to signal an error when compiling the regexp. Stefan From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 17 Jun 2023 20:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: 64128@debbugs.gnu.org, eggert@cs.ucla.edu X-Debbugs-Original-Cc: Emacs Bug Report , Paul Eggert Received: via spool by submit@debbugs.gnu.org id=B.168703248828828 (code B ref -1); Sat, 17 Jun 2023 20:09:01 +0000 Received: (at submit) by debbugs.gnu.org; 17 Jun 2023 20:08:08 +0000 Received: from localhost ([127.0.0.1]:52702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAcDP-0007Ut-JI for submit@debbugs.gnu.org; Sat, 17 Jun 2023 16:08:07 -0400 Received: from lists.gnu.org ([209.51.188.17]:50674) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAcDK-0007Ug-Bk for submit@debbugs.gnu.org; Sat, 17 Jun 2023 16:08:05 -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 1qAcDK-0000cY-5x for bug-gnu-emacs@gnu.org; Sat, 17 Jun 2023 16:08:02 -0400 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qAcDI-0007WW-Je for bug-gnu-emacs@gnu.org; Sat, 17 Jun 2023 16:08:01 -0400 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-4f7b641f54cso2524716e87.2 for ; Sat, 17 Jun 2023 13:07:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687032478; x=1689624478; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=NG19he3Caz5IemBdrbIhCdmdbAT/jc/n2PybOPjximM=; b=FszTsV52CEgFfHJu/90vzkdg8T2P76DjfRL4nqFmAIgMR3PKl+6ufdh1T/zjykzvjj SUk+0FtHsqgUfE/AXIPSVTVRbP8N2NfJGajiJcab0Y/yzhdZ95OfaArFhn7XF+wukch8 sziga6QGCvdMRg+WNSqg1qTNwWFBkzTqdG0t297NhPTdlAYVsW58nElhIQZ29SWuiR5X ykztXwNV1pQPnWYTDDDNCQGj/LfYeRd66fPQfNo4Q1RJEpFofXuSkdxn8w2aHODY7b0h LyYaznmKFNnAThqXjmi5miN51dxiLUW0bD7fLKs8DqJBhvWXSdQbJleyMx9KmtcOhF8K Oopw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687032478; x=1689624478; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=NG19he3Caz5IemBdrbIhCdmdbAT/jc/n2PybOPjximM=; b=GddWmfLn3oiFQLh0x7itezebfpgh1JHu/RgQL46DtJO0ch1phqTy+QYyXgFfnKe/vv MzqNIS6TLAEfVt6lM2VHp5sG3GNaPq+pKgdcsUtOqFp+q+FRnwTkLijA1ghrdBbD18E5 XcJCY6ZGWj+1qRZVQ7ZxKDxTrU96lh9Golfq3dbF3guirPLsB1/vUi5RvDJZSLrdv1jt cBYxUdjlQjd+PbF/SIYTec4tjKBsURuve3Qru5cCHqnqVZHKxFwOdOcS+okTZ+fehjZO uREVSmQ10t2Ic1gqfkLA/aOJ8/fyV7BOfAs2MKvugA8Iem3H6JmcsH1q37iqe/sPk6Ix JYEQ== X-Gm-Message-State: AC+VfDzRhxa8NqFtI0NljtMZ0Dp0sbkYnQoyOyz4U5yvOq6Sw0Id8IQh 1NsFUKJgdvNu0A3w+/bQD8c= X-Google-Smtp-Source: ACHHUZ7I7dVvpnx7mF30EtEmKkGHRoZZDlVTZ9BkCIOlmeKL2f1FfJIjpj7xNfZjSSgq/PJAYKRTZA== X-Received: by 2002:ac2:5041:0:b0:4f8:45aa:f848 with SMTP id a1-20020ac25041000000b004f845aaf848mr3692709lfm.25.1687032477922; Sat, 17 Jun 2023 13:07:57 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id b17-20020a056512025100b004f763e3c0c6sm1747544lfo.115.2023.06.17.13.07.57 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Jun 2023 13:07:57 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= In-Reply-To: Date: Sat, 17 Jun 2023 22:07:56 +0200 Content-Transfer-Encoding: 7bit Message-Id: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> References: X-Mailer: Apple Mail (2.3654.120.0.1.15) Received-SPF: pass client-ip=2a00:1450:4864:20::136; envelope-from=mattias.engdegard@gmail.com; helo=mail-lf1-x136.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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) 17 juni 2023 kl. 20.44 skrev Stefan Monnier : > I think the behavior that makes most sense is to signal an error when > compiling the regexp. Clearly, but some behaviour needs to be preserved for compatibility. Regexps like "^*" aren't uncommon. Can it be generalised in a useful way? From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 17 Jun 2023 22:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= , Stefan Monnier Cc: 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168704029419906 (code B ref 64128); Sat, 17 Jun 2023 22:19:02 +0000 Received: (at 64128) by debbugs.gnu.org; 17 Jun 2023 22:18:14 +0000 Received: from localhost ([127.0.0.1]:52768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAeFJ-0005Az-RX for submit@debbugs.gnu.org; Sat, 17 Jun 2023 18:18:14 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:42434) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAeFE-0005AX-7K for 64128@debbugs.gnu.org; Sat, 17 Jun 2023 18:18:11 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id D88A63C020F7C; Sat, 17 Jun 2023 15:18:01 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id MWbmBjryrD6R; Sat, 17 Jun 2023 15:18:01 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 5A4EC3C09FB41; Sat, 17 Jun 2023 15:18:01 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 5A4EC3C09FB41 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1687040281; bh=llkGHMH5dhtUMlpsC3ITK8uJutGfIZ+L7wv80PaLO6U=; h=Message-ID:Date:MIME-Version:To:From; b=DQDwkBAMdO1A/5L8WFJ1gqDN1uVzajzq8JXi7h6LcB+dbYTs8//rwgzZ4WhXFj1G2 zmeXBIWXVN1BQsh/rPcqZs1JdtqCuEwHIP4s8JD0EPb6Z9Sl+1bK5qiWpKl5UfHZwU By+9dsxNuflrDvWsaXweRz5H11fpLkHeIRXl39OHs/7zZ8jchUcAGA5kpuS0CMfRTR Dv+36yMtNyU4lo9V/8WprxrpoCLu11tO5SIuOikg9MqfzgotZM1fMGDfV0l+d96r5p IeWdBzSZS3Fy6JtN19chDkqHSAN//6uo7UTnsc/WsE3CXa5rzEdesMRBYnrG1wJrsQ R7rhUvFX8Gd+g== X-Virus-Scanned: amavisd-new at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id XRBrUbu5fpBk; Sat, 17 Jun 2023 15:18:01 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 2B87C3C020F7C; Sat, 17 Jun 2023 15:18:01 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------1RRgvsv6eebocvFVK1FMlHHO" Message-ID: Date: Sat, 17 Jun 2023 15:18:00 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Content-Language: en-US References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> X-Spam-Score: -1.1 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) This is a multi-part message in MIME format. --------------1RRgvsv6eebocvFVK1FMlHHO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 2023-06-17 13:07, Mattias Engdeg=C3=A5rd wrote: > 17 juni 2023 kl. 20.44 skrev Stefan Monnier : >=20 >> I think the behavior that makes most sense is to signal an error when >> compiling the regexp. >=20 > Clearly, but some behaviour needs to be preserved for compatibility. > Regexps like "^*" aren't uncommon. Can it be generalised in a useful wa= y? >=20 doc/lispref/searching.texi says that "*" is treated as an ordinary=20 character if it is in a context where its special meaning makes no=20 sense, giving "*foo" as an example. If we break with this tradition by=20 making "\b*" an error instead of being equivalent to "\b\*", we should=20 update that part of the manual. One possible way forward is to update doc/lispref/searching.texi to=20 specify what we want. Then we can modify the code to match the updated=20 documentation. In my experience, modifying the doc is often the hard part, so I took a=20 crack at that in the draft proposed patch, which I have not installed. Comments? --------------1RRgvsv6eebocvFVK1FMlHHO Content-Type: text/x-patch; charset=UTF-8; name="0001-Document-that-b-etc-are-now-invalid-regexps.patch" Content-Disposition: attachment; filename="0001-Document-that-b-etc-are-now-invalid-regexps.patch" Content-Transfer-Encoding: base64 RnJvbSBlNGZjMzY5YTYyNGQ4NTAyN2QzOWE0MjRhNTA3NTA3ZGEwMGYyNmFhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDE3IEp1biAyMDIzIDE1OjA1OjQyIC0wNzAwClN1YmplY3Q6IFtQUk9Q T1NFRF0gRG9jdW1lbnQgdGhhdCBcYiogZXRjIGFyZSBub3cgaW52YWxpZCByZWdleHBzCgot LS0KIGRvYy9saXNwcmVmL3NlYXJjaGluZy50ZXhpIHwgMjQgKysrKysrKysrKysrKysrKy0t LS0tLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAgICAgICB8ICA2ICsrKysrKwogMiBmaWxl cyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RvYy9saXNwcmVmL3NlYXJjaGluZy50ZXhpIGIvZG9jL2xpc3ByZWYvc2VhcmNoaW5n LnRleGkKaW5kZXggYjhkOTA5NGIyOC4uZmQ0ZGZjYmQ3MSAxMDA2NDQKLS0tIGEvZG9jL2xp c3ByZWYvc2VhcmNoaW5nLnRleGkKKysrIGIvZG9jL2xpc3ByZWYvc2VhcmNoaW5nLnRleGkK QEAgLTMzMiw2ICszMzIsMTAgQEAgUmVnZXhwIFNwZWNpYWwKIGV4cHJlc3Npb24uICBUaHVz LCBAc2FtcHtmbyp9IGhhcyBhIHJlcGVhdGluZyBAc2FtcHtvfSwgbm90IGEgcmVwZWF0aW5n CiBAc2FtcHtmb30uICBJdCBtYXRjaGVzIEBzYW1we2Z9LCBAc2FtcHtmb30sIEBzYW1we2Zv b30sIGFuZCBzbyBvbi4KIAorQHNhbXB7Kn0gY2Fubm90IGltbWVkaWF0ZWx5IGZvbGxvdyBh IGJhY2tzbGFzaCBlc2NhcGUgdGhhdCBtYXRjaGVzCitvbmx5IGVtcHR5IHN0cmluZ3MsIGFz IHRoaXMgaXMgdG9vIGxpa2VseSB0byBiZSBhIHR5cG8uICBGb3IgZXhhbXBsZSwKK0BzYW1w e1w8Kn0gaXMgaW52YWxpZC4KKwogQGNpbmRleCBiYWNrdHJhY2tpbmcgYW5kIHJlZ3VsYXIg ZXhwcmVzc2lvbnMKIFRoZSBtYXRjaGVyIHByb2Nlc3NlcyBhIEBzYW1weyp9IGNvbnN0cnVj dCBieSBtYXRjaGluZywgaW1tZWRpYXRlbHksIGFzCiBtYW55IHJlcGV0aXRpb25zIGFzIGNh biBiZSBmb3VuZC4gIFRoZW4gaXQgY29udGludWVzIHdpdGggdGhlIHJlc3Qgb2YKQEAgLTUw NSw5ICs1MDksMTAgQEAgUmVnZXhwIFNwZWNpYWwKIFdoZW4gbWF0Y2hpbmcgYSBzdHJpbmcg aW5zdGVhZCBvZiBhIGJ1ZmZlciwgQHNhbXB7Xn0gbWF0Y2hlcyBhdCB0aGUKIGJlZ2lubmlu ZyBvZiB0aGUgc3RyaW5nIG9yIGFmdGVyIGEgbmV3bGluZSBjaGFyYWN0ZXIuCiAKLUZvciBo aXN0b3JpY2FsIGNvbXBhdGliaWxpdHkgcmVhc29ucywgQHNhbXB7Xn0gY2FuIGJlIHVzZWQg b25seSBhdCB0aGUKK0ZvciBoaXN0b3JpY2FsIGNvbXBhdGliaWxpdHksIEBzYW1we159IGlz IHNwZWNpYWwgb25seSBhdCB0aGUKIGJlZ2lubmluZyBvZiB0aGUgcmVndWxhciBleHByZXNz aW9uLCBvciBhZnRlciBAc2FtcHtcKH0sIEBzYW1we1woPzp9Ci1vciBAc2FtcHtcfH0uCitv ciBAc2FtcHtcfH0uICBJbiBvdGhlciBjb250ZXh0cyBpdCBpcyBhbiBvcmRpbmFyeSBjaGFy YWN0ZXIsIGV4Y2VwdAorZm9yIGl0cyBzcGVjaWFsIG1lYW5pbmcgYXQgdGhlIHN0YXJ0IG9m IGEgY2hhcmFjdGVyIGFsdGVybmF0aXZlLgogCiBAaXRlbSBAc2FtcHskfQogQGNpbmRleCBA c2FtcHskfSBpbiByZWdleHAKQEAgLTUxOSw4ICs1MjQsOSBAQCBSZWdleHAgU3BlY2lhbAog V2hlbiBtYXRjaGluZyBhIHN0cmluZyBpbnN0ZWFkIG9mIGEgYnVmZmVyLCBAc2FtcHskfSBt YXRjaGVzIGF0IHRoZSBlbmQKIG9mIHRoZSBzdHJpbmcgb3IgYmVmb3JlIGEgbmV3bGluZSBj aGFyYWN0ZXIuCiAKLUZvciBoaXN0b3JpY2FsIGNvbXBhdGliaWxpdHkgcmVhc29ucywgQHNh bXB7JH0gY2FuIGJlIHVzZWQgb25seSBhdCB0aGUKK0ZvciBoaXN0b3JpY2FsIGNvbXBhdGli aWxpdHksIEBzYW1weyR9IGlzIHNwZWNpYWwgb25seSBhdCB0aGUKIGVuZCBvZiB0aGUgcmVn dWxhciBleHByZXNzaW9uLCBvciBiZWZvcmUgQHNhbXB7XCl9IG9yIEBzYW1we1x8fS4KK0lu IG90aGVyIGNvbnRleHRzIGl0IGlzIGFuIG9yZGluYXJ5IGNoYXJhY3Rlci4KIAogQGl0ZW0g QHNhbXB7XH0KIEBjaW5kZXggQHNhbXB7XH0gaW4gcmVnZXhwCkBAIC01NDEsMTEgKzU0Nywx MyBAQCBSZWdleHAgU3BlY2lhbAogQGVuZCB0YWJsZQogCiBAc3Ryb25ne1BsZWFzZSBub3Rl On0gRm9yIGhpc3RvcmljYWwgY29tcGF0aWJpbGl0eSwgc3BlY2lhbCBjaGFyYWN0ZXJzCi1h cmUgdHJlYXRlZCBhcyBvcmRpbmFyeSBvbmVzIGlmIHRoZXkgYXJlIGluIGNvbnRleHRzIHdo ZXJlIHRoZWlyIHNwZWNpYWwKLW1lYW5pbmdzIG1ha2Ugbm8gc2Vuc2UuICBGb3IgZXhhbXBs ZSwgQHNhbXB7KmZvb30gdHJlYXRzIEBzYW1weyp9IGFzCi1vcmRpbmFyeSBzaW5jZSB0aGVy ZSBpcyBubyBwcmVjZWRpbmcgZXhwcmVzc2lvbiBvbiB3aGljaCB0aGUgQHNhbXB7Kn0KLWNh biBhY3QuICBJdCBpcyBwb29yIHByYWN0aWNlIHRvIGRlcGVuZCBvbiB0aGlzIGJlaGF2aW9y OyBxdW90ZSB0aGUKLXNwZWNpYWwgY2hhcmFjdGVyIGFueXdheSwgcmVnYXJkbGVzcyBvZiB3 aGVyZSBpdCBhcHBlYXJzLgorYXJlIHRyZWF0ZWQgYXMgb3JkaW5hcnkgb25lcyBpZiB0aGV5 IHdvdWxkIG90aGVyd2lzZSBzdGFydCByZXBldGl0aW9uCitvcGVyYXRvcnMgZWl0aGVyIGF0 IHRoZSBzdGFydCBvZiBhIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3IgYWZ0ZXIKK0BzYW1we159 LCBAc2FtcHtcKH0sIEBzYW1we1woPzp9IG9yIEBzYW1we1x8fS4gIEZvciBleGFtcGxlLAor QHNhbXB7KmZvb30gaXMgdHJlYXRlZCBhcyBAc2FtcHtcKmZvb30sIGFuZCBAc2FtcHt0d29c fF5cQHsyXEB9fSBpcwordHJlYXRlZCBhcyBAc2FtcHt0d29cfF5AezJAfX0uICBJdCBpcyBw b29yIHByYWN0aWNlIHRvIGRlcGVuZCBvbiB0aGlzCitiZWhhdmlvcjsgdXNlIHByb3BlciBi YWNrc2xhc2ggZXNjYXBpbmcgYW55d2F5LCByZWdhcmRsZXNzIG9mIHdoZXJlCit0aGUgc3Bl Y2lhbCBjaGFyYWN0ZXIgYXBwZWFycy4KIAogQXMgYSBAc2FtcHtcfSBpcyBub3Qgc3BlY2lh bCBpbnNpZGUgYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUsIGl0IGNhbgogbmV2ZXIgcmVtb3Zl IHRoZSBzcGVjaWFsIG1lYW5pbmcgb2YgQHNhbXB7LX0sIEBzYW1we159IG9yIEBzYW1we119 LgpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCA2MWU2ZTE2MTY2Li4w YzQ4ODlmOWE2IDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpAQCAtNDM2 LDYgKzQzNiwxMiBAQCBQcmV2aW91c2x5LCAnXHgnIHdpdGhvdXQgYXQgbGVhc3Qgb25lIGhl eCBkaWdpdCBkZW5vdGVkIGNoYXJhY3RlciBjb2RlCiB6ZXJvIChOVUwpIGJ1dCBhcyB0aGlz IHdhcyBuZWl0aGVyIGludGVuZGVkIG5vciBkb2N1bWVudGVkIG9yIGV2ZW4KIGtub3duIGJ5 IGFueW9uZSwgaXQgaXMgbm93IHRyZWF0ZWQgYXMgYW4gZXJyb3IgYnkgdGhlIExpc3AgcmVh ZGVyLgogCis9PT0KKyoqIEluIHJlZ3VsYXIgZXhwcmVzc2lvbnMsIHplcm8td2lkdGggYmFj a3NsYXNoIGVzY2FwZXMgY2FuIG5vIGxvbmdlcgorYmUgZm9sbG93ZWQgYnkgcmVwZXRpdGlv biBvcGVyYXRvcnMuICBGb3IgZXhhbXBsZSwgJ1xiKicgaXMgbm8gbG9uZ2VyCithIHZhbGlk IHJlZ3VsYXIgZXhwcmVzc2lvbi4gIFByZXZpb3VzbHkgdGhlIGJlaGF2aW9yIHdhcyBlcnJh dGljIGZvcgordGhlc2UgY29uc3RydWN0cywgYW5kIHRoZXkgd2VyZSB0eXBpY2FsbHkgdHlw b3MgYW55d2F5LgorCiAtLS0KICoqIENvbm5lY3Rpb24tbG9jYWwgdmFyaWFibGVzIGFyZSBh cHBsaWVkIGluIGJ1ZmZlcnMgdmlzaXRpbmcgYSByZW1vdGUgZmlsZS4KIFRoaXMgb3ZlcnJp ZGVzIHBvc3NpYmxlIGRpcmVjdG9yeS1sb2NhbCBvciBmaWxlLWxvY2FsIHZhcmlhYmxlcyB3 aXRoCi0tIAoyLjM5LjIKCg== --------------1RRgvsv6eebocvFVK1FMlHHO-- From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 18 Jun 2023 04:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Paul Eggert Cc: mattias.engdegard@gmail.com, monnier@iro.umontreal.ca, 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168706411126618 (code B ref 64128); Sun, 18 Jun 2023 04:56:02 +0000 Received: (at 64128) by debbugs.gnu.org; 18 Jun 2023 04:55:11 +0000 Received: from localhost ([127.0.0.1]:52936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAkRS-0006vG-Q9 for submit@debbugs.gnu.org; Sun, 18 Jun 2023 00:55:11 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48290) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAkRP-0006uz-W7 for 64128@debbugs.gnu.org; Sun, 18 Jun 2023 00:55:10 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qAkRJ-00030b-7u; Sun, 18 Jun 2023 00:55:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=lEqIMPk0mBVjEF5TqnFvU/NCE5PnFayI6PRtUHcSVaI=; b=Ok9xHs/YHMmE zCc8iTxeqMOj+JRiVZbFzbwujQ1kFML48kFgKg1LU7XEhTcT2ANIcUA4UNlKuur/kPmcwGiuiEW2t yiOHpXy2wFcxdB1smJz5nkZVZS0awXGLkZmj+xF8C2H9R8mTHTfRAru7w6EDlb6fKp/4vYxTdvYvq 65bkNGQzBu7/Xd23kkZyj0j7fbC+sgHt2st/T84Z0lEr3IHkodgnAHf47o7sWLuy/uqDq/KACUhPf uZY0vJ/mAMipuFZt3KoTxO2LH0Uds+LVInvFaWVYBCcJ0Qbu9EMocA1+eW6F2LoS45Ac2qT7BGyjs 1yGv9WyYrY5jtvU2DRMfJw==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qAkRI-0004sN-N3; Sun, 18 Jun 2023 00:55:01 -0400 Date: Sun, 18 Jun 2023 07:55:01 +0300 Message-Id: <83pm5tpdy2.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Paul Eggert on Sat, 17 Jun 2023 15:18:00 -0700) References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: 64128@debbugs.gnu.org > Date: Sat, 17 Jun 2023 15:18:00 -0700 > From: Paul Eggert > > > Clearly, but some behaviour needs to be preserved for compatibility. > > Regexps like "^*" aren't uncommon. Can it be generalised in a useful way? > > > > doc/lispref/searching.texi says that "*" is treated as an ordinary > character if it is in a context where its special meaning makes no > sense, giving "*foo" as an example. If we break with this tradition by > making "\b*" an error instead of being equivalent to "\b\*", we should > update that part of the manual. > > One possible way forward is to update doc/lispref/searching.texi to > specify what we want. Then we can modify the code to match the updated > documentation. > > In my experience, modifying the doc is often the hard part, so I took a > crack at that in the draft proposed patch, which I have not installed. > > Comments? My comment is that since this was a documented feature, I'm not interested in making it an error. From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 18 Jun 2023 20:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: Paul Eggert , monnier@iro.umontreal.ca, 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168711999825539 (code B ref 64128); Sun, 18 Jun 2023 20:27:01 +0000 Received: (at 64128) by debbugs.gnu.org; 18 Jun 2023 20:26:38 +0000 Received: from localhost ([127.0.0.1]:55001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAyys-0006dr-2W for submit@debbugs.gnu.org; Sun, 18 Jun 2023 16:26:38 -0400 Received: from mail-lj1-f170.google.com ([209.85.208.170]:53300) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qAyyp-0006db-LF for 64128@debbugs.gnu.org; Sun, 18 Jun 2023 16:26:36 -0400 Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-2b4636bb22eso21495821fa.2 for <64128@debbugs.gnu.org>; Sun, 18 Jun 2023 13:26:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687119990; x=1689711990; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=2rqZJTe/cZi2XdkI62XexNShpL5WuZ+p9P2Ig1+P+Oc=; b=dtdXwP+YJYmo4u2hm5jHxi0mkCH79/WnLRIJJatxY6qJ+1R/bAiZ8o/SMYsLBxKwha oezHYxbTFtKVUWDYXfdSVfxdlgkCfHLtQyAtzcjOnpejZDaRBJLx3h1oLjMTPdir5R5k IANRHSShPAm4LX7URWv4JJMRRvZ14zrvaQ5nD/ZfGhVb7t+ISOkuJ79Pr9FbZZkQP80R UsFtdZ5TYv85k6/g4A1oN3N+xw5xBxj09LHLZ6zQ6omXKQxg2tVVvm/uZs+JHFMtXuDQ VCe6cV3LfdSlVtCkWed99/YMX/YSD1RETF83Xh/spO6L7FjJBQe2jRsdu6/PTsvHmeHM 7oJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687119990; x=1689711990; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=2rqZJTe/cZi2XdkI62XexNShpL5WuZ+p9P2Ig1+P+Oc=; b=XkrAt/St7TkA0dH7nb1/ju/kmWIoS5IvVSMyWN8Jw42/KpohNsfvCbC1223TqmHpNC MSV1Wd7t2Y62LYpTqLZcFMGWcsIaIB0yQUDm5JX4kuJRWre+qXoIp2KQ3kIx8LNS4gQP nTJhGDtEWXNXkyERLYH5O2LQcHVC/CA/z+2hNdCh1YsFyeKHnRwZ0A8QGyCzLIxswso4 x6vIjS1B26mCC0W+IIRx50dvGeL1b2GLVuQIk1BuZfqsjhPGYIwvUGq8O4KPgVcYsmwB 9XIYYqyyeFD5UIEv4QL9n26SuFATXQCmEqWwT5nmS5GzlsAEg40KEoxB7J1+7Pru2Kxw YUgw== X-Gm-Message-State: AC+VfDwg/fJEnuZ7thsXvncIQi25Av5SqL53KEIFxcP3sTxSVzuyi04f +gQjb0Y7UrqY80Q/9/hwohU= X-Google-Smtp-Source: ACHHUZ4AltouwGOQukMGbjShHQVbjJUy+HeVQLO7nhk7VprMHxM57JxhTxsewRDnv/CtMzEzGx1ZeQ== X-Received: by 2002:a2e:3e1a:0:b0:2b1:e958:efa0 with SMTP id l26-20020a2e3e1a000000b002b1e958efa0mr4538085lja.50.1687119989451; Sun, 18 Jun 2023 13:26:29 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id v4-20020a2e9604000000b002b33e954509sm2769219ljh.119.2023.06.18.13.26.28 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 18 Jun 2023 13:26:28 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= In-Reply-To: <83pm5tpdy2.fsf@gnu.org> Date: Sun, 18 Jun 2023 22:26:28 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) 18 juni 2023 kl. 06.55 skrev Eli Zaretskii : > My comment is that since this was a documented feature, I'm not > interested in making it an error. Yes, it would be unwise to raise an error for "^*" or the like; it's in = active use. The manual is a bit hazy about what we actually promise, though. As Paul notes, we must be able to document it and that might not be = easy, so perhaps we shouldn't even try (to change, or document)? To make everything clear, we have to groups of zero-width assertions: Group A: ^ $ \` \' \b \B Group B: \< \> \_< \_> \=3D Group B assertions work like ordinary elements, syntactically and = semantically. Simple, predictable, but also useless. Group A assertions are more interesting: either there is nothing before = a train of such assertions, such as "^\\`\\b\\`*?" which turns the first character of the operator into a literal (and a = second character, if present, now becomes an operator acting on that = literal). Or there is something, and the operator acts on the last element = preceding the assertions, except that multiple literal characters = coalesce to a single element. Except if one of the literal chars is an = out-of-place `^` which splits a sequence of literals into separate = segments but not exactly where you think it would. For example, "abc^def\\B\\B+?" means, I think, (seq "ab" (+? "c^def" not-word-boundary not-word-boundary)) From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2023 03:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Cc: Eli Zaretskii , Paul Eggert , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168714389930353 (code B ref 64128); Mon, 19 Jun 2023 03:05:01 +0000 Received: (at 64128) by debbugs.gnu.org; 19 Jun 2023 03:04:59 +0000 Received: from localhost ([127.0.0.1]:55327 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qB5CN-0007tV-HE for submit@debbugs.gnu.org; Sun, 18 Jun 2023 23:04:59 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:8265) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qB5CL-0007tG-2L for 64128@debbugs.gnu.org; Sun, 18 Jun 2023 23:04:57 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 700D3441DA1; Sun, 18 Jun 2023 23:04:51 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 43B21441D6D; Sun, 18 Jun 2023 23:04:50 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1687143890; bh=VW1hFchXSZb96oGF7QTnazp3iCBwuWrZ3J4vA6/gInc=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=PskoKwOl6xbKuk0KjecZa6hOq5GvO7L0ouvIgeaaawKqrGDsZKW4V8rFhSSUnzZ7O bXoDTo5siGMGYkhqJ28cMlEdgBzcBa4DZy8mZ/efv9MacnVzxUVbv9b4B5uQy2Lpme +Sms6njbAZsxkoMyMQdOirvlVokfWdqMhB/6fGh4VCTiBlNW/Plh8TrIjk77pczh3/ w3KNxy7WSKrH6OIa2bw0xcb68f/VyHLJWEekK5is05D1J6Z8K6G/AfFYb7h0IGCOoA DzeLGfVenMkZTSEnIoGy7h76FW7Q5zLgy1nVSdc772C11xhsM60lEqI3jrYs5ubSX6 lUaaSWkEoXVDw== Received: from pastel (unknown [45.72.207.87]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id F1FC212094B; Sun, 18 Jun 2023 23:04:49 -0400 (EDT) From: Stefan Monnier In-Reply-To: ("Mattias =?UTF-8?Q?Engdeg=C3=A5rd?="'s message of "Sun, 18 Jun 2023 22:26:28 +0200") Message-ID: References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> Date: Sun, 18 Jun 2023 23:04:49 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.044 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain T_SCC_BODY_TEXT_LINE -0.01 - X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > To make everything clear, we have to groups of zero-width assertions: > > Group A: ^ $ \` \' \b \B IIRC `^` is only special if it's at the beginning of a group, so `^*` will always treat this * as a literal, right? "Similarly" `$` is only special if it's at the end of a group, so `$*` will always be a repetition of the $ character no? So the remaining problematic elements are \` \' \b and \B I suspect if we don't want to signal errors, the next best thing is to treat them like group B. Stefan From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2023 08:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: Eli Zaretskii , Paul Eggert , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.16871642559152 (code B ref 64128); Mon, 19 Jun 2023 08:45:02 +0000 Received: (at 64128) by debbugs.gnu.org; 19 Jun 2023 08:44:15 +0000 Received: from localhost ([127.0.0.1]:55490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBAUh-0002NX-36 for submit@debbugs.gnu.org; Mon, 19 Jun 2023 04:44:15 -0400 Received: from mail-lf1-f51.google.com ([209.85.167.51]:59741) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBAUe-0002NA-U8 for 64128@debbugs.gnu.org; Mon, 19 Jun 2023 04:44:13 -0400 Received: by mail-lf1-f51.google.com with SMTP id 2adb3069b0e04-4f86e1bdce5so1179533e87.3 for <64128@debbugs.gnu.org>; Mon, 19 Jun 2023 01:44:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687164246; x=1689756246; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=CJobdB4JqEb22jYmkRHjNqmlmZavTxNLp+PwY/VTfoY=; b=fhAPYXi+9oXrGwNwUqAmK/fM6Tcz+Iz2PhzyYOHAnlnaTKKtSmcDJHR3YLZlKDypDw 9xWa7JgtNcYin7rYGu4ieqCA8fZUgkDw1wx4ZaV39lTZOHobrGvBWAyHXCVePPscUvLO G4ks/ySp5G49zz9IDJY+tTk6ZsGJAECvKGSUt+oKMOULeuty6ZnYDSqbpcEJhZomxz+9 oxaKmkTs4IsoEQTfTMCYN8Tzb44BqwSlgw+CAfuv36SQuYPzac8Lqnc7oWmayNEOSsOE R3HgOPi1K1Gb5pMAkvG0qDP8iH8dBZnVEK4fkBmkgqLW29lRsrYMHKd+U3/VB2swjJWs A6MQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687164246; x=1689756246; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=CJobdB4JqEb22jYmkRHjNqmlmZavTxNLp+PwY/VTfoY=; b=TiDN4PJ4SDfJxmXraOmEsTP4yp5ilBVouc9SszlL0vyOa8qEXiih9/UNA4xHZNq9Mt ZPzbu8zvE3dcDyehhTXzBc7LrBMYRnpYQmbvwtHFhpynqwtA96duPK7jWLHyndm8wqRU JT8ZikCxtee4bnn2dIVC7xvKw4p3vhyPAFo8zrNAKT3LPfvclmnuUcTh5xVK1wI7taXt 8QUQdqJIYof5JZjCl2OXyKdi8g7OMovzGy5iKphgSd2I7jXJjh3TPFlwsKrUR/ZUiAqv Xdd5zF/EOipLs/NL/4miVbno9Dw92pU62QUVYl8ddhuRvGzKQA7mY6Y/TH4/XUKm2XW1 /4BQ== X-Gm-Message-State: AC+VfDx3a69lXKH8h7O8s5Wz64lRX83vglMsOwQ7yqU+us62yyKYWSgg fRKpbRccp30hIu8Wm4CVaPY= X-Google-Smtp-Source: ACHHUZ5amvoXXo1ba5YY47YiZwTvnri6Pjs7BpOMQj9yp2xdmhkbTJPOSOJyPe5sOgNn1kt31KX9yA== X-Received: by 2002:a19:9209:0:b0:4f8:6fe9:3c9c with SMTP id u9-20020a199209000000b004f86fe93c9cmr1120587lfd.49.1687164246271; Mon, 19 Jun 2023 01:44:06 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id v11-20020a056512096b00b004f64582a6e6sm4189246lft.207.2023.06.19.01.44.05 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Jun 2023 01:44:05 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= In-Reply-To: Date: Mon, 19 Jun 2023 10:44:04 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) 19 juni 2023 kl. 05.04 skrev Stefan Monnier : > `^` is only special if it's at the beginning of a group, so `^*` will > always treat this * as a literal, right? > "Similarly" `$` is only special if it's at the end of a group, so `$*` = will > always be a repetition of the $ character no? Yes, ^ and $ have additional rules for when they are plain literals and = not subject to these bugs at all. The literal-splitting powers of ^ have now (075e77ac44) been removed. > So the remaining problematic elements are \` \' \b and \B \`* has been observed, so we probably need to keep that working as well. > I suspect if we don't want to signal errors, the next best thing is to > treat them like group B. Yes, maybe; they are less likely to be followed by an operator-literal, = but it would also be good to have all zero-width assertions work the = same way. On the other hand, it can't be worse than we have now, as long as we get = rid of the "quack,\\b*" semantics. From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2023 12:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Cc: Eli Zaretskii , Paul Eggert , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168717927224766 (code B ref 64128); Mon, 19 Jun 2023 12:55:01 +0000 Received: (at 64128) by debbugs.gnu.org; 19 Jun 2023 12:54:32 +0000 Received: from localhost ([127.0.0.1]:55784 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBEOu-0006RN-Cd for submit@debbugs.gnu.org; Mon, 19 Jun 2023 08:54:32 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:40057) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBEOs-0006R9-M1 for 64128@debbugs.gnu.org; Mon, 19 Jun 2023 08:54:31 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 18D8A44219A; Mon, 19 Jun 2023 08:54:25 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 9961D44214A; Mon, 19 Jun 2023 08:54:23 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1687179263; bh=WhC3uPu+qb0kUmQqnlG+M8OMm4/nmpPKH7UKqaYXYV8=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=Yd/TBFlMHH09YSkwgzRhdT8V25heSsqCAUEX/2iyQkkieP1qvjmxcTLyn1CXNboTq 3W++PuttOflCX1ldwGj9Ihq/kYdT/m23PYgGG1tawwM4ph/CdIQnVczL/lPh6CkVk2 JulJzaUyo1lMDK4yp5DFSK40n5eZFOXfZF7WvRvxV0f4zzZTYzNglQho/GsuKUN3wc GyxbRuETk+dIws/WE0Nh5GK04H/DtmcR+yOnxJsKtt6gwVgWlKkDUqxIuxKNSaTCvR rKiNVkG+ttXtXI8FthKGR9DT1YmzCWltEMMpLuwO3efBb8/ok+oqjMnwAmYbp0lcPP mMy9wDDeYkq+Q== Received: from pastel (unknown [45.72.207.87]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 6B15712086B; Mon, 19 Jun 2023 08:54:23 -0400 (EDT) From: Stefan Monnier In-Reply-To: ("Mattias =?UTF-8?Q?Engdeg=C3=A5rd?="'s message of "Mon, 19 Jun 2023 10:44:04 +0200") Message-ID: References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> Date: Mon, 19 Jun 2023 08:54:22 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.044 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain T_SCC_BODY_TEXT_LINE -0.01 - X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) I wish there was a way to emit warnings about oddball constructs (starting with the "* is literal when encountered at the beginning of a regexp"). Stefan Mattias Engdeg=E5rd [2023-06-19 10:44:04] wrote: > 19 juni 2023 kl. 05.04 skrev Stefan Monnier : > >> `^` is only special if it's at the beginning of a group, so `^*` will >> always treat this * as a literal, right? >> "Similarly" `$` is only special if it's at the end of a group, so `$*` w= ill >> always be a repetition of the $ character no? > > Yes, ^ and $ have additional rules for when they are plain literals and n= ot > subject to these bugs at all. > > The literal-splitting powers of ^ have now (075e77ac44) been removed. > >> So the remaining problematic elements are \` \' \b and \B > > \`* has been observed, so we probably need to keep that working as well. > >> I suspect if we don't want to signal errors, the next best thing is to >> treat them like group B. > > Yes, maybe; they are less likely to be followed by an operator-literal, b= ut > it would also be good to have all zero-width assertions work the same way. > On the other hand, it can't be worse than we have now, as long as we get = rid > of the "quack,\\b*" semantics. From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2023 18:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Cc: Eli Zaretskii , monnier@iro.umontreal.ca, 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168719847128927 (code B ref 64128); Mon, 19 Jun 2023 18:15:02 +0000 Received: (at 64128) by debbugs.gnu.org; 19 Jun 2023 18:14:31 +0000 Received: from localhost ([127.0.0.1]:57273 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBJOY-0007WT-18 for submit@debbugs.gnu.org; Mon, 19 Jun 2023 14:14:31 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:49046) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBJOV-0007W9-2J for 64128@debbugs.gnu.org; Mon, 19 Jun 2023 14:14:28 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 2BA133C020F7C; Mon, 19 Jun 2023 11:14:21 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 2rOFVUmkQNB3; Mon, 19 Jun 2023 11:14:20 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id EF0A83C09FB42; Mon, 19 Jun 2023 11:14:19 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu EF0A83C09FB42 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1687198460; bh=0eTq1s7cRjrYRLFyNKpgeTb4ly1B1AXhxN4MLmXk124=; h=Message-ID:Date:MIME-Version:To:From; b=UIClSScrygDgpNNP/KHv85/hSS3K/OfKH0u/J2OfPm8fR3PShjmjqMBqjT84jaHPY 7Yu65ikzd744286ozg1KqD6/OGeWRvcBvWA3lKEHs1irtL3Gzy+Jmxgm2IogBimYxO b1bq+h99otyK88LCk7hCFmWGiDzcdSXknlRJE4SQpGNnm6NfAjnPpenVBOCuzl1/fN IE427fpNdnGKZWbonvfv+SEGPHYXBqlH1EUmrV6DNpF1E9oHqp+QXmNHdhfPAWE2QB QT45ILIwnMxr7Rt9Xcz644xZTr3eZmTc5DZBT09uv8R4D12QA1RT3Yrdvj1H8EHMOY UWl5JctP0txkQ== X-Virus-Scanned: amavisd-new at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 4X0yfF4RUhVL; Mon, 19 Jun 2023 11:14:19 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id AAD533C020F7C; Mon, 19 Jun 2023 11:14:19 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------WveC1B3ElZHTe9phDlMuweW0" Message-ID: Date: Mon, 19 Jun 2023 11:14:18 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Content-Language: en-US References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: X-Spam-Score: -1.1 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) This is a multi-part message in MIME format. --------------WveC1B3ElZHTe9phDlMuweW0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 2023-06-18 13:26, Mattias Engdeg=C3=A5rd wrote: > The manual is a bit hazy about what we actually promise, though. >=20 > As Paul notes, we must be able to document it and that might not be eas= y, so perhaps we shouldn't even try (to change, or document)? Although it's not easy to document, we should do better. I gave that a=20 shot by installing the attached patches into the master branch. These=20 patches try to document current behavior, including warning about the=20 squirrelly behavior you mention. If/when we fix the squirrelly behavior=20 we can change that part of the manual accordingly. The last of the three patches is merely a terminology change: it=20 standardizes on the term "bracket expression" for regexps like [a-z].=20 Formerly the doc and comments were inconsistent about the terminology.=20 It's better to stick with the POSIX term here, to avoid confusion. I=20 myself got confused about this when editing the other two patches. Comments welcome as usual. --------------WveC1B3ElZHTe9phDlMuweW0 Content-Type: text/x-patch; charset=UTF-8; name="0001-Document-regular-expression-special-cases-better.patch" Content-Disposition: attachment; filename*0="0001-Document-regular-expression-special-cases-better.patch" Content-Transfer-Encoding: base64 RnJvbSBkODRiMDI2ZGJlZmNlNjYwNGEzNWE4MzEzMTY0OTI5MWE3NGZkYTY3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDE5IEp1biAyMDIzIDExOjA5OjAwIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAxLzNdIERvY3VtZW50IHJlZ3VsYXIgZXhwcmVzc2lvbiBzcGVjaWFsIGNhc2VzIGJldHRl cgoKSW4gcGFydGljdWxhciwgZG9jdW1lbnQgdGhhdCBlc2NhcGUgc2VxdWVuY2VzIGxpa2Ug XGIqCmFyZSBjdXJyZW50bHkgYnVnZ3kuCi0tLQogZG9jL2xpc3ByZWYvc2VhcmNoaW5nLnRl eGkgfCAyOCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTggaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2xp c3ByZWYvc2VhcmNoaW5nLnRleGkgYi9kb2MvbGlzcHJlZi9zZWFyY2hpbmcudGV4aQppbmRl eCBiOGQ5MDk0YjI4ZC4uMzk3MGZhZWJiZjMgMTAwNjQ0Ci0tLSBhL2RvYy9saXNwcmVmL3Nl YXJjaGluZy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL3NlYXJjaGluZy50ZXhpCkBAIC01MDUs OSArNTA1LDEwIEBAIFJlZ2V4cCBTcGVjaWFsCiBXaGVuIG1hdGNoaW5nIGEgc3RyaW5nIGlu c3RlYWQgb2YgYSBidWZmZXIsIEBzYW1we159IG1hdGNoZXMgYXQgdGhlCiBiZWdpbm5pbmcg b2YgdGhlIHN0cmluZyBvciBhZnRlciBhIG5ld2xpbmUgY2hhcmFjdGVyLgogCi1Gb3IgaGlz dG9yaWNhbCBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIEBzYW1we159IGNhbiBiZSB1c2VkIG9u bHkgYXQgdGhlCi1iZWdpbm5pbmcgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3IgYWZ0 ZXIgQHNhbXB7XCh9LCBAc2FtcHtcKD86fQotb3IgQHNhbXB7XHx9LgorRm9yIGhpc3Rvcmlj YWwgY29tcGF0aWJpbGl0eSwgQHNhbXB7Xn0gaXMgc3BlY2lhbCBvbmx5IGF0IHRoZSBiZWdp bm5pbmcKK29mIHRoZSByZWd1bGFyIGV4cHJlc3Npb24sIG9yIGFmdGVyIEBzYW1we1wofSwg QHNhbXB7XCg/On0gb3IgQHNhbXB7XHx9LgorQWx0aG91Z2ggQHNhbXB7Xn0gaXMgYW4gb3Jk aW5hcnkgY2hhcmFjdGVyIGluIG90aGVyIGNvbnRleHRzLAoraXQgaXMgZ29vZCBwcmFjdGlj ZSB0byB1c2UgQHNhbXB7XF59IGV2ZW4gdGhlbi4KIAogQGl0ZW0gQHNhbXB7JH0KIEBjaW5k ZXggQHNhbXB7JH0gaW4gcmVnZXhwCkBAIC01MTksOCArNTIwLDEwIEBAIFJlZ2V4cCBTcGVj aWFsCiBXaGVuIG1hdGNoaW5nIGEgc3RyaW5nIGluc3RlYWQgb2YgYSBidWZmZXIsIEBzYW1w eyR9IG1hdGNoZXMgYXQgdGhlIGVuZAogb2YgdGhlIHN0cmluZyBvciBiZWZvcmUgYSBuZXds aW5lIGNoYXJhY3Rlci4KIAotRm9yIGhpc3RvcmljYWwgY29tcGF0aWJpbGl0eSByZWFzb25z LCBAc2FtcHskfSBjYW4gYmUgdXNlZCBvbmx5IGF0IHRoZQorRm9yIGhpc3RvcmljYWwgY29t cGF0aWJpbGl0eSwgQHNhbXB7JH0gaXMgc3BlY2lhbCBvbmx5IGF0IHRoZQogZW5kIG9mIHRo ZSByZWd1bGFyIGV4cHJlc3Npb24sIG9yIGJlZm9yZSBAc2FtcHtcKX0gb3IgQHNhbXB7XHx9 LgorQWx0aG91Z2ggQHNhbXB7JH0gaXMgYW4gb3JkaW5hcnkgY2hhcmFjdGVyIGluIG90aGVy IGNvbnRleHRzLAoraXQgaXMgZ29vZCBwcmFjdGljZSB0byB1c2UgQHNhbXB7XCR9IGV2ZW4g dGhlbi4KIAogQGl0ZW0gQHNhbXB7XH0KIEBjaW5kZXggQHNhbXB7XH0gaW4gcmVnZXhwCkBA IC01NDAsMTIgKzU0MywxNyBAQCBSZWdleHAgU3BlY2lhbAogQHNhbXB7XH0gaXMgQGNvZGV7 IlxcXFwifS4KIEBlbmQgdGFibGUKIAotQHN0cm9uZ3tQbGVhc2Ugbm90ZTp9IEZvciBoaXN0 b3JpY2FsIGNvbXBhdGliaWxpdHksIHNwZWNpYWwgY2hhcmFjdGVycwotYXJlIHRyZWF0ZWQg YXMgb3JkaW5hcnkgb25lcyBpZiB0aGV5IGFyZSBpbiBjb250ZXh0cyB3aGVyZSB0aGVpciBz cGVjaWFsCi1tZWFuaW5ncyBtYWtlIG5vIHNlbnNlLiAgRm9yIGV4YW1wbGUsIEBzYW1weypm b299IHRyZWF0cyBAc2FtcHsqfSBhcwotb3JkaW5hcnkgc2luY2UgdGhlcmUgaXMgbm8gcHJl Y2VkaW5nIGV4cHJlc3Npb24gb24gd2hpY2ggdGhlIEBzYW1weyp9Ci1jYW4gYWN0LiAgSXQg aXMgcG9vciBwcmFjdGljZSB0byBkZXBlbmQgb24gdGhpcyBiZWhhdmlvcjsgcXVvdGUgdGhl Ci1zcGVjaWFsIGNoYXJhY3RlciBhbnl3YXksIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgaXQgYXBw ZWFycy4KK0ZvciBoaXN0b3JpY2FsIGNvbXBhdGliaWxpdHksIGEgcmVwZXRpdGlvbiBvcGVy YXRvciBpcyB0cmVhdGVkIGFzIG9yZGluYXJ5CitpZiBpdCBhcHBlYXJzIGF0IHRoZSBzdGFy dCBvZiBhIHJlZ3VsYXIgZXhwcmVzc2lvbgorb3IgYWZ0ZXIgQHNhbXB7Xn0sIEBzYW1we1wo fSwgQHNhbXB7XCg/On0gb3IgQHNhbXB7XHx9LgorRm9yIGV4YW1wbGUsIEBzYW1weypmb299 IGlzIHRyZWF0ZWQgYXMgQHNhbXB7XCpmb299LCBhbmQKK0BzYW1we3R3b1x8XlxAezJcQH19 IGlzIHRyZWF0ZWQgYXMgQHNhbXB7dHdvXHxeQHsyQH19LgorSXQgaXMgcG9vciBwcmFjdGlj ZSB0byBkZXBlbmQgb24gdGhpcyBiZWhhdmlvcjsgdXNlIHByb3BlciBiYWNrc2xhc2gKK2Vz Y2FwaW5nIGFueXdheSwgcmVnYXJkbGVzcyBvZiB3aGVyZSB0aGUgcmVwZXRpdGlvbiBvcGVy YXRvciBhcHBlYXJzLgorQWxzbywgYSByZXBldGl0aW9uIG9wZXJhdG9yIHNob3VsZCBub3Qg aW1tZWRpYXRlbHkgZm9sbG93IGEgYmFja3NsYXNoIGVzY2FwZQordGhhdCBtYXRjaGVzIG9u bHkgZW1wdHkgc3RyaW5ncywgYXMgRW1hY3MgaGFzIGJ1Z3MgaW4gdGhpcyBhcmVhLgorRm9y IGV4YW1wbGUsIGl0IGlzIHVud2lzZSB0byB1c2UgQHNhbXB7XGIqfSwgd2hpY2ggY2FuIGJl IG9taXR0ZWQKK3dpdGhvdXQgY2hhbmdpbmcgdGhlIGRvY3VtZW50ZWQgbWVhbmluZyBvZiB0 aGUgcmVndWxhciBleHByZXNzaW9uLgogCiBBcyBhIEBzYW1we1x9IGlzIG5vdCBzcGVjaWFs IGluc2lkZSBhIGNoYXJhY3RlciBhbHRlcm5hdGl2ZSwgaXQgY2FuCiBuZXZlciByZW1vdmUg dGhlIHNwZWNpYWwgbWVhbmluZyBvZiBAc2FtcHstfSwgQHNhbXB7Xn0gb3IgQHNhbXB7XX0u Ci0tIAoyLjM5LjIKCg== --------------WveC1B3ElZHTe9phDlMuweW0 Content-Type: text/x-patch; charset=UTF-8; name="0002-Document-Emacs-vs-POSIX-REs.patch" Content-Disposition: attachment; filename="0002-Document-Emacs-vs-POSIX-REs.patch" Content-Transfer-Encoding: base64 RnJvbSA1ZGZlM2YyMWQxMmExMDcwNTVmYjQ0N2JlNThiOTRiZTk4YzJmNjI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDE5IEp1biAyMDIzIDExOjA5OjAwIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAyLzNdIERvY3VtZW50IEVtYWNzIHZzIFBPU0lYIFJFcwoKKiBkb2MvbGlzcHJlZi9zZWFy Y2hpbmcudGV4aSAoTG9uZ2VzdCBNYXRjaCk6ClJlbmFtZSBmcm9tIFBPU0lYIFJlZ2V4cHMs IGFzIHRoaXMgc2VjdGlvbgppcyBhYm91dCBsb25nZXN0LW1hdGNoIGZ1bmN0aW9ucywgbm90 IGFib3V0IFBPU0lYIHJlZ2V4cHMuCihQT1NJWCBSZWdleHBzKTogTmV3IHNlY3Rpb24uCi0t LQogZG9jL2xpc3ByZWYvc2VhcmNoaW5nLnRleGkgfCAxMDUgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL3NlYXJjaGluZy50 ZXhpIGIvZG9jL2xpc3ByZWYvc2VhcmNoaW5nLnRleGkKaW5kZXggMzk3MGZhZWJiZjMuLjYw OGFiYWU3NjJjIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9zZWFyY2hpbmcudGV4aQorKysg Yi9kb2MvbGlzcHJlZi9zZWFyY2hpbmcudGV4aQpAQCAtMTgsMTEgKzE4LDEyIEBAIFNlYXJj aGluZyBhbmQgTWF0Y2hpbmcKICogU2VhcmNoaW5nIGFuZCBDYXNlOjogICAgQ2FzZS1pbmRl cGVuZGVudCBvciBjYXNlLXNpZ25pZmljYW50IHNlYXJjaGluZy4KICogUmVndWxhciBFeHBy ZXNzaW9uczo6ICAgRGVzY3JpYmluZyBjbGFzc2VzIG9mIHN0cmluZ3MuCiAqIFJlZ2V4cCBT ZWFyY2g6OiAgICAgICAgIFNlYXJjaGluZyBmb3IgYSBtYXRjaCBmb3IgYSByZWdleHAuCi0q IFBPU0lYIFJlZ2V4cHM6OiAgICAgICAgIFNlYXJjaGluZyBQT1NJWC1zdHlsZSBmb3IgdGhl IGxvbmdlc3QgbWF0Y2guCisqIExvbmdlc3QgTWF0Y2g6OiAgICAgICAgIFNlYXJjaGluZyBm b3IgdGhlIGxvbmdlc3QgbWF0Y2guCiAqIE1hdGNoIERhdGE6OiAgICAgICAgICAgIEZpbmRp bmcgb3V0IHdoaWNoIHBhcnQgb2YgdGhlIHRleHQgbWF0Y2hlZCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhZnRlciBhIHN0cmluZyBvciByZWdleHAgc2VhcmNoLgogKiBTZWFy Y2ggYW5kIFJlcGxhY2U6OiAgICBDb21tYW5kcyB0aGF0IGxvb3AsIHNlYXJjaGluZyBhbmQg cmVwbGFjaW5nLgogKiBTdGFuZGFyZCBSZWdleHBzOjogICAgICBVc2VmdWwgcmVnZXhwcyBm b3IgZmluZGluZyBzZW50ZW5jZXMsIHBhZ2VzLC4uLgorKiBQT1NJWCBSZWdleHBzOjogICAg ICAgICBFbWFjcyByZWdleHBzIHZzIFBPU0lYIHJlZ2V4cHMuCiBAZW5kIG1lbnUKIAogICBU aGUgQHNhbXB7c2tpcC1jaGFyc0Bkb3Rze319IGZ1bmN0aW9ucyBhbHNvIHBlcmZvcm0gYSBr aW5kIG9mIHNlYXJjaGluZy4KQEAgLTIyMDEsOCArMjIwMiw4IEBAIFJlZ2V4cCBTZWFyY2gK IGEgcGFydCBvZiB0aGUgY29kZS4KIEBlbmQgZGVmdmFyCiAKLUBub2RlIFBPU0lYIFJlZ2V4 cHMKLUBzZWN0aW9uIFBPU0lYIFJlZ3VsYXIgRXhwcmVzc2lvbiBTZWFyY2hpbmcKK0Bub2Rl IExvbmdlc3QgTWF0Y2gKK0BzZWN0aW9uIExvbmdlc3QtbWF0Y2ggc2VhcmNoaW5nIGZvciBy ZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hlcwogCiBAY2luZGV4IGJhY2t0cmFja2luZyBhbmQg UE9TSVggcmVndWxhciBleHByZXNzaW9ucwogICBUaGUgdXN1YWwgcmVndWxhciBleHByZXNz aW9uIGZ1bmN0aW9ucyBkbyBiYWNrdHJhY2tpbmcgd2hlbiBuZWNlc3NhcnkKQEAgLTIyMTcs NyArMjIxOCw5IEBAIFBPU0lYIFJlZ2V4cHMKIG1hdGNoLCBhcyByZXF1aXJlZCBieSBQT1NJ WEAuICBUaGlzIGlzIG11Y2ggc2xvd2VyLCBzbyB1c2UgdGhlc2UKIGZ1bmN0aW9ucyBvbmx5 IHdoZW4geW91IHJlYWxseSBuZWVkIHRoZSBsb25nZXN0IG1hdGNoLgogCi0gIFRoZSBQT1NJ WCBzZWFyY2ggYW5kIG1hdGNoIGZ1bmN0aW9ucyBkbyBub3QgcHJvcGVybHkgc3VwcG9ydCB0 aGUKKyAgRGVzcGl0ZSB0aGVpciBuYW1lcywgdGhlIFBPU0lYIHNlYXJjaCBhbmQgbWF0Y2gg ZnVuY3Rpb25zCit1c2UgRW1hY3MgcmVndWxhciBleHByZXNzaW9ucywgbm90IFBPU0lYIHJl Z3VsYXIgZXhwcmVzc2lvbnMuCitAeHJlZntQT1NJWCBSZWdleHBzfS4gIEFsc28sIHRoZXkg ZG8gbm90IHByb3Blcmx5IHN1cHBvcnQgdGhlCiBub24tZ3JlZWR5IHJlcGV0aXRpb24gb3Bl cmF0b3JzIChAcHhyZWZ7UmVnZXhwIFNwZWNpYWwsIG5vbi1ncmVlZHl9KS4KIFRoaXMgaXMg YmVjYXVzZSBQT1NJWCBiYWNrdHJhY2tpbmcgY29uZmxpY3RzIHdpdGggdGhlIHNlbWFudGlj cyBvZgogbm9uLWdyZWVkeSByZXBldGl0aW9uLgpAQCAtMjk2NSwzICsyOTY4LDk3IEBAIFN0 YW5kYXJkIFJlZ2V4cHMKIEBjb2Rle3NlbnRlbmNlLWVuZC13aXRob3V0LXBlcmlvZH0sIGFu ZAogQGNvZGV7c2VudGVuY2UtZW5kLXdpdGhvdXQtc3BhY2V9LgogQGVuZCBkZWZ1bgorCitA bm9kZSBQT1NJWCBSZWdleHBzCitAc2VjdGlvbiBFbWFjcyB2ZXJzdXMgUE9TSVggUmVndWxh ciBFeHByZXNzaW9ucworQGNpbmRleCBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zCisKK1Jl Z3VsYXIgZXhwcmVzc2lvbiBzeW50YXggdmFyaWVzIHNpZ25maWNhbnRseSBhbW9uZyBjb21w dXRlciBwcm9ncmFtcy4KK1doZW4gd3JpdGluZyBFbGlzcCBjb2RlIHRoYXQgZ2VuZXJhdGVz IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIHVzZSBieSBvdGhlcgorcHJvZ3JhbXMsIGl0IGlz IGhlbHBmdWwgdG8ga25vdyBob3cgc3ludGF4IHZhcmlhbnRzIGRpZmZlci4KK1RvIGdpdmUg YSBmZWVsIGZvciB0aGUgdmFyaWF0aW9uLCB0aGlzIHNlY3Rpb24gZGlzY3Vzc2VzIGhvdwor RW1hY3MgcmVndWxhciBleHByZXNzaW9ucyBkaWZmZXIgZnJvbSB0d28gc3ludGF4IHZhcmlh bnRzIHN0YW5kYXJkZWQgYnkgUE9TSVg6CitiYXNpYyByZWd1bGFyIGV4cHJlc3Npb25zIChC UkVzKSBhbmQgZXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9ucyAoRVJFcykuCitQbGFpbiBA Y29tbWFuZHtncmVwfSB1c2VzIEJSRXMsIGFuZCBAc2FtcHtncmVwIC1FfSB1c2VzIEVSRXMu CisKK0VtYWNzIHJlZ3VsYXIgZXhwcmVzc2lvbnMgaGF2ZSBhIHN5bnRheCBjbG9zZXIgdG8g RVJFcyB0aGFuIHRvIEJSRXMsCit3aXRoIHNvbWUgZXh0ZW5zaW9ucy4gIEhlcmUgaXMgYSBz dW1tYXJ5IG9mIGhvdyBQT1NJWCBCUkVzIGFuZCBFUkVzCitkaWZmZXIgZnJvbSBFbWFjcyBy ZWd1bGFyIGV4cHJlc3Npb25zLgorCitAaXRlbWl6ZSBAYnVsbGV0CitAaXRlbQorSW4gUE9T SVggQlJFcyBAc2FtcHsrfSBhbmQgQHNhbXB7P30gYXJlIG5vdCBzcGVjaWFsLgorVGhlIG9u bHkgYmFja3NsYXNoIGVzY2FwZSBzZXF1ZW5jZXMgYXJlIEBzYW1we1woQGRvdHN7fVwpfSwK K0BzYW1we1xAe0Bkb3Rze31cQH19LCBAc2FtcHtcMX0gdGhyb3VnaCBAc2FtcHtcOX0sIGFs b25nIHdpdGggdGhlCitlc2NhcGVkIHNwZWNpYWwgY2hhcmFjdGVycyBAc2FtcHtcJH0sIEBz YW1we1wqfSwgQHNhbXB7XC59LCBAc2FtcHtcW30sCitAc2FtcHtcXH0sIGFuZCBAc2FtcHtc Xn0uCitUaGVyZWZvcmUgQHNhbXB7XCg/On0gYWN0cyBsaWtlIEBzYW1we1woWz9dOn0uCitQ T1NJWCBkb2VzIG5vdCBkZWZpbmUgaG93IG90aGVyIEJSRSBlc2NhcGVzIGJlaGF2ZTsKK2Zv ciBleGFtcGxlLCBHTlUgQGNvbW1hbmR7Z3JlcH0gdHJlYXRzIEBzYW1we1x8fSBsaWtlIEVt YWNzIGRvZXMsCitidXQgZG9lcyBub3Qgc3VwcG9ydCBhbGwgdGhlIEVtYWNzIGVzY2FwZXMu CisKK0BpdGVtCitJbiBQT1NJWCBFUkVzIEBzYW1we0B7fSwgQHNhbXB7KH0gYW5kIEBzYW1w e3x9IGFyZSBzcGVjaWFsLAorYW5kIEBzYW1weyl9IGlzIHNwZWNpYWwgd2hlbiBtYXRjaGVk IHdpdGggYSBwcmVjZWRpbmcgQHNhbXB7KH0uCitUaGVzZSBzcGVjaWFsIGNoYXJhY3RlcnMg ZG8gbm90IHVzZSBwcmVjZWRpbmcgYmFja3NsYXNoZXM7CitAc2FtcHsoP30gcHJvZHVjZXMg dW5kZWZpbmVkIHJlc3VsdHMuCitUaGUgb25seSBiYWNrc2xhc2ggZXNjYXBlIHNlcXVlbmNl cyBhcmUgdGhlIGVzY2FwZWQgc3BlY2lhbCBjaGFyYWN0ZXJzCitAc2FtcHtcJH0sIEBzYW1w e1wofSwgQHNhbXB7XCl9LCBAc2FtcHtcKn0sIEBzYW1we1wrfSwgQHNhbXB7XC59LAorQHNh bXB7XD99LCBAc2FtcHtcW30sIEBzYW1we1xcfSwgQHNhbXB7XF59LCBAc2FtcHtcQHt9IGFu ZCBAc2FtcHtcfH0uCitQT1NJWCBkb2VzIG5vdCBkZWZpbmUgaG93IG90aGVyIEVSRSBlc2Nh cGVzIGJlaGF2ZTsKK2ZvciBleGFtcGxlLCBHTlUgQHNhbXB7Z3JlcCAtRX0gdHJlYXRzIEBz YW1we1wxfSBsaWtlIEVtYWNzIGRvZXMsCitidXQgZG9lcyBub3Qgc3VwcG9ydCBhbGwgdGhl IEVtYWNzIGVzY2FwZXMuCisKK0BpdGVtCitJbiBQT1NJWCBCUkVzLCBpdCBpcyBhbiBpbXBs ZW1lbnRhdGlvbiBvcHRpb24gd2hldGhlciBAc2FtcHtefSBpcyBzcGVjaWFsCithZnRlciBA c2FtcHtcKH07IEdOVSBAY29tbWFuZHtncmVwfSB0cmVhdHMgaXQgbGlrZSBFbWFjcyBkb2Vz LgorSW4gUE9TSVggRVJFcywgQHNhbXB7Xn0gaXMgYWx3YXlzIHNwZWNpYWwgb3V0c2lkZSBv ZiBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmVzLAord2hpY2ggbWVhbnMgdGhlIEVSRSBAc2FtcHt4 Xn0gbmV2ZXIgbWF0Y2hlcy4KK0luIEVtYWNzIHJlZ3VsYXIgZXhwcmVzc2lvbnMsIEBzYW1w e159IGlzIHNwZWNpYWwgb25seSBhdCB0aGUKK2JlZ2lubmluZyBvZiB0aGUgcmVndWxhciBl eHByZXNzaW9uLCBvciBhZnRlciBAc2FtcHtcKH0sIEBzYW1we1woPzp9CitvciBAc2FtcHtc fH0uCisKK0BpdGVtCitJbiBQT1NJWCBCUkVzLCBpdCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBv cHRpb24gd2hldGhlciBAc2FtcHskfSBpcyBzcGVjaWFsCitiZWZvcmUgQHNhbXB7XCl9OyBH TlUgQGNvbW1hbmR7Z3JlcH0gdHJlYXRzIGl0IGxpa2UgRW1hY3MgZG9lcy4KK0luIFBPU0lY IEVSRXMsIEBzYW1weyR9IGlzIGFsd2F5cyBzcGVjaWFsIG91dHNpZGUgb2YgY2hhcmFjdGVy IGFsdGVybmF0aXZlcywKK3doaWNoIG1lYW5zIHRoZSBFUkUgQHNhbXB7JHh9IG5ldmVyIG1h dGNoZXMuCitJbiBFbWFjcyByZWd1bGFyIGV4cHJlc3Npb25zLCBAc2FtcHskfSBpcyBzcGVj aWFsIG9ubHkgYXQgdGhlCitlbmQgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3IgYmVm b3JlIEBzYW1we1wpfSBvciBAc2FtcHtcfH0uCisKK0BpdGVtCitJbiBQT1NJWCBCUkVzIGFu ZCBFUkVzLCB1bmRlZmluZWQgcmVzdWx0cyBhcmUgcHJvZHVjZWQgYnkgcmVwZXRpdGlvbgor b3BlcmF0b3JzIGF0IHRoZSBzdGFydCBvZiBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBzdWJl eHByZXNzaW9uCisocG9zc2libHkgcHJlY2VkZWQgYnkgQHNhbXB7Xn0pLCBleGNlcHQgdGhh dCB0aGUgcmVwZXRpdGlvbiBvcGVyYXRvcgorQHNhbXB7Kn0gaGFzIHRoZSBzYW1lIGJlaGF2 aW9yIGluIEJSRXMgYXMgaW4gRW1hY3MuCitJbiBFbWFjcywgdGhlc2Ugb3BlcmF0b3JzIGFy ZSB0cmVhdGVkIGFzIG9yZGluYXJ5LgorCitAaXRlbQorSW4gQlJFcyBhbmQgRVJFcywgdW5k ZWZpbmVkIHJlc3VsdHMgYXJlIHByb2R1Y2VkIGJ5IHR3byByZXBldGl0aW9uCitvcGVyYXRv cnMgaW4gc2VxdWVuY2UuICBJbiBFbWFjcywgdGhlc2UgaGF2ZSB3ZWxsLWRlZmluZWQgYmVo YXZpb3IsCitlLmcuLCBAc2FtcHthKip9IGlzIGVxdWl2YWxlbnQgdG8gQHNhbXB7YSp9Lgor CitAaXRlbQorSW4gQlJFcyBhbmQgRVJFcywgdW5kZWZpbmVkIHJlc3VsdHMgYXJlIHByb2R1 Y2VkIGJ5IGVtcHR5IHJlZ3VsYXIKK2V4cHJlc3Npb25zIG9yIHN1YmV4cHJlc3Npb25zLiAg SW4gRW1hY3MgdGhlc2UgaGF2ZSB3ZWxsLWRlZmluZWQKK2JlaGF2aW9yLCBlLmcuLCBAc2Ft cHtcKFwpKn0gbWF0Y2hlcyB0aGUgZW1wdHkgc3RyaW5nLAorCitAaXRlbQorSW4gQlJFcyBh bmQgRVJFcywgdW5kZWZpbmVkIHJlc3VsdHMgYXJlIHByb2R1Y2VkIGZvciB0aGUgbmFtZWQK K2NoYXJhY3RlciBjbGFzc2VzIEBzYW1we1s6YXNjaWk6XX0sIEBzYW1we1s6bXVsdGlieXRl Ol19LAorQHNhbXB7Wzpub25hc2NpaTpdfSwgQHNhbXB7Wzp1bmlieXRlOl19LCBhbmQgQHNh bXB7Wzp3b3JkOl19LgorCitAaXRlbQorQlJFIGFuZCBFUkUgYWx0ZXJuYXRpdmVzIGNhbiBj b250YWluIGNvbGxhdGluZyBzeW1ib2xzIGFuZCBlcXVpdmFsZW5jZQorY2xhc3MgZXhwcmVz c2lvbnMsIGUuZy4sIEBzYW1we1tbLmNoLl1kWz1hPV1dfS4KK0VtYWNzIHJlZ3VsYXIgZXhw cmVzc2lvbnMgZG8gbm90IHN1cHBvcnQgdGhpcy4KKworQGl0ZW0KK0JSRXMsIEVSRXMsIGFu ZCB0aGUgc3RyaW5ncyB0aGV5IG1hdGNoIGNhbm5vdCBjb250YWluIGVuY29kaW5nIGVycm9y cworb3IgTlVMIGJ5dGVzLiAgSW4gRW1hY3MgdGhlc2UgY29uc3RydWN0cyBzaW1wbHkgbWF0 Y2ggdGhlbXNlbHZlcy4KKworQGl0ZW0KK0JSRSBhbmQgRVJFIHNlYXJjaGluZyBhbHdheXMg ZmluZHMgdGhlIGxvbmdlc3QgbWF0Y2guCitFbWFjcyBzZWFyY2hpbmcgYnkgZGVmYXVsdCBk b2VzIG5vdCBuZWNlc3NhcmlseSBkbyBzby4KK0B4cmVme0xvbmdlc3QgTWF0Y2h9LgorQGVu ZCBpdGVtaXplCi0tIAoyLjM5LjIKCg== --------------WveC1B3ElZHTe9phDlMuweW0 Content-Type: text/x-patch; charset=UTF-8; name="0003-Call-them-bracket-expressions-more-consistently.patch" Content-Disposition: attachment; filename*0="0003-Call-them-bracket-expressions-more-consistently.patch" Content-Transfer-Encoding: base64 RnJvbSA5NGQ4ZWVlZmY0YWU5OWNiMTI3MThkYWI3Y2Y3ZmRjNTJkZTc3YjZlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDE5IEp1biAyMDIzIDExOjA5OjAwIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAzLzNdID0/VVRGLTg/cT9DYWxsPTIwdGhlbT0yMD1FMj04MD05Q2JyYWNrZXQ9MjBleHBy ZXNzaW9uPz0KID0/VVRGLTg/cT9zPUUyPTgwPTlEPTIwbW9yZT0yMGNvbnNpc3RlbnRseT89 Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpFbWFjcyBjb21tZW50cyBh bmQgZG9jIHdlcmUgaW5jb25zaXN0ZW50IGFib3V0IHRoZSBuYW1lIHVzZWQgZm9yCnJlZ2V4 cHMgbGlrZSBbYS16XS4gIFNvbWV0aW1lcyBpdCBjYWxsZWQgdGhlbSDigJxjaGFyYWN0ZXIK YWx0ZXJuYXRpdmVz4oCdLCBzb21ldGltZXMg4oCcY2hhcmFjdGVyIHNldHPigJ0sIHNvbWV0 aW1lcyDigJxicmFja2V0CmV4cHJlc3Npb25z4oCdLiAgUHJlZmVyIOKAnGJyYWNrZXQgZXhw cmVzc2lvbnPigJ0gYXMgaXQgaXMgbGVzcyBjb25mdXNpbmc6ClBPU0lYIGFuZCBtb3N0IG90 aGVyIHByb2dyYW1z4oCZIGRvYyB1c2VzIOKAnGJyYWNrZXQgZXhwcmVzc2lvbnPigJ0sCuKA nGFsdGVybmF0aXZl4oCdIGlzIGFsc28gdXNlZCBpbiB0aGUgRW1hY3MgZG9jdW1lbnRhdGlv biB0byB0YWxrIGFib3V0Ci4uLlx8Li4uIGluIHJlZ2V4cHMsIGFuZCDigJxjaGFyYWN0ZXIg c2V04oCdIG5vcm1hbGx5IGhhcyBhIGRpZmZlcmVudAptZWFuaW5nIGluIEVtYWNzLgotLS0K IGRvYy9lbWFjcy9zZWFyY2gudGV4aSAgICAgICAgfCAxMiArKystLS0KIGRvYy9saXNwcmVm L3NlYXJjaGluZy50ZXhpICAgfCA3NCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0KIGxpc3AvZW1hY3MtbGlzcC9saXNwLW1vZGUuZWwgfCAgMiArLQogbGlzcC90ZXh0 bW9kZXMvcGljdHVyZS5lbCAgICB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2Vy dGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy9zZWFy Y2gudGV4aSBiL2RvYy9lbWFjcy9zZWFyY2gudGV4aQppbmRleCA0NTM3OGQ5NWY2NS4uMmE4 MTYyMjEyMzUgMTAwNjQ0Ci0tLSBhL2RvYy9lbWFjcy9zZWFyY2gudGV4aQorKysgYi9kb2Mv ZW1hY3Mvc2VhcmNoLnRleGkKQEAgLTk1MCw4ICs5NTAsOCBAQCBSZWdleHBzCiBAZGZue3Nw ZWNpYWwgY29uc3RydWN0c30gYW5kIHRoZSByZXN0IGFyZSBAZGZue29yZGluYXJ5fS4gIEFu IG9yZGluYXJ5CiBjaGFyYWN0ZXIgbWF0Y2hlcyB0aGF0IHNhbWUgY2hhcmFjdGVyIGFuZCBu b3RoaW5nIGVsc2UuICBUaGUgc3BlY2lhbAogY2hhcmFjdGVycyBhcmUgQHNhbXB7JF4uKis/ W1x9LiAgVGhlIGNoYXJhY3RlciBAc2FtcHtdfSBpcyBzcGVjaWFsIGlmCi1pdCBlbmRzIGEg Y2hhcmFjdGVyIGFsdGVybmF0aXZlIChzZWUgYmVsb3cpLiAgVGhlIGNoYXJhY3RlciBAc2Ft cHstfQotaXMgc3BlY2lhbCBpbnNpZGUgYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUuICBBbnkg b3RoZXIgY2hhcmFjdGVyCitpdCBlbmRzIGEgYnJhY2tldCBleHByZXNzaW9uIChzZWUgYmVs b3cpLiAgVGhlIGNoYXJhY3RlciBAc2FtcHstfQoraXMgc3BlY2lhbCBpbnNpZGUgYSBicmFj a2V0IGV4cHJlc3Npb24uICBBbnkgb3RoZXIgY2hhcmFjdGVyCiBhcHBlYXJpbmcgaW4gYSBy ZWd1bGFyIGV4cHJlc3Npb24gaXMgb3JkaW5hcnksIHVubGVzcyBhIEBzYW1we1x9CiBwcmVj ZWRlcyBpdC4gIChXaGVuIHlvdSB1c2UgcmVndWxhciBleHByZXNzaW9ucyBpbiBhIExpc3Ag cHJvZ3JhbSwKIGVhY2ggQHNhbXB7XH0gbXVzdCBiZSBkb3VibGVkLCBzZWUgdGhlIGV4YW1w bGUgbmVhciB0aGUgZW5kIG9mIHRoaXMKQEAgLTEwMzMsMTEgKzEwMzMsMTEgQEAgUmVnZXhw cwogYSBuZXdsaW5lLCBpdCBtYXRjaGVzIHRoZSB3aG9sZSBzdHJpbmcuICBTaW5jZSBpdCBA ZW1waHtjYW59IG1hdGNoCiBzdGFydGluZyBhdCB0aGUgZmlyc3QgQHNhbXB7YX0sIGl0IGRv ZXMuCiAKK0BjaW5kZXggYnJhY2tldCBleHByZXNzaW9uCiBAY2luZGV4IHNldCBvZiBhbHRl cm5hdGl2ZSBjaGFyYWN0ZXJzLCBpbiByZWd1bGFyIGV4cHJlc3Npb25zCiBAY2luZGV4IGNo YXJhY3RlciBzZXQsIGluIHJlZ3VsYXIgZXhwcmVzc2lvbnMKIEBpdGVtIEBrYmR7WyBAZG90 c3t9IF19Ci1pcyBhIEBkZm57c2V0IG9mIGFsdGVybmF0aXZlIGNoYXJhY3RlcnN9LCBvciBh IEBkZm57Y2hhcmFjdGVyIHNldH0sCi1iZWdpbm5pbmcgd2l0aCBAc2FtcHtbfSBhbmQgdGVy bWluYXRlZCBieSBAc2FtcHtdfS4KK2lzIGEgQGRmbnticmFja2V0IGV4cHJlc3Npb259LCB3 aGljaCBtYXRjaGVzIG9uZSBvZiBhIHNldCBvZiBjaGFyYWN0ZXJzLgogCiBJbiB0aGUgc2lt cGxlc3QgY2FzZSwgdGhlIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGUgdHdvIGJyYWNrZXRzIGFy ZSB3aGF0CiB0aGlzIHNldCBjYW4gbWF0Y2guICBUaHVzLCBAc2FtcHtbYWRdfSBtYXRjaGVz IGVpdGhlciBvbmUgQHNhbXB7YX0gb3IKQEAgLTEwNTcsNyArMTA1Nyw3IEBAIFJlZ2V4cHMK IEBjaW5kZXggY2hhcmFjdGVyIGNsYXNzZXMsIGluIHJlZ3VsYXIgZXhwcmVzc2lvbnMKIFlv dSBjYW4gYWxzbyBpbmNsdWRlIGNlcnRhaW4gc3BlY2lhbCBAZGZue2NoYXJhY3RlciBjbGFz c2VzfSBpbiBhCiBjaGFyYWN0ZXIgc2V0LiAgQSBAc2FtcHtbOn0gYW5kIGJhbGFuY2luZyBA c2FtcHs6XX0gZW5jbG9zZSBhCi1jaGFyYWN0ZXIgY2xhc3MgaW5zaWRlIGEgc2V0IG9mIGFs dGVybmF0aXZlIGNoYXJhY3RlcnMuICBGb3IgaW5zdGFuY2UsCitjaGFyYWN0ZXIgY2xhc3Mg aW5zaWRlIGEgYnJhY2tldCBleHByZXNzaW9uLiAgRm9yIGluc3RhbmNlLAogQHNhbXB7W1s6 YWxudW06XV19IG1hdGNoZXMgYW55IGxldHRlciBvciBkaWdpdC4gIEB4cmVme0NoYXIgQ2xh c3NlcywsLAogZWxpc3AsIFRoZSBFbWFjcyBMaXNwIFJlZmVyZW5jZSBNYW51YWx9LCBmb3Ig YSBsaXN0IG9mIGNoYXJhY3RlcgogY2xhc3Nlcy4KQEAgLTExMjUsNyArMTEyNSw3IEBAIFJl Z2V4cHMKIHRvIGRlcGVuZCBvbiB0aGlzIGJlaGF2aW9yOyBpdCBpcyBiZXR0ZXIgdG8gcXVv dGUgdGhlIHNwZWNpYWwgY2hhcmFjdGVyIGFueXdheSwKIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUg aXQgYXBwZWFycy4KIAotQXMgYSBAc2FtcHtcfSBpcyBub3Qgc3BlY2lhbCBpbnNpZGUgYSBz ZXQgb2YgYWx0ZXJuYXRpdmUgY2hhcmFjdGVycywgaXQgY2FuCitBcyBhIEBzYW1we1x9IGlz IG5vdCBzcGVjaWFsIGluc2lkZSBhIGJyYWNrZXQgZXhwcmVzc2lvbiwgaXQgY2FuCiBuZXZl ciByZW1vdmUgdGhlIHNwZWNpYWwgbWVhbmluZyBvZiBAc2FtcHstfSwgQHNhbXB7Xn0gb3Ig QHNhbXB7XX0uCiBZb3Ugc2hvdWxkIG5vdCBxdW90ZSB0aGVzZSBjaGFyYWN0ZXJzIHdoZW4g dGhleSBoYXZlIG5vIHNwZWNpYWwKIG1lYW5pbmcuICBUaGlzIHdvdWxkIG5vdCBjbGFyaWZ5 IGFueXRoaW5nLCBzaW5jZSBiYWNrc2xhc2hlcwpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYv c2VhcmNoaW5nLnRleGkgYi9kb2MvbGlzcHJlZi9zZWFyY2hpbmcudGV4aQppbmRleCA2MDhh YmFlNzYyYy4uMjgyMzBjZWE2NDMgMTAwNjQ0Ci0tLSBhL2RvYy9saXNwcmVmL3NlYXJjaGlu Zy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL3NlYXJjaGluZy50ZXhpCkBAIC0yNzgsMTAgKzI3 OCwxMCBAQCBTeW50YXggb2YgUmVnZXhwcwogYW5kIG5vdGhpbmcgZWxzZS4gIFRoZSBzcGVj aWFsIGNoYXJhY3RlcnMgYXJlIEBzYW1wey59LCBAc2FtcHsqfSwKIEBzYW1weyt9LCBAc2Ft cHs/fSwgQHNhbXB7W30sIEBzYW1we159LCBAc2FtcHskfSwgYW5kIEBzYW1we1x9OyBubyBu ZXcKIHNwZWNpYWwgY2hhcmFjdGVycyB3aWxsIGJlIGRlZmluZWQgaW4gdGhlIGZ1dHVyZS4g IFRoZSBjaGFyYWN0ZXIKLUBzYW1we119IGlzIHNwZWNpYWwgaWYgaXQgZW5kcyBhIGNoYXJh Y3RlciBhbHRlcm5hdGl2ZSAoc2VlIGxhdGVyKS4KLVRoZSBjaGFyYWN0ZXIgQHNhbXB7LX0g aXMgc3BlY2lhbCBpbnNpZGUgYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUuICBBCitAc2FtcHtd fSBpcyBzcGVjaWFsIGlmIGl0IGVuZHMgYSBicmFja2V0IGV4cHJlc3Npb24gKHNlZSBsYXRl cikuCitUaGUgY2hhcmFjdGVyIEBzYW1wey19IGlzIHNwZWNpYWwgaW5zaWRlIGEgYnJhY2tl dCBleHByZXNzaW9uLiAgQQogQHNhbXB7Wzp9IGFuZCBiYWxhbmNpbmcgQHNhbXB7Ol19IGVu Y2xvc2UgYSBjaGFyYWN0ZXIgY2xhc3MgaW5zaWRlIGEKLWNoYXJhY3RlciBhbHRlcm5hdGl2 ZS4gIEFueSBvdGhlciBjaGFyYWN0ZXIgYXBwZWFyaW5nIGluIGEgcmVndWxhcgorYnJhY2tl dCBleHByZXNzaW9uLiAgQW55IG90aGVyIGNoYXJhY3RlciBhcHBlYXJpbmcgaW4gYSByZWd1 bGFyCiBleHByZXNzaW9uIGlzIG9yZGluYXJ5LCB1bmxlc3MgYSBAc2FtcHtcfSBwcmVjZWRl cyBpdC4KIAogICBGb3IgZXhhbXBsZSwgQHNhbXB7Zn0gaXMgbm90IGEgc3BlY2lhbCBjaGFy YWN0ZXIsIHNvIGl0IGlzIG9yZGluYXJ5LCBhbmQKQEAgLTM3NCwxOSArMzc0LDE5IEBAIFJl Z2V4cCBTcGVjaWFsCiBwZXJtaXRzIHRoZSB3aG9sZSBleHByZXNzaW9uIHRvIG1hdGNoIGlz IEBzYW1we2R9LikKIAogQGl0ZW0gQHNhbXB7WyBAZG90c3t9IF19Ci1AY2luZGV4IGNoYXJh Y3RlciBhbHRlcm5hdGl2ZSAoaW4gcmVnZXhwKQorQGNpbmRleCBicmFja2V0IGV4cHJlc3Np b24gKGluIHJlZ2V4cCkKIEBjaW5kZXggQHNhbXB7W30gaW4gcmVnZXhwCiBAY2luZGV4IEBz YW1we119IGluIHJlZ2V4cAotaXMgYSBAZGZue2NoYXJhY3RlciBhbHRlcm5hdGl2ZX0sIHdo aWNoIGJlZ2lucyB3aXRoIEBzYW1we1t9IGFuZCBpcworaXMgYSBAZGZue2JyYWNrZXQgZXhw cmVzc2lvbn0sIHdoaWNoIGJlZ2lucyB3aXRoIEBzYW1we1t9IGFuZCBpcwogdGVybWluYXRl ZCBieSBAc2FtcHtdfS4gIEluIHRoZSBzaW1wbGVzdCBjYXNlLCB0aGUgY2hhcmFjdGVycyBi ZXR3ZWVuCi10aGUgdHdvIGJyYWNrZXRzIGFyZSB3aGF0IHRoaXMgY2hhcmFjdGVyIGFsdGVy bmF0aXZlIGNhbiBtYXRjaC4KK3RoZSB0d28gYnJhY2tldHMgYXJlIHdoYXQgdGhpcyBicmFj a2V0IGV4cHJlc3Npb24gY2FuIG1hdGNoLgogCiBUaHVzLCBAc2FtcHtbYWRdfSBtYXRjaGVz IGVpdGhlciBvbmUgQHNhbXB7YX0gb3Igb25lIEBzYW1we2R9LCBhbmQKIEBzYW1we1thZF0q fSBtYXRjaGVzIGFueSBzdHJpbmcgY29tcG9zZWQgb2YganVzdCBAc2FtcHthfXMgYW5kIEBz YW1we2R9cwogKGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nKS4gIEl0IGZvbGxvd3MgdGhh dCBAc2FtcHtjW2FkXSpyfQogbWF0Y2hlcyBAc2FtcHtjcn0sIEBzYW1we2Nhcn0sIEBzYW1w e2Nkcn0sIEBzYW1we2NhZGRhYXJ9LCBldGMuCiAKLVlvdSBjYW4gYWxzbyBpbmNsdWRlIGNo YXJhY3RlciByYW5nZXMgaW4gYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUsIGJ5CitZb3UgY2Fu IGFsc28gaW5jbHVkZSBjaGFyYWN0ZXIgcmFuZ2VzIGluIGEgYnJhY2tldCBleHByZXNzaW9u LCBieQogd3JpdGluZyB0aGUgc3RhcnRpbmcgYW5kIGVuZGluZyBjaGFyYWN0ZXJzIHdpdGgg YSBAc2FtcHstfSBiZXR3ZWVuIHRoZW0uCiBUaHVzLCBAc2FtcHtbYS16XX0gbWF0Y2hlcyBh bnkgbG93ZXItY2FzZSBAYWNyb255bXtBU0NJSX0gbGV0dGVyLgogUmFuZ2VzIG1heSBiZSBp bnRlcm1peGVkIGZyZWVseSB3aXRoIGluZGl2aWR1YWwgY2hhcmFjdGVycywgYXMgaW4KQEAg LTM5NSw3ICszOTUsNyBAQCBSZWdleHAgU3BlY2lhbAogcmFuZ2Ugc2hvdWxkIG5vdCBiZSB0 aGUgc3RhcnRpbmcgcG9pbnQgb2YgYW5vdGhlciBvbmU7IGZvciBleGFtcGxlLAogQHNhbXB7 W2EtbS16XX0gc2hvdWxkIGJlIGF2b2lkZWQuCiAKLUEgY2hhcmFjdGVyIGFsdGVybmF0aXZl IGNhbiBhbHNvIHNwZWNpZnkgbmFtZWQgY2hhcmFjdGVyIGNsYXNzZXMKK0EgYnJhY2tldCBl eHByZXNzaW9uIGNhbiBhbHNvIHNwZWNpZnkgbmFtZWQgY2hhcmFjdGVyIGNsYXNzZXMKIChA cHhyZWZ7Q2hhciBDbGFzc2VzfSkuICBGb3IgZXhhbXBsZSwgQHNhbXB7W1s6YXNjaWk6XV19 IG1hdGNoZXMgYW55CiBAYWNyb255bXtBU0NJSX0gY2hhcmFjdGVyLiAgVXNpbmcgYSBjaGFy YWN0ZXIgY2xhc3MgaXMgZXF1aXZhbGVudCB0bwogbWVudGlvbmluZyBlYWNoIG9mIHRoZSBj aGFyYWN0ZXJzIGluIHRoYXQgY2xhc3M7IGJ1dCB0aGUgbGF0dGVyIGlzIG5vdApAQCAtNDA0 LDkgKzQwNCw5IEBAIFJlZ2V4cCBTcGVjaWFsCiBsb3dlciBvciB1cHBlciBib3VuZCBvZiBh IHJhbmdlLgogCiBUaGUgdXN1YWwgcmVnZXhwIHNwZWNpYWwgY2hhcmFjdGVycyBhcmUgbm90 IHNwZWNpYWwgaW5zaWRlIGEKLWNoYXJhY3RlciBhbHRlcm5hdGl2ZS4gIEEgY29tcGxldGVs eSBkaWZmZXJlbnQgc2V0IG9mIGNoYXJhY3RlcnMgaXMKK2JyYWNrZXQgZXhwcmVzc2lvbi4g IEEgY29tcGxldGVseSBkaWZmZXJlbnQgc2V0IG9mIGNoYXJhY3RlcnMgaXMKIHNwZWNpYWw6 IEBzYW1we119LCBAc2FtcHstfSBhbmQgQHNhbXB7Xn0uCi1UbyBpbmNsdWRlIEBzYW1we119 IGluIGEgY2hhcmFjdGVyIGFsdGVybmF0aXZlLCBwdXQgaXQgYXQgdGhlCitUbyBpbmNsdWRl IEBzYW1we119IGluIGEgYnJhY2tldCBleHByZXNzaW9uLCBwdXQgaXQgYXQgdGhlCiBiZWdp bm5pbmcuICBUbyBpbmNsdWRlIEBzYW1we159LCBwdXQgaXQgYW55d2hlcmUgYnV0IGF0IHRo ZSBiZWdpbm5pbmcuCiBUbyBpbmNsdWRlIEBzYW1wey19LCBwdXQgaXQgYXQgdGhlIGVuZC4g IFRodXMsIEBzYW1we1tdXi1dfSBtYXRjaGVzCiBhbGwgdGhyZWUgb2YgdGhlc2Ugc3BlY2lh bCBjaGFyYWN0ZXJzLiAgWW91IGNhbm5vdCB1c2UgQHNhbXB7XH0gdG8KQEAgLTQ0NCw3ICs0 NDQsNyBAQCBSZWdleHAgU3BlY2lhbAogZmVhdHVyZSBpcyBpbnRlbmRlZCBmb3Igc2VhcmNo aW5nIHRleHQgaW4gdW5pYnl0ZSBidWZmZXJzIGFuZCBzdHJpbmdzLgogQGVuZCBlbnVtZXJh dGUKIAotU29tZSBraW5kcyBvZiBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmVzIGFyZSBub3QgdGhl IGJlc3Qgc3R5bGUgZXZlbgorU29tZSBraW5kcyBvZiBicmFja2V0IGV4cHJlc3Npb25zIGFy ZSBub3QgdGhlIGJlc3Qgc3R5bGUgZXZlbgogdGhvdWdoIHRoZXkgaGF2ZSBhIHdlbGwtZGVm aW5lZCBtZWFuaW5nIGluIEVtYWNzLiAgVGhleSBpbmNsdWRlOgogCiBAZW51bWVyYXRlCkBA IC00NTgsNyArNDU4LDcgQEAgUmVnZXhwIFNwZWNpYWwKIEBzYW1we1vguIEt4Li64Li/LeC5 m119IGlzIGxlc3MgY2xlYXIgdGhhbiBAc2FtcHtbXHUwRTAxLVx1MEUzQVx1MEUzRi1cdTBF NUJdfS4KIAogQGl0ZW0KLUFsdGhvdWdoIGEgY2hhcmFjdGVyIGFsdGVybmF0aXZlIGNhbiBp bmNsdWRlIGR1cGxpY2F0ZXMsIGl0IGlzIGJldHRlcgorQWx0aG91Z2ggYSBicmFja2V0IGV4 cHJlc3Npb24gY2FuIGluY2x1ZGUgZHVwbGljYXRlcywgaXQgaXMgYmV0dGVyCiBzdHlsZSB0 byBhdm9pZCB0aGVtLiAgRm9yIGV4YW1wbGUsIEBzYW1we1tYWWEteVliLXpYXX0gaXMgbGVz cyBjbGVhcgogdGhhbiBAc2FtcHtbWFlhLXpdfS4KIApAQCAtNDY5LDMwICs0NjksMzAgQEAg UmVnZXhwIFNwZWNpYWwKIHRoYW4gQHNhbXB7W2lqXX0sIGFuZCBAc2FtcHtbaS1rXX0gaXMg bGVzcyBjbGVhciB0aGFuIEBzYW1we1tpamtdfS4KIAogQGl0ZW0KLUFsdGhvdWdoIGEgQHNh bXB7LX0gY2FuIGFwcGVhciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgY2hhcmFjdGVyCi1hbHRl cm5hdGl2ZSBvciBhcyB0aGUgdXBwZXIgYm91bmQgb2YgYSByYW5nZSwgaXQgaXMgYmV0dGVy IHN0eWxlIHRvCi1wdXQgQHNhbXB7LX0gYnkgaXRzZWxmIGF0IHRoZSBlbmQgb2YgYSBjaGFy YWN0ZXIgYWx0ZXJuYXRpdmUuICBGb3IKK0FsdGhvdWdoIGEgQHNhbXB7LX0gY2FuIGFwcGVh ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgYnJhY2tldAorZXhwcmVzc2lvbiBvciBhcyB0aGUg dXBwZXIgYm91bmQgb2YgYSByYW5nZSwgaXQgaXMgYmV0dGVyIHN0eWxlIHRvCitwdXQgQHNh bXB7LX0gYnkgaXRzZWxmIGF0IHRoZSBlbmQgb2YgYSBicmFja2V0IGV4cHJlc3Npb24uICBG b3IKIGV4YW1wbGUsIGFsdGhvdWdoIEBzYW1we1stYS16XX0gaXMgdmFsaWQsIEBzYW1we1th LXotXX0gaXMgYmV0dGVyCiBzdHlsZTsgYW5kIGFsdGhvdWdoIEBzYW1we1sqLS1dfSBpcyB2 YWxpZCwgQHNhbXB7WyorLC1dfSBpcyBjbGVhcmVyLgogQGVuZCBlbnVtZXJhdGUKIAogQGl0 ZW0gQHNhbXB7W14gQGRvdHN7fSBdfQogQGNpbmRleCBAc2FtcHtefSBpbiByZWdleHAKLUBz YW1we1tefSBiZWdpbnMgYSBAZGZue2NvbXBsZW1lbnRlZCBjaGFyYWN0ZXIgYWx0ZXJuYXRp dmV9LiAgVGhpcworQHNhbXB7W159IGJlZ2lucyBhIEBkZm57Y29tcGxlbWVudGVkIGJyYWNr ZXQgZXhwcmVzc2lvbn0uICBUaGlzCiBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgZXhjZXB0IHRo ZSBvbmVzIHNwZWNpZmllZC4gIFRodXMsCiBAc2FtcHtbXmEtejAtOUEtWl19IG1hdGNoZXMg YWxsIGNoYXJhY3RlcnMgQGVtcGh7ZXhjZXB0fSBBU0NJSSBsZXR0ZXJzIGFuZAogZGlnaXRz LgogCi1Ac2FtcHtefSBpcyBub3Qgc3BlY2lhbCBpbiBhIGNoYXJhY3RlciBhbHRlcm5hdGl2 ZSB1bmxlc3MgaXQgaXMgdGhlIGZpcnN0CitAc2FtcHtefSBpcyBub3Qgc3BlY2lhbCBpbiBh IGJyYWNrZXQgZXhwcmVzc2lvbiB1bmxlc3MgaXQgaXMgdGhlIGZpcnN0CiBjaGFyYWN0ZXIu ICBUaGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgQHNhbXB7Xn0gaXMgdHJlYXRlZCBhcyBp ZiBpdAogd2VyZSBmaXJzdCAoaW4gb3RoZXIgd29yZHMsIEBzYW1wey19IGFuZCBAc2FtcHtd fSBhcmUgbm90IHNwZWNpYWwgdGhlcmUpLgogCi1BIGNvbXBsZW1lbnRlZCBjaGFyYWN0ZXIg YWx0ZXJuYXRpdmUgY2FuIG1hdGNoIGEgbmV3bGluZSwgdW5sZXNzIG5ld2xpbmUgaXMKK0Eg Y29tcGxlbWVudGVkIGJyYWNrZXQgZXhwcmVzc2lvbiBjYW4gbWF0Y2ggYSBuZXdsaW5lLCB1 bmxlc3MgbmV3bGluZSBpcwogbWVudGlvbmVkIGFzIG9uZSBvZiB0aGUgY2hhcmFjdGVycyBu b3QgdG8gbWF0Y2guICBUaGlzIGlzIGluIGNvbnRyYXN0IHRvCiB0aGUgaGFuZGxpbmcgb2Yg cmVnZXhwcyBpbiBwcm9ncmFtcyBzdWNoIGFzIEBjb2Rle2dyZXB9LgogCi1Zb3UgY2FuIHNw ZWNpZnkgbmFtZWQgY2hhcmFjdGVyIGNsYXNzZXMsIGp1c3QgbGlrZSBpbiBjaGFyYWN0ZXIK LWFsdGVybmF0aXZlcy4gIEZvciBpbnN0YW5jZSwgQHNhbXB7W15bOmFzY2lpOl1dfSBtYXRj aGVzIGFueQorWW91IGNhbiBzcGVjaWZ5IG5hbWVkIGNoYXJhY3RlciBjbGFzc2VzLCBqdXN0 IGxpa2UgaW4gYnJhY2tldAorZXhwcmVzc2lvbnMuICBGb3IgaW5zdGFuY2UsIEBzYW1we1te Wzphc2NpaTpdXX0gbWF0Y2hlcyBhbnkKIG5vbi1AYWNyb255bXtBU0NJSX0gY2hhcmFjdGVy LiAgQHhyZWZ7Q2hhciBDbGFzc2VzfS4KIAogQGl0ZW0gQHNhbXB7Xn0KQEAgLTU1Niw3ICs1 NTYsNyBAQCBSZWdleHAgU3BlY2lhbAogRm9yIGV4YW1wbGUsIGl0IGlzIHVud2lzZSB0byB1 c2UgQHNhbXB7XGIqfSwgd2hpY2ggY2FuIGJlIG9taXR0ZWQKIHdpdGhvdXQgY2hhbmdpbmcg dGhlIGRvY3VtZW50ZWQgbWVhbmluZyBvZiB0aGUgcmVndWxhciBleHByZXNzaW9uLgogCi1B cyBhIEBzYW1we1x9IGlzIG5vdCBzcGVjaWFsIGluc2lkZSBhIGNoYXJhY3RlciBhbHRlcm5h dGl2ZSwgaXQgY2FuCitBcyBhIEBzYW1we1x9IGlzIG5vdCBzcGVjaWFsIGluc2lkZSBhIGJy YWNrZXQgZXhwcmVzc2lvbiwgaXQgY2FuCiBuZXZlciByZW1vdmUgdGhlIHNwZWNpYWwgbWVh bmluZyBvZiBAc2FtcHstfSwgQHNhbXB7Xn0gb3IgQHNhbXB7XX0uCiBZb3Ugc2hvdWxkIG5v dCBxdW90ZSB0aGVzZSBjaGFyYWN0ZXJzIHdoZW4gdGhleSBoYXZlIG5vIHNwZWNpYWwKIG1l YW5pbmcuICBUaGlzIHdvdWxkIG5vdCBjbGFyaWZ5IGFueXRoaW5nLCBzaW5jZSBiYWNrc2xh c2hlcwpAQCAtNTY1LDIzICs1NjUsMjMgQEAgUmVnZXhwIFNwZWNpYWwKIHN5bnRheCksIHdo aWNoIG1hdGNoZXMgYW55IHNpbmdsZSBjaGFyYWN0ZXIgZXhjZXB0IGEgYmFja3NsYXNoLgog CiBJbiBwcmFjdGljZSwgbW9zdCBAc2FtcHtdfSB0aGF0IG9jY3VyIGluIHJlZ3VsYXIgZXhw cmVzc2lvbnMgY2xvc2UgYQotY2hhcmFjdGVyIGFsdGVybmF0aXZlIGFuZCBoZW5jZSBhcmUg c3BlY2lhbC4gIEhvd2V2ZXIsIG9jY2FzaW9uYWxseSBhCiticmFja2V0IGV4cHJlc3Npb24g YW5kIGhlbmNlIGFyZSBzcGVjaWFsLiAgSG93ZXZlciwgb2NjYXNpb25hbGx5IGEKIHJlZ3Vs YXIgZXhwcmVzc2lvbiBtYXkgdHJ5IHRvIG1hdGNoIGEgY29tcGxleCBwYXR0ZXJuIG9mIGxp dGVyYWwKIEBzYW1we1t9IGFuZCBAc2FtcHtdfS4gIEluIHN1Y2ggc2l0dWF0aW9ucywgaXQg c29tZXRpbWVzIG1heSBiZQogbmVjZXNzYXJ5IHRvIGNhcmVmdWxseSBwYXJzZSB0aGUgcmVn ZXhwIGZyb20gdGhlIHN0YXJ0IHRvIGRldGVybWluZQotd2hpY2ggc3F1YXJlIGJyYWNrZXRz IGVuY2xvc2UgYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUuICBGb3IgZXhhbXBsZSwKLUBzYW1w e1teXVtdXX0gY29uc2lzdHMgb2YgdGhlIGNvbXBsZW1lbnRlZCBjaGFyYWN0ZXIgYWx0ZXJu YXRpdmUKK3doaWNoIHNxdWFyZSBicmFja2V0cyBlbmNsb3NlIGEgYnJhY2tldCBleHByZXNz aW9uLiAgRm9yIGV4YW1wbGUsCitAc2FtcHtbXl1bXV19IGNvbnNpc3RzIG9mIHRoZSBjb21w bGVtZW50ZWQgYnJhY2tldCBleHByZXNzaW9uCiBAc2FtcHtbXl1bXX0gKHdoaWNoIG1hdGNo ZXMgYW55IHNpbmdsZSBjaGFyYWN0ZXIgdGhhdCBpcyBub3QgYSBzcXVhcmUKIGJyYWNrZXQp LCBmb2xsb3dlZCBieSBhIGxpdGVyYWwgQHNhbXB7XX0uCiAKIFRoZSBleGFjdCBydWxlcyBh cmUgdGhhdCBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcmVnZXhwLCBAc2FtcHtbfSBpcwogc3Bl Y2lhbCBhbmQgQHNhbXB7XX0gbm90LiAgVGhpcyBsYXN0cyB1bnRpbCB0aGUgZmlyc3QgdW5x dW90ZWQKLUBzYW1we1t9LCBhZnRlciB3aGljaCB3ZSBhcmUgaW4gYSBjaGFyYWN0ZXIgYWx0 ZXJuYXRpdmU7IEBzYW1we1t9IGlzCitAc2FtcHtbfSwgYWZ0ZXIgd2hpY2ggd2UgYXJlIGlu IGEgYnJhY2tldCBleHByZXNzaW9uOyBAc2FtcHtbfSBpcwogbm8gbG9uZ2VyIHNwZWNpYWwg KGV4Y2VwdCB3aGVuIGl0IHN0YXJ0cyBhIGNoYXJhY3RlciBjbGFzcykgYnV0IEBzYW1we119 CiBpcyBzcGVjaWFsLCB1bmxlc3MgaXQgaW1tZWRpYXRlbHkgZm9sbG93cyB0aGUgc3BlY2lh bCBAc2FtcHtbfSBvciB0aGF0CiBAc2FtcHtbfSBmb2xsb3dlZCBieSBhIEBzYW1we159LiAg VGhpcyBsYXN0cyB1bnRpbCB0aGUgbmV4dCBzcGVjaWFsCi1Ac2FtcHtdfSB0aGF0IGRvZXMg bm90IGVuZCBhIGNoYXJhY3RlciBjbGFzcy4gIFRoaXMgZW5kcyB0aGUgY2hhcmFjdGVyCi1h bHRlcm5hdGl2ZSBhbmQgcmVzdG9yZXMgdGhlIG9yZGluYXJ5IHN5bnRheCBvZiByZWd1bGFy IGV4cHJlc3Npb25zOworQHNhbXB7XX0gdGhhdCBkb2VzIG5vdCBlbmQgYSBjaGFyYWN0ZXIg Y2xhc3MuICBUaGlzIGVuZHMgdGhlIGJyYWNrZXQKK2V4cHJlc3Npb24gYW5kIHJlc3RvcmVz IHRoZSBvcmRpbmFyeSBzeW50YXggb2YgcmVndWxhciBleHByZXNzaW9uczsKIGFuIHVucXVv dGVkIEBzYW1we1t9IGlzIHNwZWNpYWwgYWdhaW4gYW5kIGEgQHNhbXB7XX0gbm90LgogCiBA bm9kZSBDaGFyIENsYXNzZXMKQEAgLTU5Miw4ICs1OTIsOCBAQCBDaGFyIENsYXNzZXMKIEBj aW5kZXggYWxwaGEgY2hhcmFjdGVyIGNsYXNzLCByZWdleHAKIEBjaW5kZXggeGRpZ2l0IGNo YXJhY3RlciBjbGFzcywgcmVnZXhwCiAKLSAgQmVsb3cgaXMgYSB0YWJsZSBvZiB0aGUgY2xh c3NlcyB5b3UgY2FuIHVzZSBpbiBhIGNoYXJhY3RlcgotYWx0ZXJuYXRpdmUsIGFuZCB3aGF0 IHRoZXkgbWVhbi4gIE5vdGUgdGhhdCB0aGUgQHNhbXB7W30gYW5kIEBzYW1we119CisgIEJl bG93IGlzIGEgdGFibGUgb2YgdGhlIGNsYXNzZXMgeW91IGNhbiB1c2UgaW4gYSBicmFja2V0 CitleHByZXNzaW9uLCBhbmQgd2hhdCB0aGV5IG1lYW4uICBOb3RlIHRoYXQgdGhlIEBzYW1w e1t9IGFuZCBAc2FtcHtdfQogY2hhcmFjdGVycyB0aGF0IGVuY2xvc2UgdGhlIGNsYXNzIG5h bWUgYXJlIHBhcnQgb2YgdGhlIG5hbWUsIHNvIGEKIHJlZ3VsYXIgZXhwcmVzc2lvbiB1c2lu ZyB0aGVzZSBjbGFzc2VzIG5lZWRzIG9uZSBtb3JlIHBhaXIgb2YKIGJyYWNrZXRzLiAgRm9y IGV4YW1wbGUsIGEgcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nIGEgc2VxdWVuY2Ugb2YK QEAgLTkyMCw3ICs5MjAsNyBAQCBSZWdleHAgQmFja3NsYXNoCiAKIEBraW5kZXggaW52YWxp ZC1yZWdleHAKICAgTm90IGV2ZXJ5IHN0cmluZyBpcyBhIHZhbGlkIHJlZ3VsYXIgZXhwcmVz c2lvbi4gIEZvciBleGFtcGxlLCBhIHN0cmluZwotdGhhdCBlbmRzIGluc2lkZSBhIGNoYXJh Y3RlciBhbHRlcm5hdGl2ZSB3aXRob3V0IGEgdGVybWluYXRpbmcgQHNhbXB7XX0KK3RoYXQg ZW5kcyBpbnNpZGUgYSBicmFja2V0IGV4cHJlc3Npb24gd2l0aG91dCBhIHRlcm1pbmF0aW5n IEBzYW1we119CiBpcyBpbnZhbGlkLCBhbmQgc28gaXMgYSBzdHJpbmcgdGhhdCBlbmRzIHdp dGggYSBzaW5nbGUgQHNhbXB7XH0uICBJZgogYW4gaW52YWxpZCByZWd1bGFyIGV4cHJlc3Np b24gaXMgcGFzc2VkIHRvIGFueSBvZiB0aGUgc2VhcmNoIGZ1bmN0aW9ucywKIGFuIEBjb2Rl e2ludmFsaWQtcmVnZXhwfSBlcnJvciBpcyBzaWduYWxlZC4KQEAgLTk1Nyw3ICs5NTcsNyBA QCBSZWdleHAgRXhhbXBsZQogCiBAdGFibGUgQGNvZGUKIEBpdGVtIFsuPyFdCi1UaGUgZmly c3QgcGFydCBvZiB0aGUgcGF0dGVybiBpcyBhIGNoYXJhY3RlciBhbHRlcm5hdGl2ZSB0aGF0 IG1hdGNoZXMKK1RoZSBmaXJzdCBwYXJ0IG9mIHRoZSBwYXR0ZXJuIGlzIGEgYnJhY2tldCBl eHByZXNzaW9uIHRoYXQgbWF0Y2hlcwogYW55IG9uZSBvZiB0aHJlZSBjaGFyYWN0ZXJzOiBw ZXJpb2QsIHF1ZXN0aW9uIG1hcmssIGFuZCBleGNsYW1hdGlvbgogbWFyay4gIFRoZSBtYXRj aCBtdXN0IGJlZ2luIHdpdGggb25lIG9mIHRoZXNlIHRocmVlIGNoYXJhY3RlcnMuICAoVGhp cwogaXMgb25lIHBvaW50IHdoZXJlIHRoZSBuZXcgZGVmYXVsdCByZWdleHAgdXNlZCBieSBF bWFjcyBkaWZmZXJzIGZyb20KQEAgLTk2OSw3ICs5NjksNyBAQCBSZWdleHAgRXhhbXBsZQog bWFya3MsIHplcm8gb3IgbW9yZSBvZiB0aGVtLCB0aGF0IG1heSBmb2xsb3cgdGhlIHBlcmlv ZCwgcXVlc3Rpb24gbWFyawogb3IgZXhjbGFtYXRpb24gbWFyay4gIFRoZSBAY29kZXtcIn0g aXMgTGlzcCBzeW50YXggZm9yIGEgZG91YmxlLXF1b3RlIGluCiBhIHN0cmluZy4gIFRoZSBA c2FtcHsqfSBhdCB0aGUgZW5kIGluZGljYXRlcyB0aGF0IHRoZSBpbW1lZGlhdGVseQotcHJl Y2VkaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbiAoYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUsIGlu IHRoaXMgY2FzZSkgbWF5IGJlCitwcmVjZWRpbmcgcmVndWxhciBleHByZXNzaW9uIChhIGJy YWNrZXQgZXhwcmVzc2lvbiwgaW4gdGhpcyBjYXNlKSBtYXkgYmUKIHJlcGVhdGVkIHplcm8g b3IgbW9yZSB0aW1lcy4KIAogQGl0ZW0gXFwoJFxcfEAgJFxcfFx0XFx8QCBAIFxcKQpAQCAt MTkyMCw3ICsxOTIwLDcgQEAgUmVnZXhwIFByb2JsZW1zCiBjYXVzaW5nIGEgbWF0Y2ggdG8g ZmFpbCBlYXJseS4KIAogQGl0ZW0KLUF2b2lkIG9yLXBhdHRlcm5zIGluIGZhdm9yIG9mIGNo YXJhY3RlciBhbHRlcm5hdGl2ZXM6IHdyaXRlCitBdm9pZCBvci1wYXR0ZXJucyBpbiBmYXZv ciBvZiBicmFja2V0IGV4cHJlc3Npb25zOiB3cml0ZQogQHNhbXB7W2FiXX0gaW5zdGVhZCBv ZiBAc2FtcHthXHxifS4gIFJlY2FsbCB0aGF0IEBzYW1we1xzLX0gYW5kIEBzYW1we1xzd30K IGFyZSBlcXVpdmFsZW50IHRvIEBzYW1we1tbOnNwYWNlOl1dfSBhbmQgQHNhbXB7W1s6d29y ZDpdXX0sIHJlc3BlY3RpdmVseS4KIApAQCAtMzAxMiw3ICszMDEyLDcgQEAgUE9TSVggUmVn ZXhwcwogQGl0ZW0KIEluIFBPU0lYIEJSRXMsIGl0IGlzIGFuIGltcGxlbWVudGF0aW9uIG9w dGlvbiB3aGV0aGVyIEBzYW1we159IGlzIHNwZWNpYWwKIGFmdGVyIEBzYW1we1wofTsgR05V IEBjb21tYW5ke2dyZXB9IHRyZWF0cyBpdCBsaWtlIEVtYWNzIGRvZXMuCi1JbiBQT1NJWCBF UkVzLCBAc2FtcHtefSBpcyBhbHdheXMgc3BlY2lhbCBvdXRzaWRlIG9mIGNoYXJhY3RlciBh bHRlcm5hdGl2ZXMsCitJbiBQT1NJWCBFUkVzLCBAc2FtcHtefSBpcyBhbHdheXMgc3BlY2lh bCBvdXRzaWRlIG9mIGJyYWNrZXQgZXhwcmVzc2lvbnMsCiB3aGljaCBtZWFucyB0aGUgRVJF IEBzYW1we3hefSBuZXZlciBtYXRjaGVzLgogSW4gRW1hY3MgcmVndWxhciBleHByZXNzaW9u cywgQHNhbXB7Xn0gaXMgc3BlY2lhbCBvbmx5IGF0IHRoZQogYmVnaW5uaW5nIG9mIHRoZSBy ZWd1bGFyIGV4cHJlc3Npb24sIG9yIGFmdGVyIEBzYW1we1wofSwgQHNhbXB7XCg/On0KQEAg LTMwMjEsNyArMzAyMSw3IEBAIFBPU0lYIFJlZ2V4cHMKIEBpdGVtCiBJbiBQT1NJWCBCUkVz LCBpdCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvcHRpb24gd2hldGhlciBAc2FtcHskfSBpcyBz cGVjaWFsCiBiZWZvcmUgQHNhbXB7XCl9OyBHTlUgQGNvbW1hbmR7Z3JlcH0gdHJlYXRzIGl0 IGxpa2UgRW1hY3MgZG9lcy4KLUluIFBPU0lYIEVSRXMsIEBzYW1weyR9IGlzIGFsd2F5cyBz cGVjaWFsIG91dHNpZGUgb2YgY2hhcmFjdGVyIGFsdGVybmF0aXZlcywKK0luIFBPU0lYIEVS RXMsIEBzYW1weyR9IGlzIGFsd2F5cyBzcGVjaWFsIG91dHNpZGUgb2YgYnJhY2tldCBleHBy ZXNzaW9ucywKIHdoaWNoIG1lYW5zIHRoZSBFUkUgQHNhbXB7JHh9IG5ldmVyIG1hdGNoZXMu CiBJbiBFbWFjcyByZWd1bGFyIGV4cHJlc3Npb25zLCBAc2FtcHskfSBpcyBzcGVjaWFsIG9u bHkgYXQgdGhlCiBlbmQgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3IgYmVmb3JlIEBz YW1we1wpfSBvciBAc2FtcHtcfH0uCkBAIC0zMDQ5LDggKzMwNDksOCBAQCBQT1NJWCBSZWdl eHBzCiBAc2FtcHtbOm5vbmFzY2lpOl19LCBAc2FtcHtbOnVuaWJ5dGU6XX0sIGFuZCBAc2Ft cHtbOndvcmQ6XX0uCiAKIEBpdGVtCi1CUkUgYW5kIEVSRSBhbHRlcm5hdGl2ZXMgY2FuIGNv bnRhaW4gY29sbGF0aW5nIHN5bWJvbHMgYW5kIGVxdWl2YWxlbmNlCi1jbGFzcyBleHByZXNz aW9ucywgZS5nLiwgQHNhbXB7W1suY2guXWRbPWE9XV19LgorQlJFcyBhbmQgRVJFcyBjYW4g Y29udGFpbiBjb2xsYXRpbmcgc3ltYm9scyBhbmQgZXF1aXZhbGVuY2UKK2NsYXNzIGV4cHJl c3Npb25zIHdpdGhpbiBicmFja2V0IGV4cHJlc3Npb25zLCBlLmcuLCBAc2FtcHtbWy5jaC5d ZFs9YT1dXX0uCiBFbWFjcyByZWd1bGFyIGV4cHJlc3Npb25zIGRvIG5vdCBzdXBwb3J0IHRo aXMuCiAKIEBpdGVtCmRpZmYgLS1naXQgYS9saXNwL2VtYWNzLWxpc3AvbGlzcC1tb2RlLmVs IGIvbGlzcC9lbWFjcy1saXNwL2xpc3AtbW9kZS5lbAppbmRleCA5OTE0ZWRlZGI4NS4uMTk5 MDYzMDYwOGQgMTAwNjQ0Ci0tLSBhL2xpc3AvZW1hY3MtbGlzcC9saXNwLW1vZGUuZWwKKysr IGIvbGlzcC9lbWFjcy1saXNwL2xpc3AtbW9kZS5lbApAQCAtMTQ1Myw3ICsxNDUzLDcgQEAg bGlzcC1maWxsLXBhcmFncmFwaAogICAgICAgOzsgYXJlIGJ1ZmZlci1sb2NhbCwgYnV0IHdl IGF2b2lkIGNoYW5naW5nIHRoZW0gc28gdGhhdCB0aGV5IGNhbiBiZSBzZXQKICAgICAgIDs7 IHRvIG1ha2UgYGZvcndhcmQtcGFyYWdyYXBoJyBhbmQgZnJpZW5kcyBkbyBzb21ldGhpbmcg dGhlIHVzZXIgd2FudHMuCiAgICAgICA7OwotICAgICAgOzsgYHBhcmFncmFwaC1zdGFydCc6 IFRoZSBgKCcgaW4gdGhlIGNoYXJhY3RlciBhbHRlcm5hdGl2ZSBhbmQgdGhlCisgICAgICA7 OyBgcGFyYWdyYXBoLXN0YXJ0JzogVGhlIGAoJyBpbiB0aGUgYnJhY2tldCBleHByZXNzaW9u IGFuZCB0aGUKICAgICAgIDs7IGxlZnQtc2luZ2xlcXVvdGUgcGx1cyBgKCcgc2VxdWVuY2Ug YWZ0ZXIgdGhlIFxcfCBhbHRlcm5hdGl2ZSBwcmV2ZW50CiAgICAgICA7OyBzZXhwcyBhbmQg YmFja3F1b3RlZCBzZXhwcyB0aGF0IGZvbGxvdyBhIGRvY3N0cmluZyBmcm9tIGJlaW5nIGZp bGxlZAogICAgICAgOzsgd2l0aCB0aGUgZG9jc3RyaW5nLiAgVGhpcyBzZXR0aW5nIGhhcyB0 aGUgY29uc2VxdWVuY2Ugb2YgaW5oaWJpdGluZwpkaWZmIC0tZ2l0IGEvbGlzcC90ZXh0bW9k ZXMvcGljdHVyZS5lbCBiL2xpc3AvdGV4dG1vZGVzL3BpY3R1cmUuZWwKaW5kZXggOWFhOWI3 MmM1MTMuLmY5OGMzOTYzYjZmIDEwMDY0NAotLS0gYS9saXNwL3RleHRtb2Rlcy9waWN0dXJl LmVsCisrKyBiL2xpc3AvdGV4dG1vZGVzL3BpY3R1cmUuZWwKQEAgLTM4Myw3ICszODMsNyBA QCBwaWN0dXJlLXRhYi1jaGFycwogVGhlIHN5bnRheCBmb3IgdGhpcyB2YXJpYWJsZSBpcyBs aWtlIHRoZSBzeW50YXggdXNlZCBpbnNpZGUgb2YgYFsuLi5dJwogaW4gYSByZWd1bGFyIGV4 cHJlc3Npb24tLWJ1dCB3aXRob3V0IHRoZSBgWycgYW5kIHRoZSBgXScuCiBJdCBpcyBOT1Qg YSByZWd1bGFyIGV4cHJlc3Npb24sIGFuZCBzaG91bGQgZm9sbG93IHRoZSB1c3VhbAotcnVs ZXMgZm9yIHRoZSBjb250ZW50cyBvZiBhIGNoYXJhY3RlciBhbHRlcm5hdGl2ZS4KK3J1bGVz IGZvciB0aGUgY29udGVudHMgb2YgYSBicmFja2V0IGV4cHJlc3Npb24uCiBJdCBkZWZpbmVz IGEgc2V0IG9mIFwiaW50ZXJlc3RpbmcgY2hhcmFjdGVyc1wiIHRvIGxvb2sgZm9yIHdoZW4g c2V0dGluZwogXChvciBzZWFyY2hpbmcgZm9yKSB0YWIgc3RvcHMsIGluaXRpYWxseSBcIiEt flwiIChhbGwgcHJpbnRpbmcgY2hhcmFjdGVycykuCiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0 aGF0IHlvdSBhcmUgZWRpdGluZyBhIHRhYmxlIHdoaWNoIGlzIGZvcm1hdHRlZCB0aHVzOgot LSAKMi4zOS4yCgo= --------------WveC1B3ElZHTe9phDlMuweW0-- From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2023 18:35:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: Eli Zaretskii , Paul Eggert , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168719969131029 (code B ref 64128); Mon, 19 Jun 2023 18:35:01 +0000 Received: (at 64128) by debbugs.gnu.org; 19 Jun 2023 18:34:51 +0000 Received: from localhost ([127.0.0.1]:57283 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBJiF-00084P-JK for submit@debbugs.gnu.org; Mon, 19 Jun 2023 14:34:51 -0400 Received: from mail-lj1-f179.google.com ([209.85.208.179]:49467) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBJiD-00084C-Po for 64128@debbugs.gnu.org; Mon, 19 Jun 2023 14:34:50 -0400 Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-2b44eddb52dso53060351fa.3 for <64128@debbugs.gnu.org>; Mon, 19 Jun 2023 11:34:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687199684; x=1689791684; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:from:to:cc:subject:date:message-id:reply-to; bh=23q+PayCz4TF8bf5tn2tOvPSBg9lOxrkqrlmQad34Yo=; b=YYRE+MIDBexEIO3CIvXazeaXKDx0GirA9TaSskEHAwx+g34sjuiqGxgPCFDl+KhX99 czUYH0Q5wNDVSzMk31rntI65xdJBTTwST2IP6uWDH+dWiJdJwokDivHA9XcCv7p39aih odkoMEHg51Q0eTViqNBxenjmIpMjV7rDMRjg80Y60SyTODDnn1MHsWIG6RCaa/iPKsP3 KwmJw5xVtZ4LHo9JUl69ele6q8R1Wn3H0EnW6rMM87D0r3T0W2yo2YkvUguD3aFBhabW elC6UmNnxFmkXWqwW7j1RyDZXSlZnL4rPXzSrzUOOULc54dbQMpwNasF/GY1i5NT/M/5 CR1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687199684; x=1689791684; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=23q+PayCz4TF8bf5tn2tOvPSBg9lOxrkqrlmQad34Yo=; b=OJw0SOHi6JhWVaZWxG38kVjJpV7IPRWa0yvq6gM6d5o6WSSky/JBHcfqqWPyTiHhos Hp60RlIk88/Sa4Ol35EoAnbZjLZDBo1fapabqbItXN6If+cu1hSfY4PNR24BTr/ElDWA j7xYs45JqvNSTNfkTKEDzSETKe9QPUJ00Yt0Q81xDMajLsX9K3Z5G99lqbwZm3LfSPox f7+yMuxVAVOWdhcQifZoeKqxzAgmAkrONycprEDKcqc7NyygVjrpCzJkZqypVSRim7hY 8hjQ1Rd3L6gEf41k5pv1iczwM2jFHzw9jNvDDB7GFfBd6ksnTEMdwnwiTifu0jowNNZm CHAA== X-Gm-Message-State: AC+VfDzkedGhCPQK7I1eDsPJ3yIyVMFoSaEBQJ94FiLvuixQ+rh/dc99 PaxtVh3YmxKrkTI6OSk5vESKNiP2InQ= X-Google-Smtp-Source: ACHHUZ6Zqu79p2mXCfLOtaD5/rsa7ZlyRpuZ1ok035CN8dzEl+C/MB09EyTM3Mm/Q2ls37eVrqx8DQ== X-Received: by 2002:a2e:83d0:0:b0:2b4:792d:a4b5 with SMTP id s16-20020a2e83d0000000b002b4792da4b5mr1913176ljh.33.1687199683495; Mon, 19 Jun 2023 11:34:43 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id o11-20020a2e9b4b000000b002ad5f774579sm1216ljj.96.2023.06.19.11.34.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Jun 2023 11:34:42 -0700 (PDT) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Message-Id: <6AA06366-E276-47EA-96A3-506DA8B17D41@gmail.com> Content-Type: multipart/mixed; boundary="Apple-Mail=_58C619C2-F9BA-4321-8E94-AA99718BF664" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Date: Mon, 19 Jun 2023 20:34:42 +0200 In-Reply-To: References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --Apple-Mail=_58C619C2-F9BA-4321-8E94-AA99718BF664 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii 19 juni 2023 kl. 14.54 skrev Stefan Monnier : >=20 > I wish there was a way to emit warnings about oddball constructs > (starting with the "* is literal when encountered at the beginning of > a regexp"). I agree, but I'm more of a static analysis man. (And relint does = complain about all these cases as long as the regexp is detected as = such, so there probably aren't many of them left in the Emacs tree.) Here is a reduced patch that only fixes the really silly behaviour = reported earlier, by making sure that `laststart` is reset correctly for = all group A assertions. This should be uncontroversial. Maybe we should change group B assertions so that they work in the same = way. --Apple-Mail=_58C619C2-F9BA-4321-8E94-AA99718BF664 Content-Disposition: attachment; filename=regexp-zero-width-assertion-noquack.diff Content-Type: application/octet-stream; x-unix-mode=0644; name="regexp-zero-width-assertion-noquack.diff" Content-Transfer-Encoding: 7bit diff --git a/src/regex-emacs.c b/src/regex-emacs.c index fea34df991b..f2da1a2d0db 100644 --- a/src/regex-emacs.c +++ b/src/regex-emacs.c @@ -1716,7 +1716,9 @@ regex_compile (re_char *pattern, ptrdiff_t size, /* Address of start of the most recently finished expression. This tells, e.g., postfix * where to find the start of its - operand. Reset at the beginning of groups and alternatives. */ + operand. Reset at the beginning of groups and alternatives, + and after zero-width assertions which should not be the target + of any postfix repetition operators. */ unsigned char *laststart = 0; /* Address of beginning of regexp, or inside of last group. */ @@ -1847,12 +1849,14 @@ regex_compile (re_char *pattern, ptrdiff_t size, case '^': if (! (p == pattern + 1 || at_begline_loc_p (pattern, p))) goto normal_char; + laststart = 0; BUF_PUSH (begline); break; case '$': if (! (p == pend || at_endline_loc_p (p, pend))) goto normal_char; + laststart = 0; BUF_PUSH (endline); break; @@ -1892,7 +1896,7 @@ regex_compile (re_char *pattern, ptrdiff_t size, /* Star, etc. applied to an empty pattern is equivalent to an empty pattern. */ - if (!laststart || laststart == b) + if (laststart == b) break; /* Now we know whether or not zero matches is allowed @@ -2544,18 +2548,22 @@ regex_compile (re_char *pattern, ptrdiff_t size, break; case 'b': + laststart = 0; BUF_PUSH (wordbound); break; case 'B': + laststart = 0; BUF_PUSH (notwordbound); break; case '`': + laststart = 0; BUF_PUSH (begbuf); break; case '\'': + laststart = 0; BUF_PUSH (endbuf); break; diff --git a/test/src/regex-emacs-tests.el b/test/src/regex-emacs-tests.el index 52d43775b8e..48a487ffe15 100644 --- a/test/src/regex-emacs-tests.el +++ b/test/src/regex-emacs-tests.el @@ -883,4 +883,14 @@ regexp-tests-backtrack-optimization (should (looking-at "x*\\(=\\|:\\)*")) (should (looking-at "x*=*?")))) +(ert-deftest regexp-tests-zero-width-assertion-repetition () + ;; Check compatibility behaviour with repetition operators after + ;; certain zero-width assertions (bug#64128). + (should (equal (string-match "^*a" "*a") 0)) + (should (equal (string-match "\\`*a" "*a") 0)) + (should (equal (string-match "q\\b*!" "q*!") 0)) + (should (equal (string-match "q\\b*!" "!") nil)) + (should (equal (string-match "/\\B*z" "/*z") 0)) + (should (equal (string-match "/\\B*z" "z") nil))) + ;;; regex-emacs-tests.el ends here --Apple-Mail=_58C619C2-F9BA-4321-8E94-AA99718BF664 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii --Apple-Mail=_58C619C2-F9BA-4321-8E94-AA99718BF664-- From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2023 19:22:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= , Stefan Monnier Cc: Eli Zaretskii , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.16872025183784 (code B ref 64128); Mon, 19 Jun 2023 19:22:01 +0000 Received: (at 64128) by debbugs.gnu.org; 19 Jun 2023 19:21:58 +0000 Received: from localhost ([127.0.0.1]:57320 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBKRq-0000yy-Cu for submit@debbugs.gnu.org; Mon, 19 Jun 2023 15:21:58 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:54670) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBKRo-0000yk-Kw for 64128@debbugs.gnu.org; Mon, 19 Jun 2023 15:21:57 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 2043C3C09FB41; Mon, 19 Jun 2023 12:21:51 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id wm3MuimmvdyN; Mon, 19 Jun 2023 12:21:50 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id CE5793C09FB43; Mon, 19 Jun 2023 12:21:50 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu CE5793C09FB43 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1687202510; bh=x5xsnWMnSSOtpgaJ7HDFaTpVSWx07Mu0Vb4fwZiBdNE=; h=Message-ID:Date:MIME-Version:To:From; b=bqUmJA3D95rfkuZZJLFuk8HUVAf/vmR0Z7eH0qj2s2zv1PLQbB1INRF25iw2NohZC 6TAAzsDhZ5+ArQ7KYP7XzgM8X0nlnv/Q5Nk5fjYEL6Saj50di94yz+0KnNCrAbMt+S NEWdWFzFy2RhpQN6eKA7Vz1B2gSo4C58i0jl/686mjpZvh+C9AS4kB9+mS4YxY5HKD NuIbyTMnsmi0cXzlTmFrMGiStrDlM4EM6dwtM5Q4eMUfR/SiuKU9zRMaYHI5u55TSB XrBPAGAU0HdnBfwBQw3FV6GsroakaBdCaWTBqxzXg4Ju4F7y6CT5Y4WcFRUmmY+5/B RlvcKqoRDnCTg== X-Virus-Scanned: amavisd-new at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id z7r1ypVQNQWc; Mon, 19 Jun 2023 12:21:50 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id A590E3C09FB41; Mon, 19 Jun 2023 12:21:50 -0700 (PDT) Message-ID: <687a312e-3d1d-edd8-039d-f1cac98caaa6@cs.ucla.edu> Date: Mon, 19 Jun 2023 12:21:50 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Content-Language: en-US References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> <6AA06366-E276-47EA-96A3-506DA8B17D41@gmail.com> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: <6AA06366-E276-47EA-96A3-506DA8B17D41@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.1 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) On 2023-06-19 11:34, Mattias Engdeg=C3=A5rd wrote: > Here is a reduced patch that only fixes the really silly behaviour repo= rted earlier, by making sure that `laststart` is reset correctly for all = group A assertions. This should be uncontroversial. > Maybe we should change group B assertions so that they work in the same= way. > - operand. Reset at the beginning of groups and alternatives. */ > + operand. Reset at the beginning of groups and alternatives, > + and after zero-width assertions which should not be the target > + of any postfix repetition operators. */ If I understand things correctly, this would cause "\b*c" to be treated=20 like "\b\*c". If so, it's headed in the wrong direction. It's long been documented that the only reason "*" is ordinary at the=20 start of a regular expression or subexpression is "historical=20 compatibility", and it's also long been documented that you shouldn't=20 take advantage of this and you should backslash-escape the "*" anyway.=20 In contrast, for constructs like \b* there is not a historical=20 compatibility reason, so there's not a good argument for treating "*" as=20 an ordinary character after "\b". Instead, \b should not be a special case before "*", and \b* should be=20 equivalent to \(\b\)* and should match only the empty string. Similarly=20 for the other zero-width backslash escapes. This is what I would expect=20 from these constructs from the longstanding documentation. If we instead added a rule to say that a construct that can only match=20 the empty string causes following "*" to ordinary, then \b* and \(\b\)*=20 would both be equivalent to \*. Although consistent, this would be=20 confusing: it would compound the historical-compatibility mistake. Let's=20 keep things simple instead. Also, whatever change we make to the behavior should be documented in=20 the manual and in etc/NEWS. From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2023 19:53:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Paul Eggert Cc: Eli Zaretskii , Stefan Monnier , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.16872043707245 (code B ref 64128); Mon, 19 Jun 2023 19:53:01 +0000 Received: (at 64128) by debbugs.gnu.org; 19 Jun 2023 19:52:50 +0000 Received: from localhost ([127.0.0.1]:57355 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBKvi-0001sn-9H for submit@debbugs.gnu.org; Mon, 19 Jun 2023 15:52:50 -0400 Received: from mail-lj1-f169.google.com ([209.85.208.169]:51362) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBKvg-0001sZ-D4 for 64128@debbugs.gnu.org; Mon, 19 Jun 2023 15:52:49 -0400 Received: by mail-lj1-f169.google.com with SMTP id 38308e7fff4ca-2b4725e9917so26406021fa.2 for <64128@debbugs.gnu.org>; Mon, 19 Jun 2023 12:52:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687204362; x=1689796362; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=/VSW4e2vzYwN77vljIvf8LXAY537e1VS2Z8YOyf0LFY=; b=FXCaOk4UhopG79RO5S8f37cJeoHRbUXpggRwV+Dcl7M3Iw7c9hvt/vR6Srlp+BV6Rh hKB13PoeVWV5++7ZUEtjcCDCc65p4qdKPCerK4hcsDdFOou7kKAOIJ/F6UnJbkoEB9Pd JcDJZm9efUYAahzCFOjjigTs8OtacxgN6Z/YmwJkbJoAFLRZzquYTV2QpibtyO+CY+uf j8bsykjdbElyIP9UQeVI6Wjwtc9gtVWcIcT22zUJiSB5KbTtpW/K5rmSlm1DGA0u57ke FN7fwvQ+41WO76y/Seung3JY6SJkaTumM9FQoimPOmuGldjMOBiGaw1uGN4CyukhsvOI rKqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687204362; x=1689796362; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=/VSW4e2vzYwN77vljIvf8LXAY537e1VS2Z8YOyf0LFY=; b=KVUy2R+syh5YpJMqn8RTnrho/x486kPLhl4wIDVAh4j/jKpdu7C0Aj479CbTZxHtK9 Sn+Tq45iXdyw7CAJedHlAS85fyT0yNK9QGJ2UC3ZC4YUPz5c8uoCJXI29rvHYXoGh1iV gcBqNuFPvqedPBzj74KJhoEgIEZGRUlfCNzu1g6p5t0VKQ81YEgsga4VWYMFE0P4A0hV NI61G+gci/mWjuCLicnQJ16ZzgwU5gLexss9Tn/89WRTNok+oGRheu3Bch2rw0CeyyZ1 f6I0BUl03pIDAPwV1sVEBR1uRyRtIFlp2dlLWxnkdkkcs6iqAPqpML4Ibx0qhhjf8eoB Yewg== X-Gm-Message-State: AC+VfDw3nuGM9tdezlwK3C5a1Ywd5EwmOlcjCzON03lS5KmvI9TxXXsi R2ZZVFIdHbugjqtGbGUW/QI= X-Google-Smtp-Source: ACHHUZ4ZvOQTcNnUaoFJsUHSzoOXwBKqAbuOqPYTwVCJjdTj3lMyeCtI2jIuSBmp1tx8ZfuU5RD2HA== X-Received: by 2002:a05:651c:8a:b0:2b4:5e6d:a9e4 with SMTP id 10-20020a05651c008a00b002b45e6da9e4mr5146912ljq.42.1687204362158; Mon, 19 Jun 2023 12:52:42 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id z4-20020a05651c022400b002af03f75edasm29058ljn.80.2023.06.19.12.52.41 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Jun 2023 12:52:41 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= In-Reply-To: <687a312e-3d1d-edd8-039d-f1cac98caaa6@cs.ucla.edu> Date: Mon, 19 Jun 2023 21:52:40 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <48D53EC3-4335-4E88-98C1-4A74423E6ACB@gmail.com> References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> <6AA06366-E276-47EA-96A3-506DA8B17D41@gmail.com> <687a312e-3d1d-edd8-039d-f1cac98caaa6@cs.ucla.edu> X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) 19 juni 2023 kl. 21.21 skrev Paul Eggert : > If I understand things correctly, this would cause "\b*c" to be = treated like "\b\*c". Actually it already works that way. What the patch does, is preventing = AB\b*C from being treated as \(?:AB\b\)*C but as AB\b\*C instead, which = I think we can all agree is less wrong. You can check the test cases in the patch: (should (equal (string-match "q\\b*!" "q*!") 0)) (should (equal (string-match "q\\b*!" "!") nil)) which in current Emacs produce 2 and 0 respectively. > It's long been documented that the only reason "*" is ordinary at the = start of a regular expression or subexpression is "historical = compatibility", and it's also long been documented that you shouldn't = take advantage of this and you should backslash-escape the "*" anyway. = In contrast, for constructs like \b* there is not a historical = compatibility reason, so there's not a good argument for treating "*" as = an ordinary character after "\b". Sure, we can turn \b and \B into group B assertions, but the patch was = more conservative in nature. We also have \` to consider -- I think we have to preserve \`* meaning = \`\* for compatibility, historical or not, because it's something we = keep sighting in the wild. > Instead, \b should not be a special case before "*", and \b* should be = equivalent to \(\b\)* and should match only the empty string. Similarly = for the other zero-width backslash escapes. This is what I would expect = from these constructs from the longstanding documentation. >=20 > If we instead added a rule to say that a construct that can only match = the empty string causes following "*" to ordinary, then \b* and \(\b\)* = would both be equivalent to \*. Although consistent, this would be = confusing: it would compound the historical-compatibility mistake. Let's = keep things simple instead. Yes, I definitely would be confused by such semantics. > Also, whatever change we make to the behavior should be documented in = the manual and in etc/NEWS. Will be happy to oblige, although in this case it really just was a bug = fix. What I really would like to see is the regexp parser somehow separated = from the NFA bytecode generator, which would make both clearer. The = parser could then be re-used for other purposes such as a different = back-end (DFA construction) or a built-in xr-like converter. From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2023 20:10:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Cc: Eli Zaretskii , Paul Eggert , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.16872053478919 (code B ref 64128); Mon, 19 Jun 2023 20:10:01 +0000 Received: (at 64128) by debbugs.gnu.org; 19 Jun 2023 20:09:07 +0000 Received: from localhost ([127.0.0.1]:57360 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBLBT-0002Jm-0f for submit@debbugs.gnu.org; Mon, 19 Jun 2023 16:09:07 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:18616) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBLBR-0002JI-6m for 64128@debbugs.gnu.org; Mon, 19 Jun 2023 16:09:05 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 99000442F00; Mon, 19 Jun 2023 16:08:59 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 720F5442EC1; Mon, 19 Jun 2023 16:08:58 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1687205338; bh=aQlvGb/ly+2vXj1kpzf8cKuPpXg7k5iZfkarXiLSaRY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=WOyTHSIIg7qgp9wenvfeUdh6xk0IVC0KdSdkjWkyr6/vd3/aXWNA5RJmuAPlSWwQN mlQ37+HAznlQqyAsDaPqQMPRY3f9B/ZBCVDS6iItduDNW4GjyNdD+XhnzZNUjjDMpZ P5hwYH4TDoRtAnT0P61IQ+pvSJDdfAQ9YMWeCSpYRMEZz45o8k7LGxQ12VmjK5fkbq xlzmiE4jSNgJEjnRQSq9FZ7aHh9zSvwJRjzv07uWJuvNw+TN6IiWcsI1me0Ir0qZr0 tGo7y53kU3OxaMbq/CdqtQJDg8DnJO8B+2BCH7s+Lf8TMsqa3FoK8p3Uc/X7wK7OIw GysJQPsoWyERQ== Received: from pastel (unknown [45.72.207.87]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 489BB120205; Mon, 19 Jun 2023 16:08:58 -0400 (EDT) From: Stefan Monnier In-Reply-To: <48D53EC3-4335-4E88-98C1-4A74423E6ACB@gmail.com> ("Mattias =?UTF-8?Q?Engdeg=C3=A5rd?="'s message of "Mon, 19 Jun 2023 21:52:40 +0200") Message-ID: References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> <6AA06366-E276-47EA-96A3-506DA8B17D41@gmail.com> <687a312e-3d1d-edd8-039d-f1cac98caaa6@cs.ucla.edu> <48D53EC3-4335-4E88-98C1-4A74423E6ACB@gmail.com> Date: Mon, 19 Jun 2023 16:08:57 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.044 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain T_SCC_BODY_TEXT_LINE -0.01 - X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >> If I understand things correctly, this would cause "\b*c" to be treated like "\b\*c". > Actually it already works that way. What the patch does, is preventing > AB\b*C from being treated as \(?:AB\b\)*C but as AB\b\*C instead, which > I think we can all agree is less wrong. Hmm... maybe it's less wrong, but I'd rather make it behave like AB\(\b\)*C, which is, I'd argue, even less wrong. Or maybe make it signal an error: I can't imagine that the current behavior is used by very much code at all, seeing how it's so seriously non-intuitive. Stefan From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2023 20:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Cc: Eli Zaretskii , Stefan Monnier , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168720721512263 (code B ref 64128); Mon, 19 Jun 2023 20:41:01 +0000 Received: (at 64128) by debbugs.gnu.org; 19 Jun 2023 20:40:15 +0000 Received: from localhost ([127.0.0.1]:57396 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBLfb-0003Bi-1f for submit@debbugs.gnu.org; Mon, 19 Jun 2023 16:40:15 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:53132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBLfZ-0003BV-Ad for 64128@debbugs.gnu.org; Mon, 19 Jun 2023 16:40:13 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 45A243C09FA21; Mon, 19 Jun 2023 13:40:07 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 7swmXsnpHv_9; Mon, 19 Jun 2023 13:40:06 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id CDB043C09FB43; Mon, 19 Jun 2023 13:40:06 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu CDB043C09FB43 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1687207206; bh=7oY+yHgt1cGqYJkqUMsLXSUp3GMBClEViZ4bbk+5Krg=; h=Message-ID:Date:MIME-Version:To:From; b=Pj3MPVXpHNPUqNJkLZghZmNXR6eIOR7DyHspHHuKUGm6WWyGiIYlzAclihrEum4P9 G74OguRgejPHK03OWZmJ+h07pwiF8vEkEa4VOIWuzka8cilpBuYgvJ/2RCtsHQ4xMm dqukxwP0T/L7QWvz45X3RGqRiqQe99ATXADzqlO5XCel+ygBVJl2yW9ZRFDMU7QA2j sXe+VFZ99G6nJ2OsrppeTY2o56gLg0XkQ6RDES/xP/CGFhV2L6N/A1yZVpM0Mbp9MP 0vff8EpRitqHIbGKNBqhPvoOdOhopeW0DN1mLwiLQjzyXXFcVBESFO32G5jnDu4piv He5BjnkYRxkUQ== X-Virus-Scanned: amavisd-new at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id GH5EaJlgG0nC; Mon, 19 Jun 2023 13:40:06 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 9E3C63C09FA21; Mon, 19 Jun 2023 13:40:06 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------m4I2wpnM6qJv0gx0tAj9ltb5" Message-ID: Date: Mon, 19 Jun 2023 13:40:06 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Content-Language: en-US References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> <6AA06366-E276-47EA-96A3-506DA8B17D41@gmail.com> <687a312e-3d1d-edd8-039d-f1cac98caaa6@cs.ucla.edu> <48D53EC3-4335-4E88-98C1-4A74423E6ACB@gmail.com> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: <48D53EC3-4335-4E88-98C1-4A74423E6ACB@gmail.com> X-Spam-Score: -1.1 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) This is a multi-part message in MIME format. --------------m4I2wpnM6qJv0gx0tAj9ltb5 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 2023-06-19 12:52, Mattias Engdeg=C3=A5rd wrote: > Sure, we can turn \b and \B into group B assertions, but the patch was = more conservative in nature. OK, but we still need to fix this, as \b and \B should not be a special=20 case for following "*". > I think we have to preserve \`* meaning \`\* for compatibility, histori= cal or not, because it's something we keep sighting in the wild. That makes some sense, in that \` is like ^, and ^ is already a special=20 case (this is true even in POSIX BREs). In other words, how about if we change the groups from your list: Group A: ^ $ \` \' \b \B Group B: \< \> \_< \_> \=3D to this: Group A: ^ \` Group B: $ \' \b \B \< \> \_< \_> \=3D where "*" is ordinary after Group A, and special after Group B and there=20 is no other squirrelly behavior. And similarly for the other repetition=20 operators. Attached is a proposed doc change for this, which I have not installed.=20 Of course the code and etc/NEWS would need changing too. --------------m4I2wpnM6qJv0gx0tAj9ltb5 Content-Type: text/x-patch; charset=UTF-8; name="0001-Document-proposed-regex-fix-bug-64128.patch" Content-Disposition: attachment; filename="0001-Document-proposed-regex-fix-bug-64128.patch" Content-Transfer-Encoding: base64 RnJvbSAxOGY2ZTBjODVhNzMxM2QyMjFkYTg2OGU2YmY1NWFmMzI4MjgxMTJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDE5IEp1biAyMDIzIDEzOjM1OjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gRG9jdW1lbnQgcHJvcG9zZWQgcmVnZXggZml4IChidWcjNjQxMjgpCgoqIGRvYy9saXNw cmVmL3NlYXJjaGluZy50ZXhpIChSZWdleHAgU3BlY2lhbCk6ClNheSB0aGF0IHJlcGV0aXRp b24gb3BlcmF0b3JzIGFyZSBub3Qgc3BlY2lhbCBhZnRlciBcYCwKYW5kIHRoYXQgdGhleSB3 b3JrIGFzIGV4cGVjdGVkIGFmdGVyIG90aGVyIGJhY2tzbGFzaCBlc2NhcGVzLgotLS0KIGRv Yy9saXNwcmVmL3NlYXJjaGluZy50ZXhpIHwgNiArLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcHJl Zi9zZWFyY2hpbmcudGV4aSBiL2RvYy9saXNwcmVmL3NlYXJjaGluZy50ZXhpCmluZGV4IDI4 MjMwY2VhNjQuLjdjOTg5MzA1NGQgMTAwNjQ0Ci0tLSBhL2RvYy9saXNwcmVmL3NlYXJjaGlu Zy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL3NlYXJjaGluZy50ZXhpCkBAIC01NDYsMTUgKzU0 NiwxMSBAQCBSZWdleHAgU3BlY2lhbAogCiBGb3IgaGlzdG9yaWNhbCBjb21wYXRpYmlsaXR5 LCBhIHJlcGV0aXRpb24gb3BlcmF0b3IgaXMgdHJlYXRlZCBhcyBvcmRpbmFyeQogaWYgaXQg YXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgYSByZWd1bGFyIGV4cHJlc3Npb24KLW9yIGFmdGVy IEBzYW1we159LCBAc2FtcHtcKH0sIEBzYW1we1woPzp9IG9yIEBzYW1we1x8fS4KK29yIGFm dGVyIEBzYW1we159LCBAc2FtcHtcYH0sIEBzYW1we1wofSwgQHNhbXB7XCg/On0gb3IgQHNh bXB7XHx9LgogRm9yIGV4YW1wbGUsIEBzYW1weypmb299IGlzIHRyZWF0ZWQgYXMgQHNhbXB7 XCpmb299LCBhbmQKIEBzYW1we3R3b1x8XlxAezJcQH19IGlzIHRyZWF0ZWQgYXMgQHNhbXB7 dHdvXHxeQHsyQH19LgogSXQgaXMgcG9vciBwcmFjdGljZSB0byBkZXBlbmQgb24gdGhpcyBi ZWhhdmlvcjsgdXNlIHByb3BlciBiYWNrc2xhc2gKIGVzY2FwaW5nIGFueXdheSwgcmVnYXJk bGVzcyBvZiB3aGVyZSB0aGUgcmVwZXRpdGlvbiBvcGVyYXRvciBhcHBlYXJzLgotQWxzbywg YSByZXBldGl0aW9uIG9wZXJhdG9yIHNob3VsZCBub3QgaW1tZWRpYXRlbHkgZm9sbG93IGEg YmFja3NsYXNoIGVzY2FwZQotdGhhdCBtYXRjaGVzIG9ubHkgZW1wdHkgc3RyaW5ncywgYXMg RW1hY3MgaGFzIGJ1Z3MgaW4gdGhpcyBhcmVhLgotRm9yIGV4YW1wbGUsIGl0IGlzIHVud2lz ZSB0byB1c2UgQHNhbXB7XGIqfSwgd2hpY2ggY2FuIGJlIG9taXR0ZWQKLXdpdGhvdXQgY2hh bmdpbmcgdGhlIGRvY3VtZW50ZWQgbWVhbmluZyBvZiB0aGUgcmVndWxhciBleHByZXNzaW9u LgogCiBBcyBhIEBzYW1we1x9IGlzIG5vdCBzcGVjaWFsIGluc2lkZSBhIGJyYWNrZXQgZXhw cmVzc2lvbiwgaXQgY2FuCiBuZXZlciByZW1vdmUgdGhlIHNwZWNpYWwgbWVhbmluZyBvZiBA c2FtcHstfSwgQHNhbXB7Xn0gb3IgQHNhbXB7XX0uCi0tIAoyLjM5LjIKCg== --------------m4I2wpnM6qJv0gx0tAj9ltb5-- From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 20 Jun 2023 11:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: Eli Zaretskii , Paul Eggert , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168726101320390 (code B ref 64128); Tue, 20 Jun 2023 11:37:02 +0000 Received: (at 64128) by debbugs.gnu.org; 20 Jun 2023 11:36:53 +0000 Received: from localhost ([127.0.0.1]:58207 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBZfJ-0005In-Aa for submit@debbugs.gnu.org; Tue, 20 Jun 2023 07:36:53 -0400 Received: from mail-lj1-f176.google.com ([209.85.208.176]:60583) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBZfG-0005IW-Ln for 64128@debbugs.gnu.org; Tue, 20 Jun 2023 07:36:51 -0400 Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-2b47bfd4e45so28157181fa.0 for <64128@debbugs.gnu.org>; Tue, 20 Jun 2023 04:36:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687261004; x=1689853004; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:from:to:cc:subject:date:message-id:reply-to; bh=gyJnthxJ2i7vZYKWUXINkdA+hKYGFf6+llYSy9sXXqA=; b=nTLppk5L0T50QirFSqdeO16apeKjNcK8Kb10RfinmAvrS/8TC7mn6z8ZyerjeIYTpD +FssCy9qH9ompJtTJlZCk20vJ+mKQv3wM5vefHJYgUr6z4tVMEl8nFuU8F6zbEBIokY8 tuj4ERVT8eJzPV6KKTVbGdALF3sMVxe30E0kMxNM7KEvSPUW2bHkOdKIB6m5UjcODLpl dFed8KRCLjfvJ3b4LBVfyeQSsQ1/Qssqnslpq1mTL8R/4pONK01Re027RwxNZMWyHZsK xdhiK8lYavjPaSVdTyPnSeuQa04q6lBk0Wtrrt9vydnVfTYsHLROaKWwdbLGq7uG/vbS 5Ofg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687261004; x=1689853004; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=gyJnthxJ2i7vZYKWUXINkdA+hKYGFf6+llYSy9sXXqA=; b=TDVU8x12MEhiL+nsv2cTSaTCsXmCd1EpJKloH7/QBuJQstiYpnv9dYihTyMm6ci4Ok JQB46Th/BIa2fvbzxu3WmV9IUaQIIPjCwpytZ33oyWmo9hR7PgEJDLE6RaCF647xYXhb WNglSwKtNFO86rdgB7b+waMJq62hQWr4fPlJeRI3IWA65UJ5fnUMepupC3HF/Fu6qa8n 6YwUqV/bkjndGGJF+2y5ZJOrs/sGtKmN4bLcC76JF0/8X8lRgZNprYTvCu8q5KJpvKzV KlZ+s1oEGsk5pit1iETjkyd7Us0ee9wBp2ZI3N99jIqLMpJt/62slrXhgfbtHV2eSwKQ zzCQ== X-Gm-Message-State: AC+VfDxyvE1uKGieeF306uszOZhDMUX2N6KM4k2Gt/G8HhH97d7DA4E3 fGpXDsg7MdEpEArpXb/arFM= X-Google-Smtp-Source: ACHHUZ6k4haNmF2NtIrtrEM626FVm08uDiOq+kRFgrH4SkNpyhohhEykQYjxicLoXGVjWZQLn8mX9g== X-Received: by 2002:a05:651c:1036:b0:2b1:a3e6:1fa8 with SMTP id w22-20020a05651c103600b002b1a3e61fa8mr8058767ljm.49.1687261004290; Tue, 20 Jun 2023 04:36:44 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id c17-20020a2e9d91000000b002b1bf326a88sm374691ljj.127.2023.06.20.04.36.43 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Jun 2023 04:36:43 -0700 (PDT) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Message-Id: <9F76C15B-0038-4DFE-B2DE-F35EC1D87C93@gmail.com> Content-Type: multipart/mixed; boundary="Apple-Mail=_750852C0-412C-40D3-88FB-141F176D2864" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Date: Tue, 20 Jun 2023 13:36:42 +0200 In-Reply-To: References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> <6AA06366-E276-47EA-96A3-506DA8B17D41@gmail.com> <687a312e-3d1d-edd8-039d-f1cac98caaa6@cs.ucla.edu> <48D53EC3-4335-4E88-98C1-4A74423E6ACB@gmail.com> X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --Apple-Mail=_750852C0-412C-40D3-88FB-141F176D2864 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii 19 juni 2023 kl. 22.08 skrev Stefan Monnier : > Hmm... maybe it's less wrong, but I'd rather make it behave like > AB\(\b\)*C, which is, I'd argue, even less wrong. I agree, and you are probably right that it's safe to do that. > Or maybe make it signal an error: I can't imagine that the current > behavior is used by very much code at all, seeing how it's so > seriously non-intuitive. That might be even better if we can get away with it. 19 juni 2023 kl. 22.40 skrev Paul Eggert : > In other words, how about if we change the groups from your list: >=20 > Group A: ^ $ \` \' \b \B > Group B: \< \> \_< \_> \=3D >=20 > to this: >=20 > Group A: ^ \` > Group B: $ \' \b \B \< \> \_< \_> \=3D >=20 > where "*" is ordinary after Group A, and special after Group B and = there is no other squirrelly behavior. And similarly for the other = repetition operators. Sounds fine, with the option to go full error on group B if we agree = that that's even better. > Attached is a proposed doc change for this, which I have not = installed. Thank you, it has been incorporated in the attached patch which follows = your suggestions above. Your previous regexp doc updates are most appreciated. I still think the = whole chapter needs a reform from the sheer weight of organic growth = over the years. In particular, the division between "regexp special" and = "regexp backslash" is purely syntactical, not semantic, and groups = things in the wrong way. --Apple-Mail=_750852C0-412C-40D3-88FB-141F176D2864 Content-Disposition: attachment; filename=0001-Straighten-regexp-postfix-operator-after-zero-width-.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Straighten-regexp-postfix-operator-after-zero-width-.patch" Content-Transfer-Encoding: quoted-printable =46rom=20ef54f07ca78b2eef5181deb4f28deab100be2a75=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= =0ADate:=20Tue,=2020=20Jun=202023=2012:12:50=20+0200=0A= Subject:=20[PATCH]=20Straighten=20regexp=20postfix=20operator=20after=20= zero-width=20assertion=0A=20parse=0A=0AThe=20zero-width=20assertions=20= \`=20\'=20\b=20\B=20were=20parsed=20in=20a=20sloppy=20way=20so=0Athat=20= a=20following=20postfix=20repetition=20operator=20could=20yield=20= surprising=0Aresults.=20=20For=20instance,=20"\\b*"=20would=20act=20as=20= "\\b\\*",=20and=20"xy\\b*"=0Awould=20act=20as=20"\\(?:xy\\b\\)*".=0A=0A= Except=20for=20\`=20and=20^,=20any=20following=20postfix=20operator=20= now=20applies=20to=20the=0Azero-width=20assertion=20itself=20only=20= which=20is=20predictable=20and=20consistent=20with=0Aother=20assertions,=20= although=20useless=20in=20practice.=0AFor=20historical=20compatibility,=20= an=20operator=20character=20following=20\`=20and=20^=0Aalways=20becomes=20= a=20literal.=20(Bug#64128)=0A=0A*=20src/regex-emacs.c=20(regex_compile):=0A= Set=20`laststart`=20appropriately=20for=20each=20zero-width=20assertion=20= instead=0Aof=20leaving=20it=20with=20whatever=20value=20it=20had=20= before.=0A*=20test/src/regex-emacs-tests.el=0A= (regexp-tests-zero-width-assertion-repetition):=20New=20test.=0A*=20= doc/lispref/searching.texi=20(Regexp=20Special):=0ASay=20that=20= repetition=20operators=20are=20not=20special=20after=20\`,=0Aand=20that=20= they=20work=20as=20expected=20after=20other=20backslash=20escapes.=0A*=20= etc/NEWS:=20Announce.=0A---=0A=20doc/lispref/searching.texi=20=20=20=20|=20= =206=20+---=0A=20etc/NEWS=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20|=20=208=20+++++=0A=20src/regex-emacs.c=20=20=20=20=20=20= =20=20=20=20=20=20=20|=2015=20+++++++--=0A=20= test/src/regex-emacs-tests.el=20|=2063=20= +++++++++++++++++++++++++++++++++++=0A=204=20files=20changed,=2085=20= insertions(+),=207=20deletions(-)=0A=0Adiff=20--git=20= a/doc/lispref/searching.texi=20b/doc/lispref/searching.texi=0Aindex=20= 28230cea643..7c9893054d9=20100644=0A---=20a/doc/lispref/searching.texi=0A= +++=20b/doc/lispref/searching.texi=0A@@=20-546,15=20+546,11=20@@=20= Regexp=20Special=0A=20=0A=20For=20historical=20compatibility,=20a=20= repetition=20operator=20is=20treated=20as=20ordinary=0A=20if=20it=20= appears=20at=20the=20start=20of=20a=20regular=20expression=0A-or=20after=20= @samp{^},=20@samp{\(},=20@samp{\(?:}=20or=20@samp{\|}.=0A+or=20after=20= @samp{^},=20@samp{\`},=20@samp{\(},=20@samp{\(?:}=20or=20@samp{\|}.=0A=20= For=20example,=20@samp{*foo}=20is=20treated=20as=20@samp{\*foo},=20and=0A= =20@samp{two\|^\@{2\@}}=20is=20treated=20as=20@samp{two\|^@{2@}}.=0A=20= It=20is=20poor=20practice=20to=20depend=20on=20this=20behavior;=20use=20= proper=20backslash=0A=20escaping=20anyway,=20regardless=20of=20where=20= the=20repetition=20operator=20appears.=0A-Also,=20a=20repetition=20= operator=20should=20not=20immediately=20follow=20a=20backslash=20escape=0A= -that=20matches=20only=20empty=20strings,=20as=20Emacs=20has=20bugs=20in=20= this=20area.=0A-For=20example,=20it=20is=20unwise=20to=20use=20= @samp{\b*},=20which=20can=20be=20omitted=0A-without=20changing=20the=20= documented=20meaning=20of=20the=20regular=20expression.=0A=20=0A=20As=20= a=20@samp{\}=20is=20not=20special=20inside=20a=20bracket=20expression,=20= it=20can=0A=20never=20remove=20the=20special=20meaning=20of=20@samp{-},=20= @samp{^}=20or=20@samp{]}.=0Adiff=20--git=20a/etc/NEWS=20b/etc/NEWS=0A= index=202170323e74a..faf1f73b143=20100644=0A---=20a/etc/NEWS=0A+++=20= b/etc/NEWS=0A@@=20-470,6=20+470,14=20@@=20symbol,=20and=20either=20that=20= symbol=20is=20':eval'=20and=20the=20second=20element=20of=0A=20the=20= list=20evaluates=20to=20'nil'=20or=20the=20symbol's=20value=20as=20a=20= variable=20is=0A=20'nil'=20or=20void.=0A=20=0A++++=0A+**=20Regexp=20= zero-width=20assertions=20followed=20by=20operators=20are=20better=20= defined.=0A+Previously,=20regexps=20such=20as=20"xy\\B*"=20would=20have=20= ill-defined=20behaviour.=0A+Now=20any=20operator=20following=20a=20= zero-width=20assertion=20applies=20to=20that=0A+assertion=20only=20= (which=20is=20useless).=20=20For=20historical=20compatibility,=20an=0A= +operator=20character=20following=20'^'=20or=20'\`'=20becomes=20literal,=20= but=20we=0A+advise=20against=20relying=20on=20this.=0A+=0A=20=0C=0A=20*=20= Lisp=20Changes=20in=20Emacs=2030.1=0A=20=0Adiff=20--git=20= a/src/regex-emacs.c=20b/src/regex-emacs.c=0Aindex=20= fea34df991b..b02554791ce=20100644=0A---=20a/src/regex-emacs.c=0A+++=20= b/src/regex-emacs.c=0A@@=20-1716,7=20+1716,8=20@@=20regex_compile=20= (re_char=20*pattern,=20ptrdiff_t=20size,=0A=20=0A=20=20=20/*=20Address=20= of=20start=20of=20the=20most=20recently=20finished=20expression.=0A=20=20= =20=20=20=20This=20tells,=20e.g.,=20postfix=20*=20where=20to=20find=20= the=20start=20of=20its=0A-=20=20=20=20=20operand.=20=20Reset=20at=20the=20= beginning=20of=20groups=20and=20alternatives.=20=20*/=0A+=20=20=20=20=20= operand.=20=20Reset=20at=20the=20beginning=20of=20groups=20and=20= alternatives,=0A+=20=20=20=20=20and=20after=20^=20and=20\`=20for=20= dusty-deck=20compatibility.=20=20*/=0A=20=20=20unsigned=20char=20= *laststart=20=3D=200;=0A=20=0A=20=20=20/*=20Address=20of=20beginning=20= of=20regexp,=20or=20inside=20of=20last=20group.=20=20*/=0A@@=20-1847,12=20= +1848,16=20@@=20regex_compile=20(re_char=20*pattern,=20ptrdiff_t=20size,=0A= =20=09case=20'^':=0A=20=09=20=20if=20(!=20(p=20=3D=3D=20pattern=20+=201=20= ||=20at_begline_loc_p=20(pattern,=20p)))=0A=20=09=20=20=20=20goto=20= normal_char;=0A+=09=20=20/*=20Special=20case=20for=20compatibility:=20= postfix=20ops=20after=20\`=20become=0A+=09=20=20=20=20=20literals.=20=20= */=0A+=09=20=20laststart=20=3D=200;=0A=20=09=20=20BUF_PUSH=20(begline);=0A= =20=09=20=20break;=0A=20=0A=20=09case=20'$':=0A=20=09=20=20if=20(!=20(p=20= =3D=3D=20pend=20||=20at_endline_loc_p=20(p,=20pend)))=0A=20=09=20=20=20=20= goto=20normal_char;=0A+=09=20=20laststart=20=3D=20b;=0A=20=09=20=20= BUF_PUSH=20(endline);=0A=20=09=20=20break;=0A=20=0A@@=20-1892,7=20= +1897,7=20@@=20regex_compile=20(re_char=20*pattern,=20ptrdiff_t=20size,=0A= =20=0A=20=09=20=20=20=20/*=20Star,=20etc.=20applied=20to=20an=20empty=20= pattern=20is=20equivalent=0A=20=09=20=20=20=20=20=20=20to=20an=20empty=20= pattern.=20=20*/=0A-=09=20=20=20=20if=20(!laststart=20||=20laststart=20= =3D=3D=20b)=0A+=09=20=20=20=20if=20(laststart=20=3D=3D=20b)=0A=20=09=20=20= =20=20=20=20break;=0A=20=0A=20=09=20=20=20=20/*=20Now=20we=20know=20= whether=20or=20not=20zero=20matches=20is=20allowed=0A@@=20-2544,18=20= +2549,24=20@@=20regex_compile=20(re_char=20*pattern,=20ptrdiff_t=20size,=0A= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20break;=0A=20=0A=20=09=20=20=20= =20case=20'b':=0A+=09=20=20=20=20=20=20laststart=20=3D=20b;=0A=20=09=20=20= =20=20=20=20BUF_PUSH=20(wordbound);=0A=20=09=20=20=20=20=20=20break;=0A=20= =0A=20=09=20=20=20=20case=20'B':=0A+=09=20=20=20=20=20=20laststart=20=3D=20= b;=0A=20=09=20=20=20=20=20=20BUF_PUSH=20(notwordbound);=0A=20=09=20=20=20= =20=20=20break;=0A=20=0A=20=09=20=20=20=20case=20'`':=0A+=09=20=20=20=20=20= =20/*=20Special=20case=20for=20compatibility:=20postfix=20ops=20after=20= \`=20become=0A+=09=09=20literals,=20as=20for=20^=20(see=20above).=20=20= */=0A+=09=20=20=20=20=20=20laststart=20=3D=200;=0A=20=09=20=20=20=20=20=20= BUF_PUSH=20(begbuf);=0A=20=09=20=20=20=20=20=20break;=0A=20=0A=20=09=20=20= =20=20case=20'\'':=0A+=09=20=20=20=20=20=20laststart=20=3D=20b;=0A=20=09=20= =20=20=20=20=20BUF_PUSH=20(endbuf);=0A=20=09=20=20=20=20=20=20break;=0A=20= =0Adiff=20--git=20a/test/src/regex-emacs-tests.el=20= b/test/src/regex-emacs-tests.el=0Aindex=2052d43775b8e..e739e2b28a6=20= 100644=0A---=20a/test/src/regex-emacs-tests.el=0A+++=20= b/test/src/regex-emacs-tests.el=0A@@=20-883,4=20+883,67=20@@=20= regexp-tests-backtrack-optimization=0A=20=20=20=20=20(should=20= (looking-at=20"x*\\(=3D\\|:\\)*"))=0A=20=20=20=20=20(should=20= (looking-at=20"x*=3D*?"))))=0A=20=0A+(ert-deftest=20= regexp-tests-zero-width-assertion-repetition=20()=0A+=20=20;;=20Check=20= compatibility=20behaviour=20with=20repetition=20operators=20after=0A+=20=20= ;;=20certain=20zero-width=20assertions=20(bug#64128).=0A+=0A+=20=20;;=20= Postfix=20operators=20after=20^=20and=20\`=20become=20literals,=20for=20= historical=0A+=20=20;;=20compatibility.=20=20Only=20the=20first=20= character=20of=20a=20lazy=20operator=20(like=20*?)=0A+=20=20;;=20becomes=20= a=20literal.=0A+=20=20(should=20(equal=20(string-match=20"^*a"=20= "x\n*a")=202))=0A+=20=20(should=20(equal=20(string-match=20"^*?a"=20= "x\n*a")=202))=0A+=20=20(should=20(equal=20(string-match=20"^*?a"=20= "x\na")=202))=0A+=20=20(should=20(equal=20(string-match=20"^*?a"=20= "x\n**a")=20nil))=0A+=0A+=20=20(should=20(equal=20(string-match=20= "\\`*a"=20"*a")=200))=0A+=20=20(should=20(equal=20(string-match=20= "\\`*?a"=20"*a")=200))=0A+=20=20(should=20(equal=20(string-match=20= "\\`*?a"=20"a")=200))=0A+=20=20(should=20(equal=20(string-match=20= "\\`*?a"=20"**a")=20nil))=0A+=0A+=20=20;;=20Other=20zero-width=20= assertions=20are=20treated=20as=20normal=20elements,=20so=20postfix=0A+=20= =20;;=20operators=20apply=20to=20them=20alone=20(which=20is=20pointless=20= but=20valid).=0A+=20=20(should=20(equal=20(string-match=20"\\b*!"=20= "*!")=201))=0A+=20=20(should=20(equal=20(string-match=20"!\\b+;"=20"!;")=20= nil))=0A+=20=20(should=20(equal=20(string-match=20"!\\b+a"=20"!a")=200))=0A= +=0A+=20=20(should=20(equal=20(string-match=20"\\B*!"=20"*!")=201))=0A+=20= =20(should=20(equal=20(string-match=20"!\\B+;"=20"!;")=200))=0A+=20=20= (should=20(equal=20(string-match=20"!\\B+a"=20"!a")=20nil))=0A+=0A+=20=20= (should=20(equal=20(string-match=20"\\<*b"=20"*b")=201))=0A+=20=20= (should=20(equal=20(string-match=20"a\\<*b"=20"ab")=200))=0A+=20=20= (should=20(equal=20(string-match=20";\\<*b"=20";b")=200))=0A+=20=20= (should=20(equal=20(string-match=20"a\\<+b"=20"ab")=20nil))=0A+=20=20= (should=20(equal=20(string-match=20";\\<+b"=20";b")=200))=0A+=0A+=20=20= (should=20(equal=20(string-match=20"\\>*;"=20"*;")=201))=0A+=20=20= (should=20(equal=20(string-match=20"a\\>*b"=20"ab")=200))=0A+=20=20= (should=20(equal=20(string-match=20"a\\>*;"=20"a;")=200))=0A+=20=20= (should=20(equal=20(string-match=20"a\\>+b"=20"ab")=20nil))=0A+=20=20= (should=20(equal=20(string-match=20"a\\>+;"=20"a;")=200))=0A+=0A+=20=20= (should=20(equal=20(string-match=20"a\\'"=20"ab")=20nil))=0A+=20=20= (should=20(equal=20(string-match=20"b\\'"=20"ab")=201))=0A+=20=20(should=20= (equal=20(string-match=20"a\\'*b"=20"ab")=200))=0A+=20=20(should=20= (equal=20(string-match=20"a\\'+"=20"ab")=20nil))=0A+=20=20(should=20= (equal=20(string-match=20"b\\'+"=20"ab")=201))=0A+=20=20(should=20(equal=20= (string-match=20"\\'+"=20"+")=201))=0A+=0A+=20=20(should=20(equal=20= (string-match=20"\\_<*b"=20"*b")=201))=0A+=20=20(should=20(equal=20= (string-match=20"a\\_<*b"=20"ab")=200))=0A+=20=20(should=20(equal=20= (string-match=20"=20\\_<*b"=20"=20b")=200))=0A+=20=20(should=20(equal=20= (string-match=20"a\\_<+b"=20"ab")=20nil))=0A+=20=20(should=20(equal=20= (string-match=20"=20\\_<+b"=20"=20b")=200))=0A+=0A+=20=20(should=20= (equal=20(string-match=20"\\_>*;"=20"*;")=201))=0A+=20=20(should=20= (equal=20(string-match=20"a\\_>*b"=20"ab")=200))=0A+=20=20(should=20= (equal=20(string-match=20"a\\_>*=20"=20"a=20")=200))=0A+=20=20(should=20= (equal=20(string-match=20"a\\_>+b"=20"ab")=20nil))=0A+=20=20(should=20= (equal=20(string-match=20"a\\_>+=20"=20"a=20")=200))=0A+=0A+=20=20= (should=20(equal=20(string-match=20"\\=3D*b"=20"*b")=201))=0A+=20=20= (should=20(equal=20(string-match=20"a\\=3D*b"=20"a*b")=20nil))=0A+=20=20= (should=20(equal=20(string-match=20"a\\=3D*b"=20"ab")=200))=0A+=20=20)=0A= +=0A=20;;;=20regex-emacs-tests.el=20ends=20here=0A--=20=0A2.32.0=20= (Apple=20Git-132)=0A=0A= --Apple-Mail=_750852C0-412C-40D3-88FB-141F176D2864-- From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 21 Jun 2023 06:09:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= , Stefan Monnier Cc: Eli Zaretskii , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168732772626925 (code B ref 64128); Wed, 21 Jun 2023 06:09:02 +0000 Received: (at 64128) by debbugs.gnu.org; 21 Jun 2023 06:08:46 +0000 Received: from localhost ([127.0.0.1]:60289 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBr1K-00070D-Lf for submit@debbugs.gnu.org; Wed, 21 Jun 2023 02:08:46 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:38090) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBr1I-0006zx-WE for 64128@debbugs.gnu.org; Wed, 21 Jun 2023 02:08:45 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id F11C03C09FA19; Tue, 20 Jun 2023 23:08:38 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id U9sx8q9R1LcL; Tue, 20 Jun 2023 23:08:38 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id B52EA3C09FA21; Tue, 20 Jun 2023 23:08:38 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu B52EA3C09FA21 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1687327718; bh=8b7jyfIKNJoTwXczJiprnEY/HgOPz2bz33+j19vCnvM=; h=Message-ID:Date:MIME-Version:To:From; b=nF0NFuLoUuo8aunyG3iYcZ98ODGzzt+4mLkdpQCz3MWH/3eMOEuTEtNY/WrjBssky Sz15UGedwsO0+0DNZM094K7T5On8+lG1hX0kD+yf6tTD/voXPi5LzqUyO+F1gGlNiX gBLXk1hXScoYn7Ff5lg2LYh5gTw4qZCB6WC+f8kSOQRRJlW8aeSt8iJlShoR5XZFv9 DA2JdYHXO4sXqTZdG2aVUFNfoYvIVLA/kSdZZM+FaQlxO3Yyyr16uKh5JSCgWT881e 7By4uTwv/vFQxOLDlRk0ONF3R0pIp9H2T634rZ5lPASUHco0u0d1AvMp21DHtdcKqP yk5sSgG/+B2Gg== X-Virus-Scanned: amavisd-new at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id VYxPdoj_c6mH; Tue, 20 Jun 2023 23:08:38 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 8E41A3C09FA19; Tue, 20 Jun 2023 23:08:38 -0700 (PDT) Message-ID: <6c9a05a6-d1a1-7e12-0834-16bf9f539fb1@cs.ucla.edu> Date: Tue, 20 Jun 2023 23:08:38 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Content-Language: en-US References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> <6AA06366-E276-47EA-96A3-506DA8B17D41@gmail.com> <687a312e-3d1d-edd8-039d-f1cac98caaa6@cs.ucla.edu> <48D53EC3-4335-4E88-98C1-4A74423E6ACB@gmail.com> <9F76C15B-0038-4DFE-B2DE-F35EC1D87C93@gmail.com> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: <9F76C15B-0038-4DFE-B2DE-F35EC1D87C93@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.1 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) On 2023-06-20 04:36, Mattias Engdeg=C3=A5rd wrote: > Sounds fine, with the option to go full error on group B if we agree th= at that's even better. That would be fine too. I'd even prefer it. In the meantime your patch=20 looks good. > I still think the whole chapter needs a reform from the sheer weight of= organic growth over the years. In particular, the division between "rege= xp special" and "regexp backslash" is purely syntactical, not semantic, a= nd groups things in the wrong way. Agreed. From unknown Sun Jun 22 17:15:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64128: regexp parser zero-width assertion bugs Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 21 Jun 2023 15:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Paul Eggert Cc: Eli Zaretskii , Stefan Monnier , 64128@debbugs.gnu.org Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.16873630609940 (code B ref 64128); Wed, 21 Jun 2023 15:58:02 +0000 Received: (at 64128) by debbugs.gnu.org; 21 Jun 2023 15:57:40 +0000 Received: from localhost ([127.0.0.1]:34106 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qC0DD-0002aG-N6 for submit@debbugs.gnu.org; Wed, 21 Jun 2023 11:57:39 -0400 Received: from mail-lf1-f43.google.com ([209.85.167.43]:48613) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qC0DB-0002Zp-Iv for 64128@debbugs.gnu.org; Wed, 21 Jun 2023 11:57:38 -0400 Received: by mail-lf1-f43.google.com with SMTP id 2adb3069b0e04-4f766777605so8148184e87.1 for <64128@debbugs.gnu.org>; Wed, 21 Jun 2023 08:57:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687363051; x=1689955051; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=wDYKuKRTl0GvjtQi0o+FGOe5b2nZgcg8fZ/8hF+//nk=; b=HZchVqmDXTp4YqVcD+KNug0LMP9xhUsjsEZgFHyWshHZeWWqGt59s9/KM4H6UrV6Fg rco7rxc04ekcSHiOxo0BTgnmRV5+i0eH6zZPbkOc0R9esCcUN7Mkkv8rL9hmRxrnGt5n 3qnt+wiu9d3/uqvSt9J2QX6ieToDc7GwhEC1OZF+CvofZCLx8K9MZxXdiRqkBu3p6pOi NRdSTzliyKNHS8CERTrZLPjcS985gGFqQtwglq8Xn2BNPB9cLnLbrFJ5dm2U810XOYSA 8cPbzwtrGlmbqZ+PrCKyqv7aO8alexyRmTeHkcDZ6SbfBZNQviqBf6LBW1uD6H447E8G e2zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687363051; x=1689955051; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=wDYKuKRTl0GvjtQi0o+FGOe5b2nZgcg8fZ/8hF+//nk=; b=d9MZnvF6cbrA0fAx9dE72fYwOYZGIR4rwQcorizH8dA3dQSixlRuRCdcp2oqVHWBSt UI6wACsiurVAq/CLgDcLe4l9ZfQxDWt746WdDZy8xlkgUlzoewJgCdlCu4ppGMPhNLcf YE3jIbFnOKfYmt9g6embd+ysvlvGk/QofyAv0B6lWfWJkjWM40OYFRge1q+cAC9pfGCx cjLEOv4RaHSkScLXFrQkqNDgiugzelh7Ux1+jVoecAdpC7OnjKbSWAcqqOcybF6Bj30s 8MMFCW/msV22xE/6JwNqy0dS0uhaKbLXdCgUVCztDbyeqfpv1+J2J4HQ8mthKHrHKOmg U6Rw== X-Gm-Message-State: AC+VfDwbUwjnAyFShoFv6Q+DUIL4Qy38KD7hRxaZVNJR675a9ZLQW7e/ LvYcq/bqPQWwSOu0N1G/TvI= X-Google-Smtp-Source: ACHHUZ4Td+2BgazqZzsCbLVpvU2Fbeytky9LewtGSovt8sKXMXofT3hr4N0vKpfLpAdTdFLCR6vSAQ== X-Received: by 2002:ac2:498f:0:b0:4f8:6cf1:8163 with SMTP id f15-20020ac2498f000000b004f86cf18163mr6710498lfl.18.1687363050999; Wed, 21 Jun 2023 08:57:30 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id u15-20020ac243cf000000b004f87144f19asm818658lfl.260.2023.06.21.08.57.30 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Jun 2023 08:57:30 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= In-Reply-To: <6c9a05a6-d1a1-7e12-0834-16bf9f539fb1@cs.ucla.edu> Date: Wed, 21 Jun 2023 17:57:29 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <900EEECA-16C1-40C5-9224-24EDC07E859C@gmail.com> References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> <6AA06366-E276-47EA-96A3-506DA8B17D41@gmail.com> <687a312e-3d1d-edd8-039d-f1cac98caaa6@cs.ucla.edu> <48D53EC3-4335-4E88-98C1-4A74423E6ACB@gmail.com> <9F76C15B-0038-4DFE-B2DE-F35EC1D87C93@gmail.com> <6c9a05a6-d1a1-7e12-0834-16bf9f539fb1@cs.ucla.edu> X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) 21 juni 2023 kl. 08.08 skrev Paul Eggert : >> Sounds fine, with the option to go full error on group B if we agree = that that's even better. >=20 > That would be fine too. I'd even prefer it. In the meantime your patch = looks good. Good, it's now in master. Let's think about whether an error can be = motivated, and how. We usually don't prevent the user to do silly things, except when there = is a strong reason to believe that it might be a serious mistake.