From unknown Sun Jun 22 04:22:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 22 May 2020 12:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 41454 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 41454@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.159015185527755 (code B ref -1); Fri, 22 May 2020 12:51:02 +0000 Received: (at submit) by debbugs.gnu.org; 22 May 2020 12:50:55 +0000 Received: from localhost ([127.0.0.1]:58389 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jc78Z-0007Db-G5 for submit@debbugs.gnu.org; Fri, 22 May 2020 08:50:55 -0400 Received: from lists.gnu.org ([209.51.188.17]:41854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jc78X-0007DT-GD for submit@debbugs.gnu.org; Fri, 22 May 2020 08:50:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45070) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc78W-0001ut-6u for bug-gnu-emacs@gnu.org; Fri, 22 May 2020 08:50:52 -0400 Received: from mail-oo1-xc32.google.com ([2607:f8b0:4864:20::c32]:34887) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jc78V-0007rt-Cn for bug-gnu-emacs@gnu.org; Fri, 22 May 2020 08:50:51 -0400 Received: by mail-oo1-xc32.google.com with SMTP id c187so2140502ooc.2 for ; Fri, 22 May 2020 05:50:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=Ndndbe/BZ6cQh+5yiv/857Ft4jHwjJP+nrTXelXoiRU=; b=hIu0HEp2Bh+uxNy4Z2s+dW8CHU7IXW6G4/rMwflao1tS0pJfaBMtKzj2md7USczOHr EDqfnEcj2lPgyfKtCYRWsAAFs8IZnsm+RmdxQACSK09Vy320VI9F5dWPHyYdROpY18f0 R/gCndpVudry5Z3CbX2NA0lY+iTB1CQiBMqK34PgqRo01LhvKw2QcQ8H1iBaymfMXGMa 57PDRycQ+SYDEVs8N3/9hTyVXZd6sH1aeNWMWWVzzrprLgEpj5BbBox/rQO91Ao29XmS JN/UhbujB7C6r0JqCQYbk5FND5TizP2/RkcoTkg4GiRP/6JXk2oCBTjSMoFjGrYD4tT3 3Dkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Ndndbe/BZ6cQh+5yiv/857Ft4jHwjJP+nrTXelXoiRU=; b=Dya4xma5grbkkoHeNwu363BsFPJF3WTgF2H175DyW+8FalwAzIFoS8sawpecHYzIU+ HDzOZJDKo5dM9uq733cQcQ9vof3Hj3CXIbW9UOapOW2pkHfxVwEmYxBqg4kthPxYvNuW 75ooQvrtVdnL3lK7+vv9LbgKkyt6JY7mCYo8IwFjgnHXwK1lZ/nIwGym5Zpaa+TfrJD2 +9gw8HNDJhP+ZFRrVCiPKUvuZPXoUjO5L7C6hhzUpr2lCDroHUpj+/wAPjcWPVIaaX4v jJNgNmIyjVbWFa6PWl6OHEpDzosLvjXP/F2NMe6w3WiTi+X3iwhOCWwKM11x6NM5Ffxs C+Xg== X-Gm-Message-State: AOAM530VgCg7CIE5KuRKt3bb4CiAtYenfb0ZeuzP/rR8hJWtmXDCK1Tr EHH4tdmuwGIYw1c9JU3rK6kOXGdXsMoXGVd2O7IJIf8dXqE= X-Google-Smtp-Source: ABdhPJyFqxHll1NK4o1TKax6O6BKT+h+dKW7n5RlPBEm1geWNE2cejE0sQaUx+ri8BnuIlElkGWKG6YjEIjCaT7TyGw= X-Received: by 2002:a4a:ad0d:: with SMTP id r13mr2916717oon.22.1590151849393; Fri, 22 May 2020 05:50:49 -0700 (PDT) MIME-Version: 1.0 From: Pip Cet Date: Fri, 22 May 2020 12:50:13 +0000 Message-ID: Content-Type: multipart/mixed; boundary="0000000000001fe47c05a63c14b5" Received-SPF: pass client-ip=2607:f8b0:4864:20::c32; envelope-from=pipcet@gmail.com; helo=mail-oo1-xc32.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-Spam-Score: 0.7 (/) 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 (--) --0000000000001fe47c05a63c14b5 Content-Type: text/plain; charset="UTF-8" ...and other things. It's probably a case of "if it hurts, don't do that". There seems to be a general problem using such regexps in the composition-function-table. If I evaluate this in emacs -Q (by placing point after it and hitting C-x C-e) (custom-set-faces '(default ((t (:family "Libertinus Serif" :height 330))))) (set-char-table-range composition-function-table t '([".+" 0 font-shape-gstring])) the font correctly changes to a very large Libertinus font. I then hit C-b C-d ) and the entire last line is highlighted, not just the opening parenthesis. After the blink delay is over, the opening parenthesis and the "s" following it are unhighlighted, but the rest of the line is not. It stays like that permanently (screenshot attached). --0000000000001fe47c05a63c14b5 Content-Type: image/png; name="paren.png" Content-Disposition: attachment; filename="paren.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kai791kb0 iVBORw0KGgoAAAANSUhEUgAABfAAAABJCAIAAAD9pZA6AAAgAElEQVR42u2dd2BTVRfA78vsSHfT vVva0rL3kiVbQLSCCMgQEVAQWSJbURQBGYKI4EIB4WMvKbL3Hp20pQtK90ybtM183x8vfXlNkzTj JU3p+f3Do7l5effcc88597w7EJ/PLyoqctACopvQ0NDKykocx5cvX46A5o/+DdqETQ9aZ2HWrFmD 4/g777wDogAAAHjy5AmO4w8ePNCzvJ+fn1gsxnH8n3/+AelZhvPnz+M4funSpVemJAAAANBCYBH/ 5ObmavzYHDmdffv2TZo0ycnJKT8/38vLC9qguaN/gzZh04PWWQypVBoQELBnz57U1FQmkwkCAQCg JXPp0qUOHToghEaPHo3juJ7fCg4Ozs7OJpLjIENz899//w0ePJjL5cbFxekWeHMpCQAAALQcGJb/ yYkTJ06ZMkUgEMydOxca4BVA/wZtwqYHrbMYR48eLSgoWLx4MWRzAAAAHj58SFxIpVI9v1JaWpqT k8Nisd59910QoLmprq6eNWsWQmjLli0RERGvQEkAAACgRcFokl/dtWvXqFGjDh8+vHfvXmiDVwD9 G7QJmx60zgKUlJSsWLHC09NzypQpIA0AAACSGzdulJaWNlpMoVDMnTtXLpcvXrw4PDwc5GZuFi5c mJWVtXDhQiJd8gqUBAAAAFoWxB46lVrAzYZYLB45ciSPx4uPj8eB5o/+DdqETQ9aZw6SkpJmz549 a9asqVOn+vn5IYTWr18PYgEAAMBx/OrVq2TE1b1796KiIh2FX7x4MWrUKITQJ598AqKzAH///TdC aPLkyXK5/NUoCQAAALQ0MD6fn5SUZGNjozHdY449dEgkEsnYsWP79u27cOFCyKy9AujfoE3Y9KB1 9FJVVRUWFlZUVEQdsdy4cYPFYoFwAAAAEEIxMTFHjx4lroODg5ctWzZhwgQ7OzuyQFlZ2alTp44d OxYbG+vk5LR9+/axY8eC3CxAZGTkwIEDf/rpJwzDXo2SAAAAQEujKRM6AAA0d+Lj49u3b0/+NzAw 8NKlSyEhISAZAAAAArlcPmPGjD/++IP8i729fXR0tLOzc0FBQX5+fklJCZPJHDp06OTJk0ePHq0t JANop7a2Vk9pN5eSAAAAQEsDEjoAAJjEV199tWfPHoFA8Pbbb3/33Xfu7u4gEwAAADVSUlL+/vvv ixcv5ufnFxYWMplMR0dHHx+fNm3adO3addy4cR4eHiAlAAAAAAAMAhI6AAAAAAAAAAAAAAAAzYym 3OdiwPM4aAAAAAAAAAAAAAAAAAAdXAnq0PCPDJALAAAAAAAAAAAAAABA8wISOgAAAAAAAAAAAAAA AM0MSOgAAAAAAAAAAAAAAAA0MyChAwAAAAAAAAAAAAAA0MyAhA4AAAAAAAAAAAAAAEAzAxI6AAAA AAAAAAAAAAAAzQxI6AAAAAAAAAAAAAAAADQzIKEDAAAAAAAAAAAAAADQzGCZ8mWZTDZr1qyuXbvO nDkTRElFWiEQ5xVUZz6vTs8UpWUIn6ZyXF06HtkDkjEFXCYTFxbX5uRWp2eKnmWKnj4TpqRFrFvF HzHYiLvJRSJRakZlXKLg3qOK2/c7n/7Hxs8HhAwAwKuH4MGT/H+OVNx5ICkqYfLs2a4u7oP7+bz/ ro2vNwgHAL9sfVKVpy3/xqF9tM+Ed9T+XnjiX23fYru6uA3oAzoJthTGRABgPqozsysfJ2j71LFT O7vgQOpfMtdvc+3fy7lb50bvrH/Jhhif0JFIJOPHjz916tSECROgdamI0jLuD4lRd7ROTiAZE0ld 8lXBkVOm3ydp9qLKx/HiwmKE4+QfMSYTJAwAwCuGQiJJW/p1wZFTXG9P5+6dpeWC8uu3peUVLzKy cv862H7fL44d24GUAPDLVtRnpdLkOUtKL171eHN4w+6csnClti/atwqBhA7YUhgTAYBZKYm9mLl+ m7ZPw79doZbQkRQWJUyb2+7Pn5y6dtR9Z/1LNsTIhA6O41OmTDl27Nj69esHDhwIravmUyPWrap9 mZd/4JikpJT4I5NnB5IxEf+PpvCiIgQP44r/PU/+kcmzN/Q+dmHBNdkvJMUluBw35T4AAABWPjJM mDa3/OZdlz7d2/76I8OGixAqPnshafYihJC8uib5k8973IoFQQHgl60FHE9ZsLLk3KXQpfNdenXT XZbt6swfPtixUzu70CCuJ5/t7gYKCbYUxkQAYFYCZn/g9e5bksLimqwXwuTUkvOXRWkZOsqHf7tC mJQaP/WTdnt2OHXpQEvJhhi5h86qVasOHDjQv3//RYsWQdOqg2He498OXjQn8oc1KkHb2IBgTPUK EWF+0ydF79jg3KMLRbBcQ+8TvPCTLmf/1+XMQYzFNOU+AABYAGlZReLMBTfa9nk6b6miVmyFN7Ra sn/4qfzmXYzFjPj+S9LE8YcPcunTnbiuzSuQFJWAar3ymgB+uWnJ2rD9Zsf+D0a8K6sSNlJy046i U7HOPbr4fzRZd0nH9m26Xz0dvna5V8woxw5tud5eDDabWkD0LPPx2Gm3ewwpOnmW+Evx2Qt3eg+/ 1XVQ5ZMEywvB2p4HbCmMiQBwx8apNMfNlRcVwX9jcPDiOV3PHQ6cO0NXqoXLbb1tHS6Rxk/5RJiS RktJDd81oiJnz5795ptvbGxsdu/ejWEYaKE2qPENrOgxm2CNnGVmH9nKqZMq/cmABgIAqyRtxdqS c5dkVcLCE2dzdv9lhTe0TqrTs3J2/YUQcundQ21/h7AVizAWCyHkNvA1joc7qNarrQngl5uW4n/P P//pV2l5hTA5tfzGHR0ly67ceL5tN4PLjVi3GjUWXQfNn8Vy4OkokPTRfMH9x+KCopd//oMQEhcU PZ23rDY3X1JcUnj0tOXlYNbnkZYLsjf//GD4uOtRPe/0GpY447PSyzfAlsKYCAB3bHYwLGjeLLaL sy7X1iok4JPpcpEoec4SeU0tLSXVMDihU11d/cknnyCE5syZExYWBiqoS7hcLoPDAeNFOyxHB1U/ YhifUuR4UOYnM+DENwCwRmqyX5DXwqdpVnhD6+Tl7/twhQIh1HDhhn1kq+5XT0Xv2NBm12ZQrVde E8AvNy1ViSkqKTk5aismr6lNW/kdQsh3ynjbIP9Gb2sf0UpXgqNCUJ31XPmjDg4IIdGzDIVEovyL s6V3MDHr85TfvHu3/6jsrb9ISstc+/dh891Kzl9JmDYnadZCmVAEthTGRAC4Y7OCsZj2rUJ1lwmY PY3r5VGdnpW+Zj1dJev1L0Mfes2aNVlZWQ4ODkuWLLEqaVanZ6Wv2fDk3enW1sZ1Vy2iQ1qmFep5 AhPmiBHvVQAAsGZ8JsTUjRIZ3uPeNN346HnD5o1CUXRKuaGDXbiGOMPG15s/YvAraQNBE8AvW5Xc bHy9VOP/CK3vQZ//+EttTi7T3j5g1jR9bsvUOT2H7ezEtLOl/ih1aglPZzLIHJjveUovXI2f8rFM UMl/Y3CP62eid2zofGJf9M8bMQajOPZi4vRPFVJpi7Wl1jYyamljInAltEd6Vkuj20IxuNzATz9C COX/c7T47AVaSlIxzAAlJiZu2rQJITRjxgx3d2uZW4jLFfGTZ5ffvKvbWTaR9cLq/n3FJ4BYtBXo WugHCwYBwOrxmTSO7epS+SSRP+x1x07tTDc+jd7wFUD4NI3craPlHPwMmgB+2QrlZhcaTFxwPNw5 bq4ay4hS03N2/40Q8nnvbbars15yamz6kl1IUFXiU4QQr3U4Qsg2wB9jsXCZDCFkHxVueama43lq Xrx8umAFLpPbBvm33ryWnADCHz4o4OMPnm//teLuw+dbfwleNKel2VIrHRm1mDERuBLaIz0rR59J Z97jxmRv2SkpKsn45ge31/uS9sqUkiQG9Cgcx2fNmiWVSjEMmzlzphUJkYFV3LlPXDPtrXXj9Fc9 d9A8WgEAgGYIf8Tg0GXztfl4I4yP7hu+AlTGJZHXujfaaOFu6NXWBPDL1iA3u9Ag4oLXOkJbeJ22 /BtcJkMY5j3xHdoSKKrfDUcIYSymbaA/Qohpa2MX6G95qZrjeZ4tXyurrEIIBX02W23M4z9rGrF7 cc7uv2vzClqaLbX2vg/vU8GVvGLuWA+Vxlgs73FjEEK1ufl5+w7RUpLEgITOsWPHbt68iRAaMGBA eHi4VQmRYaOcycngcptvSzfz7t4cWgEAADA+LQBpWbnKzbecI/xAE0Ag1ic3Dt+dSATwoiM1Fig+ d0nw4AlCyKVnV7vgQLoqYRcWghBicDh2YcopQkRKxb51eJNsTkT78wjuPSq7fhshxLS3dx86UO1T Fs/efVB/hJBCLM7e/HOLs6VW3vchoQOupEXi/V4MMbny+bZf5SIRLSWV7aL/Q/z444/ERUxMjLUJ iMFWrh1jWOuOAC3Bdll/KwAAAManJSCrEFCEwwZNgK4BAmlCuRGrrhy0JHRy/9hPXLgPH0RjFZTp kogwcnsXIqWi7THMDe3P8+KXP4kLl97dmLYajsF2G9SPuCj+97zRByE3X1tqzX0f8jngSlomNr7e Du3bIISkZeUFR8/QUlLZLno+QUJCwtWrV4nrYcOGWZ+iMdQvwHpBKwAA0FJiDTA+9ah32mWLip1B E0Ag1ic3Yk6Kxhk6opRnFXcfEteu/XrRWAMiXcJro/pRe+2PYQHofR5ZlbD82m3i2rFjW41leJHK vZblouqSC1dbnC215r4PGR1wJS0V1/69iYuCQ8fpKon03xR5/37lC4SIiIiQkJBGzJ9cvmfPnhMn TiQlJeXm5np7e/v6+vr5+XXs2LF79+7dunWztbXV9t2aFy8LDh4vvXitJuclhmFsvhsvMtx9yACP UcNUu6M3tAwWUS9xQVHB4ZMl5y/XvshViMVcby+uj6dzt87eE2K0bXSn0XgpJJKik7Gll69XPU6Q lJWzXZx5rcO9x7/tPmRAo89QnZGVt++wKOWZKD1TLqqx8fO2DQrwHD2cP2KQbvtYk/2i7OqtotPn WI4ObX9TTraquPfwxbZfK+MS2W4u/jMm+0wwafG2Ea1gdHUaqs3LX/8uv36nNr+AaWtr1yqEP3yQ 9/i3Nb60MQ7jNNPgXzG2mYyTJC5XiFKflV68VnTyrPvQgdSNA0svXis+e0Fw75GkuITJ4/Fah3u8 OdwrZlTjdcDxwpOxRadihQnJ0rIKpgPP1t/Xffggv2nvERM1y67fzvvroOD+Y7a7q++U93zfH9dU AjelR4sLi4tPnys5f6U2J1dSXMpyduR6ezp2aOv59kjH9m10iUcmq0pKKT1/pejUOb9pE3ynvke2 Rcn5ywX/Oy5Ky5CWldsG+vNHDPb7YGK95co4Xnr5Rsn5y4J7jyWFRTiO24UF+3/4vseoYdoesvza rcIT/ypqajse2aO0P1Jp0cnYgkMnRKnpuEJhG+TvMWKI17gxbBe9Do41uuJkNQuOnCw9f0WUliEu KOJ4uHO9PLhenrzoSMeObR3bt2k4p11SXFIVn1xx50HJ+cu+U97zmzbBROOjzw1paGhzdC5rxUyV NaKHgiaAX6bFTdAbVdqFhdj4+dgG+jX8qPDEWWWZkCDbAD8af9Q2OIDBZjt2VG1IYdcqhGlv79Ch jek3r83Nf/rpF1xfn6gfv2uS5ym9cJU8vsqhTZS2PBq573LphSseI4dYxh5aia0w98jICG9uJWMi c4RGlhkj0BVmG9F2BqmTEWOZRt2xNQ9YDMJtwGvEItCq+GRRyjP7yFaml0QIYXw+PykpycZGs391 cHAgLqKjo5OTkxFC06ZN+/3333Xc8fHjx5MmTUpOTmaz2SNGjAgICIiLi7t27RpZ4PDhw8SirQHP 4+qPc+TZm3/O2bVHIZXyoiIcO7WXV1dX3LonLihCCNlHhEX9uE5tb+2n85aSvlAbftMnha1cZKr4 FYoXO/94vm23vKaWFxnu2KWDvKpK8Ci+NicXIcRgswPnzQyc82HD712P7iUXVSOEPN8e2XrTNwih 4tiLGWs3EV9Uw//D90NXLNQR2mas3VR85j+2i7Nzr24cvpu4sKj04jViHqlr317Rv2xqGCeVnL/y 4uffq9OziH3jEEIsJ8c+cdcQQtlbf8neshPhOFm4w8HfnLt3NlQ2xrWCcdUhyP3r4LNVyhii46E/ Kp8kZG/aUe8tCkIIIa63V+QPa1x6ddP65POXFx5TTmPrn/1E+wjcYM00FFOayThJvvx9X+HR09UZ WaTcXHp1a79/F0JIlJqetvJbwb1HDZ/Tc8yI1lu+1VERYVLKs1XfCR7G2QYHuPbpwXJ2qnySILj7 SCGROLSN6nBgd/rXPzi0i7IPC0n4YK5MKEII9Um4obbRoAUEbnSPJjIyObv2ZP+4S1ErtvH35UW2 whUK0dM0cttF19d6Rqz/kuvtqfbFrE07Sv+7Up2ZrZBIiL94jB5ORMPCpJSnny0TPctU+wovKqLD wd8I+VTceZD+9UZhUkrDwCjqx++oOR3B/cfPt+0WPcsQ5xeSZfqm3GFwucKklOR5S6vTs9TuwXF3 i9jwlduAPrpTUcZVnKoeRDUxFsttQB+ur7coOa3i3kOyQPTPG/l1iw4q7j3M2vhTTUa2pLSMLBC2 erHftInGGR99bkhLfc3UufQh/v3ZxKYSOoje+QN/2Os3O/aXV9cw2CyMw8ZYLCRX2AT6dTr6F7Vk 2bVbCR/MZbDZGJvNYLMxFlNeKw769CO/6ZPMXlkDeyhoAvhlWtyE5aLKOu4Pfpuw/F5j34zc8JXu wvLqmutRPYnr15JvkweB6zDaZjpO+/m23Vk//OTQLqrzyf0GjEPpe560Zd/k7T9MXHe/ctI2KEC3 eO3CgrtdOGYOW2pttsIyOmyQN7eSMZHZQiPzh6y0htkGtZ1B6mTEWEYfd2zNAxaSxI/ml/x3GSEU /u2KRqZH4Pj1Nr2JjhA0b2bQ/NmGlrwS1KFhWb0Ma2ZmJpHNQQi1bdtWR8m8vLyRI0fm5eW5u7tf vXo1KkqZNb9169aYMWOKi4sRQo6Ojhq8lKg6afaismu32K7O0T98Q3Yeuag6dclXRafPiVLT4yZ8 1OnEXuqpgbgCd2gXhRASJqfiMjlCiMWztw1RbSmHsVhOXTuamsyRSJ7OW1Z89gKDzY7cuMbrndHk 35M/+bzk/BWFVJq1cTvTztbvg4nak9EYQihr4/bn239FGObco4tTlw4MLrc49iI5Qsv59W+PUcMc 2kdrtFxPxk+vyc7xGvtmxHcrSY8oSk1PmDanNq+g7Nqt1CVfNXxVgmGYvEoor64m/yITVOIyee5f B7I3/8xycpQJKlUp1cznRiR0jGgFo6vTkITpn8oqqzxGDvGMGc1rHY5LpYXHzjzftlshlYrzC+In fxy1bR3fhHXpxmmmwS8DjW0moyWJKxSyKiE12paWVSCEKm7fT5j+qby6hhcV4dq3J8vJsfTCVcFD Ze618Pi/HqOHuw18TWMtKp8kPH5nGi6TufbrHb3zB9KVCu4/TvhwXlVC8r3X33Lt34ewdG6D+xce O2MXHMiqv2G+BQRuSo9WSKVJMxeUXrrO4HBab/rG8603lG+BFIric5fSln4trRCUXb99f9jYjgd/ U8+myxWyqioym4MQkpaXE1JNXbwaYZjnm8N50ZHigqKC/x0nnIcwOTVr4/ZWX33x8re9GWs3YUym 24A+Du3bMHn2lY/ii/89T1j8lAUrXQe8xuLZK3+npqYqMZloUNIrSCsqhUkpSbMWshx4ocsXuPTu Lq0QFBw8RrhqSUlp4oefRv20QS08pafide/EEj6YKy4sZrs6dzj4u30r5UxPwcO4xBmfERtPsngq T4khTFZZRYYFBEwbW6ONjz43pKW+5uhc+tqrmhpCILUv88m9PHnRkRhT+W6NaWtrHxaCEOK/MaT8 +u2a5zmqkbavl/ob9QB/1369Kx/GSSm7SOAKhbkra0QPBU0Av0yLm7BMVEl9q0/m8Xk6374aGVqY bbcLXC5v2ucRPk1Tjbo9PbQV4/DdCQnXZD6X19TqPztMf1tqbbbCAjpsqDe3kjGROUIjy4wRaAyz DW07w3yr4WMZ/SI9Kx2wGD3kswsLropLQgiV376vK6Gjf0k9Z+js27dv0iTlG7lz584NGaJ11uLI kSPPnDmDEPr111+nT59O/Sg2Nnb48OEIoTt37nTv3h1RZ+jgeOJH80vOX8FYzE5H/lLrvbIq4b3+ o4nUHX/Y69E7f2j4u7e6DpIUlyCEXPv1brfnJ3r9FpmeDF+73GfiWOpH1ZnZ9waOId879bwdqyMb zbS1zdt3yGPkkJAl82z8fcnMbvzUj8tv3FUmpGdOCV06v+E7jftDx1ZnZCGEetz4V80oFMdeTJql zGF3OXNA42rk2pzcx+Omi/OVrwg6HPg1/v3Znu+Mili7ouDYmdTFq3GFguPh3jX2MNvV2WhB6dkK pleH+iaQaW8XtfU7cus7gvKbd+OnfEyYHqadbacT+0ibZdibQJM10yAMbSbTJVn5KP7xuA+ICck2 vt7h365I/GiBbXBA+JqlTt06kcWS535RdEqp214xoyJ/+LrhrWRVwgfDx9W+zEMY1v3qKbWp4yXn LiXOXECYp/Z7d7r07i4TikrOXXLt37ve0gmLCNyUHp08Z0nR6XMIodab13q+9Ybap9XpWQ/fnERs R8/15Hc+9Q/Hw12tTOnFawnTPyWuHdu38Z36XsrClS59e0WsW8X1Ukal1RlZD4a/S6R+WDx796ED C46c8hg5NGzVYuoNM77dnLNrj7ZXhcKnaYnTPyVfDIYsmZe9aQcvOrLtn9vZzqopxPkHjqZ+sYa4 ZnC5Xc8d0viq0/SKJ3wwt/TSdYRQxPervd99i/pR2dWb8VM+QQh1Ov63Y4d67wwkRSVxk2eLUp4R /4384WuN02j1dwF63tD0+tLYuYx5fb18LXnUpdY3+QpF6vJv8v85SvzPuXvnDgd/a1hKWlb+aMz7 NS9eEv8N/2aZz6RxZq2sKT0UNAH8Mi1uwqxRJUnh8X+ffraMuG7398+ur/VsJMtg4Awd85G9ZWf2 lp2GztChL5+EX4/uJa+uQQixHB36xF/XVjDpk8XFZ84T151P/+PQprVZbKlV2grz6bBx3txKxkR0 hkaWHSPQEmYb3Xb6q5MRQ0593LHVDVjqY8AMHYRSFq0qOHySSIf1SbihI9GssaTGGTp6rYiLi1Ot jSIn3TREJBKdPaucl9Wzp7pbGjZsWIcOHZCmGTov/9xfcv4KQsh7fEzDXCzLgec1VvmCrvjcJWIO m8XI/99xIrK08fdt2EJ2IUFsF6U6ivMLdDxb0cmzBYdPRm3/Pmr7etJyIYQwFjPi+y/J/xJ5uIYj QMJyaXwr4j6oP8tJKdKCI6c0/rqNvy/VuyTNWmgXHtpqzVLEYHjFjOp4dE/YykVdTh8wJZujP6ZX h0rQ/NlqUSNCyKV394CPp5MBUMaaDcY9qoU109BmMl2Sjp3aufTpoTTBeQWJMxd4jBzS5fQ/VOOI EIpYp3oBUhmXqPFWmd9trn2ZhxBy7Ni24UYAboP62/h4Ef4va/02Ik/hFTNKzThaQOCm9Oji2ItE uMaLimgYriGE7MKCw1YvJl+DZKzb0rCM2+t9yQhDmPosdclX/rOmtftzO5nNQQjZhQZ7jhmhdDxC UcGRU2GrF0dt/14t/qOuMSYDIBJe63BvSgUzv9/q2KVD+32/UEMWhJD3+Ld9p4xXDvDF4rSVGmao ml5xeXVN2ZWbdVrXXu1T1369eVERGt/pcTzcqTEHg8sxsZfpc0NaGprGzmUuGIyAmVNV/9Oytx3b 1cXz7ZG6i9FYWbp8LmgC+GXLR4yGInyaSl6rTfcAdI9siWwO0eI6SjIpr6upswNop+XYCqO9uZWM iWgMjSxsi0wPs2lpO9rHMnq6Y2sbsJiCfXgomZ0UpaXTUtLghI6np9b9EYqLixV1k7Hz8/MbFhg6 dGjDhI5cVP18227iWttuQ/YRrchsaPnNuxYzWwqxOGvj9rq+/ZbGHbbIfD/HzZXj7qb1dYJM3mbX Jo+RQzWovq+3XUiQDn8jLiwmryWUa9L8kc8guP9Ya/DKVymiVFAZuXENef6iY4e2ftMnNXxXYCZo qU5D+avhO2U82aXLrt+uSkg22Gk1hWYa1Ez0KIa7K1kF98EDIn/4uuGkaKa9vWOndnUqWqVJvWVF p/8jrm0pvln1MEyG64DXSAur0bFZQOAm9Wgcz/x+qzJiGNxf2094xYwmo5PCY2cabouDECJvq6gV +0waG/L5XA2PQQkOgubP1ri7B9fbk9wyWVpSqrEAdSTc7s/tTE3zRYPmzyaXa5VfvyNMTq3fujRU XFpWTi7VkRQVN/w6cbwLs+4x6ncKVSvQcmpsIzeks6Fp6FxmhevrrRIFR6tsbajFtOTUaKksjT4X NAH8soUjRiMQJadp1EagkYSOUEQxXLqy/BilX8uqhOZ6oJZkK0zx5lYyJqIlNLKwLaIlzKal7Wgf y+gf6VnPgMXU0IvyBrfhzk3GldQroZObq9ytytbWlq09nvby8sLqwq/Tp083LPD5559fv37dx6fe 7Lj8g8eItXAcvru2XaOou22L66bJWYCCwyclRSWkIdZYJmT5fI+RQ92HDmy3d6eOncztI1u59uvd aListoxQ2cH69iLyze6D+zdMqSKEyAmH1A0R1GXIVcnQfXB/XuvwpvLEtFRHo27U6/ZurtQVKEQS 3SCaRDMNaibaFcP/w/e1qqiPlw7/Wvsyj1RdtpYcNtWDkm9XLCxwU3p0+a17NVkv6nye1r6MMRle 5HQGHC88clKTzFUBqP+M97UYcUrAERyg1WvWSVtjqEqdxunz/jhqW1NhOzvxKXEVMb2T3opz+G7k 4Lz04rWGX/efObXjoT+4nnzdKkrLeZm6b0hrQ9PQucwKg80mlQRjavVfTMo7cG1HXdBSWRp9LmgC +GULR4xG5dGKyGc23343rx5yir/T5tfq+tPViDsAACAASURBVKfmb9FLi7IVpnhzKxkT0RIaWdgW 0RJm09J2tI9l9I/0rGfAYiLMuiOnEEI12S9oKamX/6ioUO4gpXE/Y5UEbWy8vb3z8vIQQlu3bm3f vv3UqVPrdUJX1z591LcKV3l0HE/+dCkul+FSGS6X4zI5LpPhMhkul1dnZKu6hAUn0JbEXiITftQk GRVeZHjU9u8bvZVdUICuBqvLhmo0XrZB/r3uX5CWlms7Pkb19SohLleQe7Zpw6V39yb0xLRXRxtu g/sTM2ARQhV3Hhjc+k2tmY02E+2SpO5zpn4rO+XrC4VEohCL1fxfvU3mtEDtQRqzDxYQuCk9uiT2 oqpMW13r8F0H9Mne+ovyW/9dCfniMx0OjOvt1WgcoJDKtAaIdRl2OeWNJeVjTKN/aoj7oH75B5R7 qVTcfUh7xRlcLtfDnXix9vKP/byoCHKnWzJyonGrUdPMPv0NbUrnMn9Sh9FQWxqMQ5galYr2ytLo c0ETwC9bOGI0AtVZMKatcWhpUM8WwLg6p20qcM12DGyFCWN10715E4+JaAmNLGuLaAmzmyQSM9OQ s2kHLCbCosyBkpaW01OSxoQOQujDDz9cs2YNQgjH8WnTph04cGD16tUN99MhkdfUkjPiZFXC8mu3 cIUC4TiuwBFed6FQ4DiOMRm4AkemzUpNWbhS9/LvgFlTSfOqEIsr6g5C0xZZGhM0awyX697MKCRS zd/mcDQaHVwmq3ySKCCtDI7Lq6t1ryhGCNmFBdMoKGOEQWt1tGYYKTulqQ4p1A/TNdN0GTbaTLRL Uke4g7FZlFhKqmYfWS6qtceaMwv1b85xdbG8KTCxR5M75zPt7XQv/CEOwsDlCoRQddZzmVDE0jJ/ 1cT5BfVaHFcY3bgIIVvKJCBRShrCcTLioavi3uPfVgayOJ6yaFXRydigz2aRM2OtB3M0tCmdy9zW 2BwYV1mafS5oAvhlq1/HRI5XmQ721vmEtTm5GlcG1WQ9J56f2GC1Ic7dOzHtzVUpcpMUhBCGdKWY qXussBwdWoitMN/IiDZvbjVjIuNCI8uPEUwPs5sqEtNnLGOxMINGSZoC1eDrThjpX1KvhI5UKtXz ERcsWPDXX39lZytTkufOnTt37lyXLl1Wrlw5erSG6dPi/AJiw2qEkOebwyPWf2lGxymoLDx+phEL Q9nusTY3XyEWW09wWV9uhcVnL5TfuFNx9yGxY7xhcZtO02+ooJq8OloDR8q+D7LyCgMfySTNpEWG RnhoM0mycVH7eDFsuIpaMUKoNi9fsxmpO/gTYZhtaJDlTYGJPVqUlkFcsJ0ayWsz2GwbXx/lqUA4 Xvs8R+OhMFYFdaIQLldIBZXkBoF0Vdzvw/cLjpwiNqJDCJVdu1V27ZZDu6jAuR/p2HTA8lhVQ1ve Gjfl0NHKfG4L14RXzy9bIbj22ZfWgEIsfjhqgrRCoK1ATXZOwgdzNX4Utmqx3wcTzfRg5M7oCCGF zhEKNSPAdOS1BFthAcNibd7cfKGvttDI8mME08Pspmo7S086Nv+AhQaZsChpX52znvUvqVdCx87O TiKRIISqqhrZfMvJyenWrVtvvPHG48eqnagePHjw5ptvduzYcd++fa1b15uLKKFs5CmuWzlvJhi2 Nm4D++rwTGxnJ9/J41XNWVKmcgN21hExKxRFZ/4rOHSy/MYdXKFgOfBc+/V27d+78sGT/P8dbypB WW11OHzVnltMA18nmqiZlpOhBRVDt712H6ScSF/5ME4hlTZ8SVWV+FRpJbp2bLhXvAVMgSk9WiYU kc4b0+OgJa6XJ3nMs9TiS9yNgGlny3ZxltaNr8jK0lhxlgOv09G/4qfNESalqLQiPjlxxme86Mio rd+Z6TVOs25oS1uSJsWqfG7L1YRX1y9bIQxbGyIfIRdWW+HjiQuLqYubDBoG898YYr4HY/HsyXku 8poaXepM+dRMM3SadXhgnGGxFm9u/tBXW2hk+TGC6WF2M4rErHzAQoPREIn0tEv6l9QrocPn84lV V5WVjZseb2/vO3fu7Ny5c+3atUVFqhWDjx8/7tmz56FDhwYPHkz+kerDiPPtzdiEHE6b3VsMstHk da0V7KtX8zwnZfFqwb1HCCGXXt38pk9y7debWLJBbsbWJIKy2urIBCpbaWiHNFEzLSNDCyuGbkKW fFp25YZMKJLX1JbEXvQYNayePEWi0vNXEEIMG27418toF7i5ezR1WiZ12Kk1CLBvfpMmWE4OyqgF w9jOzuaoOMfDvdPxv/P2Hnqx/VdJqepuwqSUR2+9H71jo8trPZpWCNbW0Ja0JE2OVfnclqkJr7Zf tkLYbi7Eqiu5UGiFj2cb4Pda8m2NH2Vv2Zm9ZadDu6jOJ/c3wZNhmI2/b012DmpsV2ByvgbGZNgF BbYEW2EZw9Lk3txioa+W0KgJxggmhtnNKBKz8gELDUajSt80jf4l9drWLjBQaQSrq6vllPWoWnWF w/n0008zMzM3btzo5aWariYQCMaPH19SolJ9Jk91UJzEyt63UNe1kpPTmorSS9cfDB8nuPcIY7Gi f97Yfv8ut9f70rgBxytZHerRhlwfL4O+a82aaZ2KYePvG/7tCuI69YuvyRnICCF5TW3K4i+J0VrY qsUajwOwgMBN6dHUNdiyKqG8uqYRb02ZK2uO9bfmgNxuje3kSKoQ7RVnsNl+0yZ0v34mdPkC6rt6 WZUwee4SfTarM6/ZbwENbbVYlc9tgZoAfrkJ/GbdAjR5TS0x3wTQE6fOHZSeq6xCpmUjDESZSWHf Kkzb4WtgK4xMBjWdN7dk6KsxNGoSW2RimN2MIrFmJEnjkFEWPHHcXGgpqVdCJyoqirwuLi7W83Ht 7e0XLlyYkZGxaNEi8jjzsrKyVatWkWXYLqqHkxSXEOl2K4FNsbMyQaUOh2FuarJzns5bSjiJiO9X 84cPatYdyWLVoW4pb+gu69asmVarGA4d2jI4HISQXCR69ObElMWrX+z8M3PdlgfDxhb/e57ryW+9 ea3PhHeaSuCm9GimvR01aGt0tKkK6TBM9xkKVoJCLCa3W+NFRZi74kw7W/8Zk7tfO+3/0RRyVbC0 QpC1aUfTyuGVb2hrxnp8bgvUBPDLTYJ9q1DVuLGsDIyA/jh2Vp1XXUM5S0ibvjm0iwJbYZbqW9yb WzL01RYaNZUtMiXMbkaRWLOTpMEJnQrVvEL7iFa0lNQrodOunWr76+TkZG3FFixYcPy4+qpFOzu7 DRs27Nu3j/zLpUuXVJ8GB1J3Syo88a/1NLZtUADT1ob8r7BuQZ3leTpvKWFQbAP9vd56o7n3IotV pyb7OXnt2q+XQd+1Zs20TsXA5YqU+csVUmm7v3YEL5pjHx5Wfv129qYdJecu20eEhSyZ1+3ySU/t D2kBgZvYox07qcJHbed6UEywoM7+hrEa2yXRKoZzL3JVo6z6s21pqXj61xtL/rusHkzY2oQumx+1 9VvyLxW37jX9OOGVbmidfRgHn9tiNQH8ctMkdCJVAbrGw6QAbTh360xeV2dqTuhISsvIc8Rc+vYC W0ELTe7NLRn6aguNmsQWmRhmN69IzMolaSLVGVkqL9C6FS0l9UroDBgwgLxOSkrSViwpKWnlypUa P3rvvfdGjBih1Kf09NraWuIaYzEd2qg2eC86cdbkRqLtyACMxXRoF21id1WdmKjQNZkWV2gtJnqW WRmXqLQmvbvpPupPR1BebzavQmHmrqK1Feiqjj4UHv+37oe62wYFNCKT+j9Eu2bqb2X0bCbaFEMh p/7H6AcrOHRc8DDOqUsH1769Aud82OnE3p53/uubdq/b5RNtdm0OmD1N9y6nFhC4iT3abUAf8rr4 7HldRRWK6nRlaO7ap4cmmSsabWJcoZcmUEyHSaPxktiLdWLC3Ab1p73i1WkZWT/8pPFLHqOHkz9R 8/wFec6RBiuqh+3SxwXoviGtDU1P5zLGktT7aV26Qc6fVdT5ZY011fy0tFaWFp8LmgB+2WJyoyEr 0bMr1UhCmkZ/7MKCHTu01Z0LI5PCLCdH9yH9zWdLrdxW0KvD9Hjzph4TmRgaNYktMjHMNrHtDPSt BvsyfSI9KxmwmI4oNZ244Hp76d5LTv+SeiV0QkJCyG10dCR0XFxcEhMTCwo072XYq1evus6FMyg9 kD9yqErVMrNJZ29cz1SIJTRKnJqfKzx6pjY3X4eNLjh0ApfJ1f6I152YqPukAPKxFTKZWrhMTc5x PPiNdgNt0TY1WJdr76i0oKMV6KqOPr2lKk6pq0HzZmp5TpUcGjYQvZqpr+j0bibaFIPSWAqxVHub inW3b3HsJYSQXUiQ0XW3gMBN6dGeMaNIE18Vl6RjWnVVciqxWgRjMnwmv6ujlRUSidZEG7VdtFsP Ra1EHwvTqE8tOqkMR/jDXrdvFVJPaHRUnOXkKEpN17Z3oGPdbggIRw3jM+J0ST2rqY8L0H1DOhua ps5ljCWpUVkS8mAOjZDWg7oWRg3qFsXyKqH5LImpPhc0Afwy3X6Z9oagYhvgR26jI4KEjoH41vW1 sqs3NRYov3GXNCzE8goz2VIrtxX06rDx3tyaxkSmh0aWt0Wmh9mmRGIG+laDh5z6RHrWM2AxNaHz TGnt3Qa+RldJhp6/PWrUKOLi9u3bOhI6CKFDhw5p/LSm7uzAkJAQDsWweo55g7r69NnqddqOt1DU iuMmznz+4y4N1WArj+uid28qjzdHkPkwhVic9sUabaYhfe2mZ6vXUc+xQwjVvHhJvmbXfWZHbd0R hgjHa17UW4rJYKlOItMY3SokkvIbd1Q9R6R53wHqCk8d641NQZ9WoKc6eljG3L//R1x4jxvj1K2T ZrHn5FIaK1fdQ9OhmYaifzPRpRgq3UOoNldrFFJPVtkvtBUw5eQRCwjclB7NcuAFzJpG/lfHGuP8 f44qf270cNsAPx2tjMsV4oJCzQLPL6S0i1Y5SOtOKBDnF+oOXHTsSFJx7yHxhpPBZgd9Nks9AqCj 4sTE8uIz53X7fpsA34bnR1JVtOb5S6ONj543pLGh6epcJloScX6hjpJcXy9ysC3O16Bp1ZnZL7b/ qhojaZmMTUtlTfS5oAngl+nyy2aKKhviNqgfcVH5KL5JhhblN+8+HvfBo7cmF5+90LwSOvyRQzge 7gghYVIKdZyvVACptOhULOF9gj79yKy21DpthZl02GhvblVjItNDI8uPEUwPs02JxAxSJyOGnPpE etYzYDEFSVEJ+f7MfXA/WkoakNCZOnUqcREfH5+Xp1mIdnZ2CKEtW7aQuRtKAlQRGxtLXE+bNo36 EdvFKXjhJ6quJah88s7U6nR101z7Mi9u0syqhGT+iMEaQtK6fcVqc3LJkFRSWpa24tusjduNFjrT 1qbV2uXkf8uu305ZuIKaRCSMxdN5S1/+tjfki8+4Xh7U4OblH6rTHEUpz4TJqRp/RfAwjvpmJvfP f6iBkV1YsCqn+O8FaVm5mlI+HjuNemeNa4nFhcVFp8+pfmLv/8yxh7k+rUBLdairUTQmxUsvXsvb dwghxIuObLVmqcanrYxLpP5Q/v7DagVo0UyDMKiZaJFkVeJTwcM48r8Fh05o/K3qjCzBg8fUoLzh i3EO3w0hVH7zXlV8snHVt4DATerRCAV8/AG5sWLh0dOFmibZVsUl5R88ihCy8fNp9dUXGpTzwlXq 67u8uvBOLRItPqXShJL/LpFnr1IpPH6GfI8hqxLqDseLTpzVOOKSlJalLFRuVB/21RKNW/qbXnFi b5SXv+9TkzbhHsqu3iIuvca+qfahtEJQcPSUqspHTsk0zRDR3wXoc0NaGprGzmUolY/jK58kqHRs /2Edg2331/uRdvXZqnXqOnbi7KPRE6knmxaf+e/Z6nVVcUlyyotruiprYg8FTQC/TJdfNlNU2RCv d0YTF8KUNOoRYJahNq8gYfqngnuPKh/HJ8/5XPg0Td9vYhgy/OB5emFwOJHrvySuM9dvU/s0Z+ef xFgodOlnbGMPk9LfllqhrTDfyMgYb25NYyJaQiPLjxFMD7ONjsQMUicjhpz6uGOrGrCYAjmjkOXk 6NyrGy0lEUIYn89PSkqysbHR+LGDg+rM83bt2iUkJCCEfvvttw8++KBh4WXLln333XcIobfeeuuP P/5wcnJSpsdqaj777LNdu3YhhDp37nzjxg3i5wY8jyP7eerSr/MPHKUkAtme74xy7dOTYWcrKS6p uHWv5NwljMVqs2szdckxSerSNWTa2z4izLln15qMbMGjOFwuj96xsdF5SrrJ3rIze8tO8r82vt7e E2J4rSPk1dVVTxLzD52QCSp9Jo4NrwtDqzOzszf9LExOVbMjDC7XpVdX7wnvuA/uTwY9BYdPVNx5 oKZtdiFBvOjI8LXLiTPn4ybOLL+pnDjKax0euekbXmQrhViSf+hE1vofGVyuc48uZOdx6tw+YM6M 0ovXGFxO2MpFmeu3iVKfVdy6Rw2+iV7t1LWTjZ936MrF1H0oTUHPVjClOko//cuejO82k78bvGhO 4JwPydx83r5DGWs34zKZU7dObXdvUdtzDpfJn335vTg3r+z6bTWx86IieK3DfSa/69i+DV2aqSfG NZNJivH91qr45Iq76rrHi4507t45bNViZQh+6XrungMVdx+oWX8bf1+HdlGhyxfa1J07W3QqNnnu F0SMxR8xyC4kSF5TIykulRSVyIRCpMAZHA6b72ob4OfcvbNzz67U/eSoLt8CAje0R9fzOuWCuPdm CFPSEEIYixm8cI7f9InkXO6yqzefzlsmrRBw3N3a7fmJFx1Zr5W//7EqLrH89n216MGhfbRLr+4h Sz4l8vHpazZUxiVS3zAQrtSpc/uwr74gAugXP/9RdvlGxb2HahG2c7dOzj27kq+Sis9eSJq9iPzc e/zbwYvnUEPw8lv3Uj//kkgwBcyeFrJknlZ3a0LFCQ1/seM3hJD70IGRG9eQ77UUteL0Nevz9h9B CDm0jep4+A9SMfL2HSq7crPi7kNyV0tlFOXs5NS9s2u/XtQDCPQxPgbd0LSGprlz6U/Wph3CxKdl 126p+5TgQMdO7Th8t5Al88jDLMgmuN1rGBkWu7zWw3/6JLa7m+hpWt7+I5WP41379Q6cO+PxO1PV w4O2UZ1P7TdHZU3poaAJ4JdpcRNmjSrVuD9srCjlGUIoYv2X3uPG6Cgpr665HtWTuH4t+bbpGz0U nT6XPGcJ+d+w1Z/7TZugVyYoJ7fs+m2PN4Y0+ba+z778PvfPfxBCQfNmBs2frUwF/nM0ddnXCMf9 P5oSumy+Ebc1wpZam60wkw4b6s2takxEc2hkqTECXWG2EZGYQepkxFhGH3dspQOW+iR+NJ/YcDr8 2xW6j8dK+mQxMUnKf+aU0KXzjSh5JaiDSQmdXbt2zZw5EyE0cuTIU6dONSy8du3azZs3l5aWIoTc 3d2HDh3q4+NTWFgYGxtbVFSEYVhMTMzu3budnZ2J8qqEDkIIx1/s/OP5j7vUlIDEsUPbqG3rbPx9 NSfk0rPuD4nB66+EtA8PjVj/JblrmikUHDqR8e1mabmGFCPGZIQsne//4fuq11AXriZ+NB9jsTA2 C2OxMCaTyH3iMplCLPGZ/C5pU1I//7Lw+L8MDhtjsRCDgWEYrlDgcjkulSokkm4XjxNbBkpKyx6O fI861ZPFs5fX1uIyuetrPSPWfymvrr4/JIY6NR1jMPxmvB+6dP7NDv1kQhGDzcKYTIzNxhgMHFfg cgWSyxVSGS6Vdr9+hlzCbSJ6toIp1SH+m/HNDzm//s12dbFvFVJx9yER8zm0j5aWVQjuP5aWlTO4 XP+ZUwLnfNhw1bS0QnCr0wCMycSUMmFhGEMpdplMIZGGrVjoO/U9ujRTT4xrJpMUo2N/eXUNg8PG mEyq7ikkEozJei3hOrGANmvD9pxdezAOB2MxMSZTpaIymUIi6bB/N3XafMHhk6lfrNG9YQeZnghZ Ms9zzAiNDtICAjeoR6uH1CJR5vc/5u09RKg629XFoU1rpr2dMCml5sVLhJBr/z7h365oOAbTIXOW vX2vh5eIF9SPY6YwuFyMxcKYDIzBxBVyXE5YD3Hnk/uJgzMfjXlf+DSt3q3kclwuV0iktoF+Xf87 ojFqUbrVbp1tfL2kgkpRSjoxTZ3ryQ9duciDsiCc3oojhJ5v//Xlb3sJgbNdnV379uJ48qUlZWVX bkpKyxCG8YcPili3igjXCJ68N6PyYRzGZmMsZn1RyHGp1LFz+w7/7DbI+Bh0QzM1tNGdyyBLgrGY GJOFsZgYg4HL5UihwBUKXCrDcbxP/PWGg8DKJwlJsxc1XE3AdnYKnDfTb+p7CMNudupPvGTjuLm6 vNbDoW2UY6d2jh3bmamyRvdQ0ATwy7S4CXNHlfWGNPuPpC37GiHk9nrftr/9aMmETnVGFrVZOx76 w6lrR9SswGWy7M07X+z8HZcrbPx9HdtHi55lilLTGWx20PxZAR9PNyUqM9SWWpWtMJMOG+rNrWpM RH9oZJGQla4w24hIzCB1MmIso487tt4Bi+EJHYVYfKvL67IqIcZgdL922sbPx4iSpiZ0ZDJZ69at 09PTmUxmdna2n5+GxZ9SqXTr1q23b9+Oj48vKyurrKx0cXEJDAwcOHDgjBkzwsLqzVirl9BBCCEk LigqOnm29OK12pxcSWk509aG6+PFax3u9e4Y6gmFGim/eTdz3dbq9EymA4/XOsJj9DDPN4djlMWW JiITVBaeOFty/nJNRrakpIxha8P15LsO6OM9boxdaLC5PZZcVJ1/4GjRydja/AKZoMo2wNcuPNQr ZjSZYi86eTb7x121OXksJwfnbp38Z0xxaB9tec+qZyuYWJ2CQyeyt+zscOBXG39fwYMnOb/8KUrL EBcWMe1sbf393Ab394oZyfX2orFepmhmy1GM4jPnn362DGFY4xv0IoQQitzwlcaJnZYRuIk9uib7 ReHxf8uu3hLnF0hLy5kOPK6Xh0uvbvw3Bjt2bGclkS41agle8DHLybH08o3qjCxpSaky1mwX7Tqg j+ebw/V5/2BixXGZ7OXv+yofxQtT0mQVlTKhkOXoaOPn7dKrm/f4GNsgf8sYH0NpFg1tOpLSsudb fym7fltSUISxWHatQvjDB3m/+xYZ2MVNmikpKglePNf99b6NHyzSpD0UNAH8Mi1uwtxRJcU2yu8N GlOTnYMxGT1unCWXNlggoYMQKjhyKmvjdlwq8581VcebDCun8klC3t5DwqSU6qznHL67W//evlPe oy7PsSTWYyvMpMPm9ubmDn1pD40sNkYwPcw2pe0sZhItER7TN2AxKKFTePT00wUrEELe774V8f1q HTfUUdLUhA5C6ODBg+PHj0cIrV69+ssvvzRRmg0TOgCgfwCEsZggB+uh8OjplEWrPEYPa715raS0 TCGWMG1tGLa2DA5HIRYrasXS8vKKu4/Kb9wp+e8SMW0SYzE7HfvboW0USM8CCZ02u7eQE5sBAADA L1sP5NKnoM9mNdx+1awJHQCA0AjCbBiwmChJPRM6j9+ZKnjwhO3q3O3SCbazk46H1FFSY0LHsPds 48aN69GjB0Jox44dQqEQdAJoKiBqtCqq4pJSv1iDMZmhKxYiDOO4u9n4erNdXZi2NhiTwbSzZbs6 24UG+0yIid6xocuZg8R7M1wm17arGQAAAAB+uYXg8cYQYu5G7l8HNW6BrwE6DkIGAADCbJAkDZLU wyBXxiUKHjxBCIUuX6g7m6N/SRLDEjoYhu3du9fBwaG4uHjr1q2gFgAAIIRSv/hKIZHYR7biuLs1 Wtg+Iqz93zuJMxGl5QKQHgAAANCiwbDWW9Yy7e2lZeXUw4B0DR/02P0BAAAIs0F6FpCkQtq4Qc7a sA0h5Nyzq1fMKLpKkhi8Ej40NPTnn39GCG3YsKGgoAA0AwBaOOW37hFnnTY8QlgbXG9PjicfIWTf KgQECAAAALRwbAP9iYPbcn75U1Jc0mh5SWkZCA0AIMyGMNsaJElswKSDsuu3y2/cZXA4Gg/oNK4k FWO2Npw4ceKUKVMEAsHcuXNBOQCghSNMeEpc6JOfVhq+coE4vwBjMfmjhoIAzYiCMgUU5ucDAABY MZ5jRnjFjJJVCZ+t/r7RwmVXb4HEAKAlhEYQZlu5JIVP04TJqTpuIq+pTVv2DUIobPViu5AgWkqq YeRZFbt27Ro1atThw4f37t0L+gEAAEJIcP+xXnM7FYpnq9fhcoX/R1PtggNBbmYMWqRS1bVECgIB AACwZsLXrXIb1K/43/OFx87oLpm1cXvBkVNUIw8AwKsdGkGYbYWSFKWmp37+pdqB7mpkfPNDbU6u /4zJPhPH6v5B/UuqYeRhYxwO5/DhwzExMbNnz27fvn3btm1BOQCgZeLQsQ1xIReJEqbNafv7j2xX F22FxfkFaSu/K71w1XfyuyGfwxQ/8yIpKlZJvqAQBAIAAGDNMNjs6J83Js1amLZiLa91uH1kK20l 5aLqlIUrn636zqFNa7vQYK63p31EmPuQASBDAHjFQiMIs61KktXpWaWXr0uKS2tfvBQ+Tat5nqP7 RwuPncnbd8grZlTo0s/oKtkQw44tV+8SEsnYsWP79u27cOFCI8QKx5YDwKtB0qyFxbEXiWsbf9/A T6Z7vDmCaauyKtIKQenFayWxF8uu3mI58FqtWcp/YzDIzazgcsWjMZOqEpKJ/9pHtup8ch+DwwHJ AAAAWDMKqTT548VO3Tr5z5hM/Tv12PKG2LcK6Xr+KEgPAF690AjCbOuR5Isdv2Wu36bt/g2PLb83 cIxzr27hXy9FGKb72fQsqfHYcpMSOiYCCR0AeGUcZOoXX1GP9GPa2dq3CmU5OkiKS8VFxdLyCozJ cO3by/PtUe6D+zG4XBCa+Sg6eVbwMK782u3qrOfUv3P47m4D+nA83P1nTGY5OYKgAAAAAACA0MjK QyMIs5uvJBVisZ430bMkJHQAADAj4BsSVwAAASJJREFU1RlZhUfPlN+8KykqlpSUYUwGk8fjevLt I8Ic2kXzRw7huLmClCzA47HTKh/HY0wWxmJiDAbGZOI4jhQKXKHApTJcJut0Yq9D2ygQFAAAAAAA EBo1i9AIwmyQJIKEDgAAAAAAAAAAAAAAQLNDY0KH1YQPdDmwPbQKAAAAAAAAAAAAAACALnC84d8Y IBYAAAAAAAAAAAAAAIDmBSR0AAAAAAAAAAAAAAAAmhmQ0AEAAAAAAAAAAAAAAGhmQEIHAAAAAAAA AAAAAACgmQEJHQAAAAAAAAAAAAAAgGYGJHQAAAAAAAAAAAAAAACaGZDQAQAAAAAAAAAAAAAAaGZA QgcAAAAAAAAAAAAAAKCZAQkdAAAAAAAAAAAAAACAZsb/AYh3XC1MSounAAAAAElFTkSuQmCC --0000000000001fe47c05a63c14b5-- From unknown Sun Jun 22 04:22:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 22 May 2020 13:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41454 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Pip Cet Cc: 41454@debbugs.gnu.org Received: via spool by 41454-submit@debbugs.gnu.org id=B41454.159015251328847 (code B ref 41454); Fri, 22 May 2020 13:02:02 +0000 Received: (at 41454) by debbugs.gnu.org; 22 May 2020 13:01:53 +0000 Received: from localhost ([127.0.0.1]:58413 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jc7J9-0007VC-Mt for submit@debbugs.gnu.org; Fri, 22 May 2020 09:01:53 -0400 Received: from eggs.gnu.org ([209.51.188.92]:38870) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jc7It-0007Um-KR for 41454@debbugs.gnu.org; Fri, 22 May 2020 09:01:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47805) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc7Io-0001iR-2r; Fri, 22 May 2020 09:01:30 -0400 Received: from [176.228.60.248] (port=3889 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jc7Ie-0007vB-TA; Fri, 22 May 2020 09:01:21 -0400 Date: Fri, 22 May 2020 16:01:24 +0300 Message-Id: <83h7w82kez.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Pip Cet on Fri, 22 May 2020 12:50:13 +0000) References: 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: -3.3 (---) > From: Pip Cet > Date: Fri, 22 May 2020 12:50:13 +0000 > > There seems to be a general problem using such regexps in the > composition-function-table. Could be, because it's a very unusual thing to do. > If I evaluate this in emacs -Q (by placing point after it and hitting C-x C-e) > > (custom-set-faces > '(default ((t (:family "Libertinus Serif" :height 330))))) > (set-char-table-range composition-function-table t '([".+" 0 > font-shape-gstring])) > > the font correctly changes to a very large Libertinus font. I then hit > C-b C-d ) and the entire last line is highlighted, not just the > opening parenthesis. After the blink delay is over, the opening > parenthesis and the "s" following it are unhighlighted, but the rest > of the line is not. It stays like that permanently (screenshot > attached). I think this is expected, since you told Emacs all those characters are a single grapheme cluster. The regexps in composition-function-table should match only characters that are supposed to be composed. From unknown Sun Jun 22 04:22:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 22 May 2020 13:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41454 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 41454@debbugs.gnu.org Received: via spool by 41454-submit@debbugs.gnu.org id=B41454.159015353630476 (code B ref 41454); Fri, 22 May 2020 13:19:02 +0000 Received: (at 41454) by debbugs.gnu.org; 22 May 2020 13:18:56 +0000 Received: from localhost ([127.0.0.1]:58438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jc7Zg-0007vU-1O for submit@debbugs.gnu.org; Fri, 22 May 2020 09:18:56 -0400 Received: from mail-oi1-f171.google.com ([209.85.167.171]:43159) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jc7Zb-0007vD-PJ for 41454@debbugs.gnu.org; Fri, 22 May 2020 09:18:54 -0400 Received: by mail-oi1-f171.google.com with SMTP id i22so9236169oik.10 for <41454@debbugs.gnu.org>; Fri, 22 May 2020 06:18:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=t5OZONcROnaH9p2VCBLlu7ZDruPnj58Zu8eMSTtqd+k=; b=Rc0Iqe9ee2JKHZoXffzZYuJ8fAY7hbBNtpnzQFC5+dy3hRQUlnuYxMUwGnOv4YJY3r /RFAC9LzParWzQ6pXOy9DA0ssVvN5aKH43I1qdgxZOIKrUlB3rPwlBN4Tja16xaZhQsK 1++Ll9N3xHj16/vC04GIgL9rM5/8wstEcU/1ktpiR+IM2A5nl56R5Zz7ZNfhRuMTJTu1 eRtshFt/08flOh0eTEibeZeiEouE4rdldjlnPoiuQXkNPJ7ntOTPQQHbpedm/BwPRk5F nWdkMe3sut8Y8zuNz/ld2DyfQppAckA04PMoqCTh0ADuHddqgiPPatVpfsFKFHauZu/Q 0K5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=t5OZONcROnaH9p2VCBLlu7ZDruPnj58Zu8eMSTtqd+k=; b=jUVO0EKQrMxvXZRFjexF/VHUAVK5BMTw1BAP1tuxlF3txXsIr0WqCdUjk3CIYRgZwQ TCSaLT2Bvj63qVUFhFIrbDSWiAkKGpHe0xGSIWyAGD3I3u/Rd7WScZCP0JatJ6IzOIj/ qS7AceVEZYSo8Raqj1dJ/kp70hO1T5SRkeoJzL1ZhvJxnVovN1WmiwZmZOuMTAol03un Apn2rPWHO4YC5+3eq0wAYATC1YzIO2Nc22849oV7fCuTrjCVaA2MKVzMve3CjGUWtn7b fB0Nd1lgXsvVwwRSP30ILpnUNSG8DZSXbZxT9eOgic5k+M3BzXJZX6F0Sz+8neKSCCcR i2Jw== X-Gm-Message-State: AOAM530eH+6Jc/+qb3odDqbzWnHRwCMMf6PGAk3yq050jO56WxyIldSL kIwsHkvGnrUqdEh8zrjNJVLS9wD6urEJjQb9I8A= X-Google-Smtp-Source: ABdhPJzLHHovAQKNCN7sdpssady0JKXRuf4i0UkVCl12sEB5leQeozYtQuIA7vTOx0SjaVVQPniLco6pSTVze3Ch3i8= X-Received: by 2002:aca:b708:: with SMTP id h8mr1173460oif.122.1590153526204; Fri, 22 May 2020 06:18:46 -0700 (PDT) MIME-Version: 1.0 References: <83h7w82kez.fsf@gnu.org> In-Reply-To: <83h7w82kez.fsf@gnu.org> From: Pip Cet Date: Fri, 22 May 2020 13:18:09 +0000 Message-ID: Content-Type: text/plain; charset="UTF-8" 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 (-) On Fri, May 22, 2020 at 1:01 PM Eli Zaretskii wrote: > > From: Pip Cet > > Date: Fri, 22 May 2020 12:50:13 +0000 > > > > There seems to be a general problem using such regexps in the > > composition-function-table. > > Could be, because it's a very unusual thing to do. I also see the problem when I change the pattern to "(a)" and enter "(a)", so it's not a problem with variable-length regexps. > I think this is expected, since you told Emacs all those characters > are a single grapheme cluster. I don't think it's expected for characters to stay highlighted after the blink delay is over. > The regexps in composition-function-table should match only characters > that are supposed to be composed. So it's invalid to have a regexp for a composition not supported by the current font? From unknown Sun Jun 22 04:22:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 22 May 2020 13:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41454 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Pip Cet Cc: 41454@debbugs.gnu.org Received: via spool by 41454-submit@debbugs.gnu.org id=B41454.159015379130924 (code B ref 41454); Fri, 22 May 2020 13:24:01 +0000 Received: (at 41454) by debbugs.gnu.org; 22 May 2020 13:23:11 +0000 Received: from localhost ([127.0.0.1]:58448 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jc7dm-00082g-R6 for submit@debbugs.gnu.org; Fri, 22 May 2020 09:23:11 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41086) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jc7dl-00082U-Pj for 41454@debbugs.gnu.org; Fri, 22 May 2020 09:23:10 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:48228) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc7dg-0005S8-FM; Fri, 22 May 2020 09:23:04 -0400 Received: from [176.228.60.248] (port=1264 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jc7df-00074k-S8; Fri, 22 May 2020 09:23:04 -0400 Date: Fri, 22 May 2020 16:23:09 +0300 Message-Id: <83d06w2jeq.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Pip Cet on Fri, 22 May 2020 13:18:09 +0000) References: <83h7w82kez.fsf@gnu.org> 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 (---) > From: Pip Cet > Date: Fri, 22 May 2020 13:18:09 +0000 > Cc: 41454@debbugs.gnu.org > > On Fri, May 22, 2020 at 1:01 PM Eli Zaretskii wrote: > > > From: Pip Cet > > > Date: Fri, 22 May 2020 12:50:13 +0000 > > > > > > There seems to be a general problem using such regexps in the > > > composition-function-table. > > > > Could be, because it's a very unusual thing to do. > > I also see the problem when I change the pattern to "(a)" and enter > "(a)", so it's not a problem with variable-length regexps. I think I know why, but I will look into this as soon as I have time. > > The regexps in composition-function-table should match only characters > > that are supposed to be composed. > > So it's invalid to have a regexp for a composition not supported by > the current font? No, it's not invalid. Whether the font supports a ligature is not the issue here (if the font doesn't support it, the characters will be displayed as usual). What is the issue is whether we at all want the sequence to be displayed as a ligature and behave as one, whether the font does or doesn't support it. From unknown Sun Jun 22 04:22:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 17:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41454 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Pip Cet Cc: 41454@debbugs.gnu.org Received: via spool by 41454-submit@debbugs.gnu.org id=B41454.159094741612630 (code B ref 41454); Sun, 31 May 2020 17:51:01 +0000 Received: (at 41454) by debbugs.gnu.org; 31 May 2020 17:50:16 +0000 Received: from localhost ([127.0.0.1]:33795 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfS6C-0003Hd-Bc for submit@debbugs.gnu.org; Sun, 31 May 2020 13:50:16 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56640) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfS6B-0003HR-07 for 41454@debbugs.gnu.org; Sun, 31 May 2020 13:50:15 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57879) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jfS65-0006dG-LO; Sun, 31 May 2020 13:50:09 -0400 Received: from [176.228.60.248] (port=4790 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jfS64-0005M0-Ig; Sun, 31 May 2020 13:50:09 -0400 Date: Sun, 31 May 2020 20:50:07 +0300 Message-Id: <83r1v0j8og.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Pip Cet on Fri, 22 May 2020 12:50:13 +0000) References: X-Spam-Score: -1.4 (-) 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.4 (--) > From: Pip Cet > Date: Fri, 22 May 2020 12:50:13 +0000 > > There seems to be a general problem using such regexps in the > composition-function-table. > > If I evaluate this in emacs -Q (by placing point after it and hitting C-x C-e) > > (custom-set-faces > '(default ((t (:family "Libertinus Serif" :height 330))))) > (set-char-table-range composition-function-table t '([".+" 0 > font-shape-gstring])) > > the font correctly changes to a very large Libertinus font. I then hit > C-b C-d ) and the entire last line is highlighted, not just the > opening parenthesis. After the blink delay is over, the opening > parenthesis and the "s" following it are unhighlighted, but the rest > of the line is not. It stays like that permanently (screenshot > attached). This is unrelated to the fact that characters to be composed are specified with regexps. The problem is that the entire sequence of characters that matches the regexp is passed to the shaper, and the result is stored as a single composition. And we have special code in the display engine not to break sequences of potentially-composed characters when handling faces (see compute_stop_pos). So I think there might be some bug there which shows when a composition comprises more than a single grapheme cluster, and some face is applied to them. It could even be that this is a side effect of recent changes in that area of the display engine that fixed much more serious problems with compositions (see bug#28312 and commit c42c4e9c5 which fixed it). I couldn't verify that this problem doesn't appear in Emacs 26 or older, because Emacs only recently learned not to infloop or crash when attempting to compose pure-ASCII text. From unknown Sun Jun 22 04:22:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 18:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41454 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: pipcet@gmail.com Cc: 41454@debbugs.gnu.org Received: via spool by 41454-submit@debbugs.gnu.org id=B41454.159094811413749 (code B ref 41454); Sun, 31 May 2020 18:02:01 +0000 Received: (at 41454) by debbugs.gnu.org; 31 May 2020 18:01:54 +0000 Received: from localhost ([127.0.0.1]:33815 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfSHS-0003Zh-3N for submit@debbugs.gnu.org; Sun, 31 May 2020 14:01:54 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58716) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfSHQ-0003ZU-K6 for 41454@debbugs.gnu.org; Sun, 31 May 2020 14:01:52 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58045) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jfSHL-0001Qy-9T; Sun, 31 May 2020 14:01:47 -0400 Received: from [176.228.60.248] (port=1525 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jfSHI-0008N4-Tz; Sun, 31 May 2020 14:01:46 -0400 Date: Sun, 31 May 2020 21:01:44 +0300 Message-Id: <83mu5oj853.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <83r1v0j8og.fsf@gnu.org> (message from Eli Zaretskii on Sun, 31 May 2020 20:50:07 +0300) References: <83r1v0j8og.fsf@gnu.org> X-Spam-Score: -1.4 (-) 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.4 (--) > Date: Sun, 31 May 2020 20:50:07 +0300 > From: Eli Zaretskii > Cc: 41454@debbugs.gnu.org > > The problem is that the entire sequence of characters that matches > the regexp is passed to the shaper, and the result is stored as a > single composition. And we have special code in the display engine > not to break sequences of potentially-composed characters when > handling faces (see compute_stop_pos). So I think there might be > some bug there which shows when a composition comprises more than a > single grapheme cluster, and some face is applied to them. On second thought, I'm not sure this is the right place to look at. It could be fill_gstring_glyph_string and BUILD_GSTRING_GLYPH_STRING instead (and the respective *term.c display functions). From unknown Sun Jun 22 04:22:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 19:59:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41454 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 41454@debbugs.gnu.org Received: via spool by 41454-submit@debbugs.gnu.org id=B41454.159095513324003 (code B ref 41454); Sun, 31 May 2020 19:59:01 +0000 Received: (at 41454) by debbugs.gnu.org; 31 May 2020 19:58:53 +0000 Received: from localhost ([127.0.0.1]:33886 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfU6f-0006F5-9w for submit@debbugs.gnu.org; Sun, 31 May 2020 15:58:53 -0400 Received: from mail-ot1-f50.google.com ([209.85.210.50]:44982) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfU6d-0006Er-Os for 41454@debbugs.gnu.org; Sun, 31 May 2020 15:58:52 -0400 Received: by mail-ot1-f50.google.com with SMTP id f18so6271205otq.11 for <41454@debbugs.gnu.org>; Sun, 31 May 2020 12:58:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=fNI2/0vbDsmJoXrLEDSpfcD/R2+peyTuE0IQIlfggtI=; b=AyRn/+CcpyPFMtEjwISVzQHOiNcBaS35yWgPqN0/tNKhbehshd8qiyz8kKBlYbIMDu JHsaU+SwFICGEdBoJgR2/qexW2l6vwdKwe1IYQBqYmkLKTzq+RpKwB80dRZH5hyfaOzd 8wIXJgpEHiuU2gWC1EuM4mmH58bKdIkH7xNzMSI6qiRN2QFCWdN2W3rWlnFSAmHOTDD0 ZUL3WYJx2Kyw5ONfFzQSoTt49E84YVgfKeUbEccTfQbKoyz2LdfT/LHDDHnZ7yxVBx7Y 3IstfpwFOPntiAJvsAcenY3EoS17x4yxi+0vPWe52TxiryOilCUulou0bG0wTiKV7PpB 8w+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=fNI2/0vbDsmJoXrLEDSpfcD/R2+peyTuE0IQIlfggtI=; b=JwjmwRKfqGtrg7ByNshXL3KK9xdPSF+KQtwJI0GSvCauq0dY32PhjaBgiTYzPdEF6q fgNlzPlaEtpxcYKhU66YEIYeLRrTPFKEBOTXoLHp/N2pwtRvtrqDXD2I0tt7M1HRtkwY Ssja/jhLmcm9acNnnT2lZSCSMJgi2O969qVZ17g701DOzA5yXMfzNuB/Rf5g5tHJdGJ5 Bk9GDw0hWelhGhNcnclj/gt5AseCvGjhG5erhO0QInT7wEVZg3qJf2+dezpXHCDNwU4A dQz8SqzTWR4tITlc/Bc7NXQAI46+hLolkS6bkSPVVi4u64C20k0NY8IFBvjPTUr9Mf31 92iA== X-Gm-Message-State: AOAM532XOkqb/+WpwonqQscsjgMLd7gaCgtvDD9VGMp42vifm+vdrG1u TxD8FEtpAU9VvpqsHbQhtEZKGlhitUQm5e7ySWNpJm35 X-Google-Smtp-Source: ABdhPJxZwatgStsu0WBZ05r2HLr0e8F3v7Mk9OOJ6B7EzWcSFNSgBSOPUW/ZA8mITSGH0IRuHNRyJzoaqQALF79Mv1o= X-Received: by 2002:a9d:6a44:: with SMTP id h4mr14557396otn.287.1590955126037; Sun, 31 May 2020 12:58:46 -0700 (PDT) MIME-Version: 1.0 References: <83r1v0j8og.fsf@gnu.org> <83mu5oj853.fsf@gnu.org> In-Reply-To: <83mu5oj853.fsf@gnu.org> From: Pip Cet Date: Sun, 31 May 2020 19:58:09 +0000 Message-ID: Content-Type: multipart/mixed; boundary="000000000000243b4205a6f71ba4" 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 (-) --000000000000243b4205a6f71ba4 Content-Type: text/plain; charset="UTF-8" On Sun, May 31, 2020 at 6:01 PM Eli Zaretskii wrote: > > Date: Sun, 31 May 2020 20:50:07 +0300 > > From: Eli Zaretskii > > Cc: 41454@debbugs.gnu.org > > > > The problem is that the entire sequence of characters that matches > > the regexp is passed to the shaper, and the result is stored as a > > single composition. And we have special code in the display engine > > not to break sequences of potentially-composed characters when > > handling faces (see compute_stop_pos). So I think there might be > > some bug there which shows when a composition comprises more than a > > single grapheme cluster, and some face is applied to them. > > On second thought, I'm not sure this is the right place to look at. > It could be fill_gstring_glyph_string and BUILD_GSTRING_GLYPH_STRING > instead (and the respective *term.c display functions). Thanks for the hint! You were absolutely correct. --000000000000243b4205a6f71ba4 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Don-t-get-confused-by-mid-gstring-face-changes-bug-4.patch" Content-Disposition: attachment; filename="0001-Don-t-get-confused-by-mid-gstring-face-changes-bug-4.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kavhjw0f0 RnJvbSBjMWQ0Nzc4MDAxNTY3ZjdkZmM3ODI1YjY5MTkzMDg5ZWM2OTg5N2JiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBTdW4s IDMxIE1heSAyMDIwIDE5OjU1OjQ4ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gRG9uJ3QgZ2V0IGNv bmZ1c2VkIGJ5IG1pZC1nc3RyaW5nIGZhY2UgY2hhbmdlcyAoYnVnIzQxNDU0KQoKKiBzcmMveGRp c3AuYyAoZmlsbF9nc3RyaW5nX2dseXBoX3N0cmluZyk6IERvbid0IGV4dGVuZCB0aGUgZ2x5cGgK c3RyaW5nIHBhc3QgZmFjZSBjaGFuZ2VzLgotLS0KIHNyYy94ZGlzcC5jIHwgMSArCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBiL3NyYy94 ZGlzcC5jCmluZGV4IGRiMGVjNjgzMTUuLjk4OTk1OGZhMTEgMTAwNjQ0Ci0tLSBhL3NyYy94ZGlz cC5jCisrKyBiL3NyYy94ZGlzcC5jCkBAIC0yNzY5OCw2ICsyNzY5OCw3IEBAIGZpbGxfZ3N0cmlu Z19nbHlwaF9zdHJpbmcgKHN0cnVjdCBnbHlwaF9zdHJpbmcgKnMsIGludCBmYWNlX2lkLAogICB3 aGlsZSAoZ2x5cGggPCBsYXN0CiAJICYmIGdseXBoLT51LmNtcC5hdXRvbWF0aWMKIAkgJiYgZ2x5 cGgtPnUuY21wLmlkID09IHMtPmNtcF9pZAorCSAmJiBnbHlwaC0+ZmFjZV9pZCA9PSBmYWNlX2lk CiAJICYmIHMtPmNtcF90byA9PSBnbHlwaC0+c2xpY2UuY21wLmZyb20pCiAgICAgewogICAgICAg cy0+d2lkdGggKz0gZ2x5cGgtPnBpeGVsX3dpZHRoOwotLSAKMi4yNy4wLnJjMAoK --000000000000243b4205a6f71ba4-- From unknown Sun Jun 22 04:22:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 Jun 2020 16:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41454 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Pip Cet Cc: 41454@debbugs.gnu.org Received: via spool by 41454-submit@debbugs.gnu.org id=B41454.15910282542894 (code B ref 41454); Mon, 01 Jun 2020 16:18:01 +0000 Received: (at 41454) by debbugs.gnu.org; 1 Jun 2020 16:17:34 +0000 Received: from localhost ([127.0.0.1]:36839 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfn82-0000kc-7n for submit@debbugs.gnu.org; Mon, 01 Jun 2020 12:17:34 -0400 Received: from eggs.gnu.org ([209.51.188.92]:43806) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfn80-0000kP-O6 for 41454@debbugs.gnu.org; Mon, 01 Jun 2020 12:17:33 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51923) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jfn7v-00023h-HG; Mon, 01 Jun 2020 12:17:27 -0400 Received: from [176.228.60.248] (port=3725 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jfn7u-0003sd-R6; Mon, 01 Jun 2020 12:17:27 -0400 Date: Mon, 01 Jun 2020 19:17:30 +0300 Message-Id: <83v9kaep5x.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Pip Cet on Sun, 31 May 2020 19:58:09 +0000) References: <83r1v0j8og.fsf@gnu.org> <83mu5oj853.fsf@gnu.org> 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 (---) > From: Pip Cet > Date: Sun, 31 May 2020 19:58:09 +0000 > Cc: 41454@debbugs.gnu.org > > > On second thought, I'm not sure this is the right place to look at. > > It could be fill_gstring_glyph_string and BUILD_GSTRING_GLYPH_STRING > > instead (and the respective *term.c display functions). > > Thanks for the hint! You were absolutely correct. > > diff --git a/src/xdisp.c b/src/xdisp.c > index db0ec68315..989958fa11 100644 > --- a/src/xdisp.c > +++ b/src/xdisp.c > @@ -27698,6 +27698,7 @@ fill_gstring_glyph_string (struct glyph_string *s, int face_id, > while (glyph < last > && glyph->u.cmp.automatic > && glyph->u.cmp.id == s->cmp_id > + && glyph->face_id == face_id > && s->cmp_to == glyph->slice.cmp.from) > { > s->width += glyph->pixel_width; LGTM, thanks. (Note that the sibling function fill_composite_glyph_string already does that for static compositions.) From unknown Sun Jun 22 04:22:17 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Pip Cet Subject: bug#41454: closed (Re: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting) Message-ID: References: <87v9k87fl6.fsf@gmail.com> X-Gnu-PR-Message: they-closed 41454 X-Gnu-PR-Package: emacs Reply-To: 41454@debbugs.gnu.org Date: Wed, 03 Jun 2020 07:51:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1591170662-29040-1" This is a multi-part message in MIME format... ------------=_1591170662-29040-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren = highlighting which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 41454@debbugs.gnu.org. --=20 41454: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D41454 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1591170662-29040-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 41454-done) by debbugs.gnu.org; 3 Jun 2020 07:51:00 +0000 Received: from localhost ([127.0.0.1]:41857 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jgOAt-0007YA-Rk for submit@debbugs.gnu.org; Wed, 03 Jun 2020 03:50:59 -0400 Received: from mail-wr1-f50.google.com ([209.85.221.50]:35641) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jgOAr-0007Xw-Kr for 41454-done@debbugs.gnu.org; Wed, 03 Jun 2020 03:50:57 -0400 Received: by mail-wr1-f50.google.com with SMTP id x14so1254215wrp.2 for <41454-done@debbugs.gnu.org>; Wed, 03 Jun 2020 00:50:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=rETyzxmgmIC1cnTe9ri58X9fZrH5KC6XXCZmNZSm+OY=; b=jHVx0czGP4Gr0XTJ1Z7TRoyzZLFKNxWDgzmN7i+aBLq1eRMACLJvaM3UflsI6h3EFK s5wMphFRgiLYE+qIqo9n75znkXoQFub350FMzSHWaEvjTED7+GMFu1yrq8Ad/Af/0iWH +RU+WLAhKb9ZREA98dR9o+QmG95/jni3QQbwEHmwDC7ea+CTyFX3LtA4V+xxGwWfjEFO WOiInnwxdcWkpb0xOFbwEmH0UC3sOSClHUWprCqRKjCOW2DgxGYK6OqmM98wzX+fVSpz SqtGkFcIt+x9LolXebavy4V/daF0dSwvV/XFMk2DqpilCcGVlVgwmPakDcVcYudATeqE NkrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=rETyzxmgmIC1cnTe9ri58X9fZrH5KC6XXCZmNZSm+OY=; b=VcS3WZ2FXvw7NYWlJbEeiMEh1XRaJwmzttLUN7aJUWOnwLGJjLHh7unbyaPR7CsqNU hH0nqXhHUaYd4IlsuCpF7TqA9dFqwWzQVwJviLsmFbogx8XEgpjNoRe2FLXIzR793aVE W1XvEQwVIYw3z43NAaYcMdLGilomMP7WQ75BLToJO6zG6gmfkJJmfXW169wMPztEs4iX 99ZP9upExTu4P9tdSA9+N8CcHhZBcaN8HCJfsfnGJ7NKnAdH+8gizEX6wyvWA2WTTRO4 pqhn2MZAoZ9GlQCcWWn/gdGJjLDKf/aj2T+oVpuxxkg3rggrmOmJH3NyRIhRTjCetE0S 1jZA== X-Gm-Message-State: AOAM533PK/ErYMssfeIOTQETgHw4TGYgwHbl2V0HGO1YSSCRd32QxcqX jv5uht8tZQC0rNnBs+W/HC4+Ys1mCoM= X-Google-Smtp-Source: ABdhPJyiwLW3ZrZ310of/lDBlekaOIh3dQ2m79apjdHXt+YRz3fD9tGsMW0nU5A2kUF9bDH8nmXfPw== X-Received: by 2002:adf:f512:: with SMTP id q18mr32084990wro.38.1591170651267; Wed, 03 Jun 2020 00:50:51 -0700 (PDT) Received: from chametz (tor-exit-8.zbau.f3netze.de. [185.220.100.247]) by smtp.gmail.com with ESMTPSA id x66sm1721443wmb.40.2020.06.03.00.50.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jun 2020 00:50:50 -0700 (PDT) From: Pip Cet To: Eli Zaretskii Subject: Re: bug#41454: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting References: <83r1v0j8og.fsf@gnu.org> <83mu5oj853.fsf@gnu.org> <83v9kaep5x.fsf@gnu.org> Date: Wed, 03 Jun 2020 07:50:45 +0000 In-Reply-To: <83v9kaep5x.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 01 Jun 2020 19:17:30 +0300") Message-ID: <87v9k87fl6.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Eli Zaretskii writes: > LGTM, thanks. Pushed, closing this bug. Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: gnu.org] 1.2 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net [Blocked - see ] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (pipcet[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.221.50 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.221.50 listed in list.dnswl.org] X-Debbugs-Envelope-To: 41454-done Cc: 41454-done@debbugs.gnu.org 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: 0.2 (/) Eli Zaretskii writes: > LGTM, thanks. Pushed, closing this bug. ------------=_1591170662-29040-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 22 May 2020 12:50:55 +0000 Received: from localhost ([127.0.0.1]:58389 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jc78Z-0007Db-G5 for submit@debbugs.gnu.org; Fri, 22 May 2020 08:50:55 -0400 Received: from lists.gnu.org ([209.51.188.17]:41854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jc78X-0007DT-GD for submit@debbugs.gnu.org; Fri, 22 May 2020 08:50:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45070) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc78W-0001ut-6u for bug-gnu-emacs@gnu.org; Fri, 22 May 2020 08:50:52 -0400 Received: from mail-oo1-xc32.google.com ([2607:f8b0:4864:20::c32]:34887) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jc78V-0007rt-Cn for bug-gnu-emacs@gnu.org; Fri, 22 May 2020 08:50:51 -0400 Received: by mail-oo1-xc32.google.com with SMTP id c187so2140502ooc.2 for ; Fri, 22 May 2020 05:50:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=Ndndbe/BZ6cQh+5yiv/857Ft4jHwjJP+nrTXelXoiRU=; b=hIu0HEp2Bh+uxNy4Z2s+dW8CHU7IXW6G4/rMwflao1tS0pJfaBMtKzj2md7USczOHr EDqfnEcj2lPgyfKtCYRWsAAFs8IZnsm+RmdxQACSK09Vy320VI9F5dWPHyYdROpY18f0 R/gCndpVudry5Z3CbX2NA0lY+iTB1CQiBMqK34PgqRo01LhvKw2QcQ8H1iBaymfMXGMa 57PDRycQ+SYDEVs8N3/9hTyVXZd6sH1aeNWMWWVzzrprLgEpj5BbBox/rQO91Ao29XmS JN/UhbujB7C6r0JqCQYbk5FND5TizP2/RkcoTkg4GiRP/6JXk2oCBTjSMoFjGrYD4tT3 3Dkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Ndndbe/BZ6cQh+5yiv/857Ft4jHwjJP+nrTXelXoiRU=; b=Dya4xma5grbkkoHeNwu363BsFPJF3WTgF2H175DyW+8FalwAzIFoS8sawpecHYzIU+ HDzOZJDKo5dM9uq733cQcQ9vof3Hj3CXIbW9UOapOW2pkHfxVwEmYxBqg4kthPxYvNuW 75ooQvrtVdnL3lK7+vv9LbgKkyt6JY7mCYo8IwFjgnHXwK1lZ/nIwGym5Zpaa+TfrJD2 +9gw8HNDJhP+ZFRrVCiPKUvuZPXoUjO5L7C6hhzUpr2lCDroHUpj+/wAPjcWPVIaaX4v jJNgNmIyjVbWFa6PWl6OHEpDzosLvjXP/F2NMe6w3WiTi+X3iwhOCWwKM11x6NM5Ffxs C+Xg== X-Gm-Message-State: AOAM530VgCg7CIE5KuRKt3bb4CiAtYenfb0ZeuzP/rR8hJWtmXDCK1Tr EHH4tdmuwGIYw1c9JU3rK6kOXGdXsMoXGVd2O7IJIf8dXqE= X-Google-Smtp-Source: ABdhPJyFqxHll1NK4o1TKax6O6BKT+h+dKW7n5RlPBEm1geWNE2cejE0sQaUx+ri8BnuIlElkGWKG6YjEIjCaT7TyGw= X-Received: by 2002:a4a:ad0d:: with SMTP id r13mr2916717oon.22.1590151849393; Fri, 22 May 2020 05:50:49 -0700 (PDT) MIME-Version: 1.0 From: Pip Cet Date: Fri, 22 May 2020 12:50:13 +0000 Message-ID: Subject: 28.0.50; [".+" 0 font-shape-gstring] composition rule breaks paren highlighting To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="0000000000001fe47c05a63c14b5" Received-SPF: pass client-ip=2607:f8b0:4864:20::c32; envelope-from=pipcet@gmail.com; helo=mail-oo1-xc32.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: submit 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 (--) --0000000000001fe47c05a63c14b5 Content-Type: text/plain; charset="UTF-8" ...and other things. It's probably a case of "if it hurts, don't do that". There seems to be a general problem using such regexps in the composition-function-table. If I evaluate this in emacs -Q (by placing point after it and hitting C-x C-e) (custom-set-faces '(default ((t (:family "Libertinus Serif" :height 330))))) (set-char-table-range composition-function-table t '([".+" 0 font-shape-gstring])) the font correctly changes to a very large Libertinus font. I then hit C-b C-d ) and the entire last line is highlighted, not just the opening parenthesis. After the blink delay is over, the opening parenthesis and the "s" following it are unhighlighted, but the rest of the line is not. It stays like that permanently (screenshot attached). --0000000000001fe47c05a63c14b5 Content-Type: image/png; name="paren.png" Content-Disposition: attachment; filename="paren.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kai791kb0 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 --0000000000001fe47c05a63c14b5-- ------------=_1591170662-29040-1--