From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Allen Li Newsgroups: gmane.emacs.bugs Subject: bug#49629: Acknowledgement (27.2; electric-pair-mode doesn't work for angle brackets in HTML file) Date: Thu, 22 Jul 2021 07:03:29 +0000 Message-ID: References: <801r7vgoxm.fsf@felesatra.moe> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35244"; mail-complaints-to="usenet@ciao.gmane.io" To: 49629@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Jul 22 09:04:53 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m6SlI-0008zz-Na for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 22 Jul 2021 09:04:52 +0200 Original-Received: from localhost ([::1]:38066 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m6SlH-0002cQ-PM for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 22 Jul 2021 03:04:51 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46390) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m6SkU-0002BA-3F for bug-gnu-emacs@gnu.org; Thu, 22 Jul 2021 03:04:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:55958) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m6SkT-0006Nc-Ql for bug-gnu-emacs@gnu.org; Thu, 22 Jul 2021 03:04:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1m6SkT-0006z7-JB for bug-gnu-emacs@gnu.org; Thu, 22 Jul 2021 03:04:01 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <801r7vgoxm.fsf@felesatra.moe> Resent-From: Allen Li Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 22 Jul 2021 07:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49629 X-GNU-PR-Package: emacs Original-Received: via spool by 49629-submit@debbugs.gnu.org id=B49629.162693742826822 (code B ref 49629); Thu, 22 Jul 2021 07:04:01 +0000 Original-Received: (at 49629) by debbugs.gnu.org; 22 Jul 2021 07:03:48 +0000 Original-Received: from localhost ([127.0.0.1]:39271 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m6SkG-0006yY-2g for submit@debbugs.gnu.org; Thu, 22 Jul 2021 03:03:48 -0400 Original-Received: from mail-oi1-f171.google.com ([209.85.167.171]:46684) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m6SkE-0006yH-DK for 49629@debbugs.gnu.org; Thu, 22 Jul 2021 03:03:47 -0400 Original-Received: by mail-oi1-f171.google.com with SMTP id r80so5539192oie.13 for <49629@debbugs.gnu.org>; Thu, 22 Jul 2021 00:03:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=felesatra-moe.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=BsEu2P9TMPZmXhFqUA7krG6TKSGPFlbJtH97mLZ1DkE=; b=TxXVPnJ7RCjWLMewEBPs+ZlFnAiw8neRygVcHUZLUbGR1l3qi3pdrSzI25M3e3JT5Q brMeBQKoqW1Ie1TfA2DGbAtGomZnCMSwaLqyrVvnKncfLV1apZzl9aRC0OAwGKJMHKaR HC0E37V6qtyyX74Bsmbc/LBimShbZ9iK+kQ6xGPJOmBMLNgslcFXor7C6ZOgoJ8xXgWx MHZqH5KAcGYrxmpFLFKkCTJcjGcbMdd3JvlS7YG7aSumZVFykAgc5GNgkk0u+q8JgCq8 xzhPdj9V2rzQkfRbVm/xrQaZaqYvB21jtJLM3U86IG6DJ4EUOB4af6T5pKyaSfNsSHHf bp9w== 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=BsEu2P9TMPZmXhFqUA7krG6TKSGPFlbJtH97mLZ1DkE=; b=h0i/Qfg1YGF3skXe7t9AnzhFALIZl77a7SJptANt5zdjxhLnoyFd9d2gJMj6LDq/Wo 5Sj8y2cLwwqX7BQfi+OkJMIYBGPmrDFpGOfweW/pSkw23ng90Onoxv4Ft0u0jDOM6QsN zEKRcZL7ob8cdkk7YW15+X7S0ZMvt6ny8bNqOwD7Bz7gkuKL7SgrFHI5Bw7vePCEEni+ UXpGTywBllvEf1NQ+EhXrH1By4phNWXNZKb10rKBsjnTcdFhjZ6rGu6kkWIdR/pY8kKZ r/bJe8pVjqz1l4BxYGyis1SHUI3qgXrvjFNUk6yNXYoldimmdOC4HxqzukT/HBGv7U1z Btgg== X-Gm-Message-State: AOAM533eMpT0uWL7cNnzDaALDAlh7riscSgwinNFxLaUsIf0l6vsvM9E GjlYkUTvAxdU3YuPEfGpuqNLLYVa/XUIIoHPtr6+mfIM5/zjpA08 X-Google-Smtp-Source: ABdhPJyUjWJ7NYvqJ0cxxiCL/mPl2swOW9nxK598097IJRsAoAKZ3AO7q3ySUbMDJeptauaAfs5QSGyDkwHaIKLmeXU= X-Received: by 2002:a05:6808:138c:: with SMTP id c12mr8336531oiw.178.1626937420574; Thu, 22 Jul 2021 00:03:40 -0700 (PDT) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:210496 Archived-At: > To reproduce: > > 1. emacs -Q > 2. C-x C-f /tmp/tmp.html RET > 3. M-x electric-pair-local-mode RET > 4. < > > > Expected: > > Buffer contains <> > > Actual: > > Buffer contains <>> > > By default, typing > should skip over the > inserted by > electric-pair-mode when the first < is type (but it doesn't). > > I tried stepping through with Edebug, but the bug disappears when using > Edebug. The difference seems to be in what is returned by > electric-pair--balance-info, but that function is big and unfamiliar to > me. What I've found so far is that using Edebug to step through electric-pair-skip-if-helps-balance, if I manually step past (delete-char -1) and then press g (edebug-go-mode) then the bug disappears. Pressing g before stepping past (delete-char -1) causes the bug. For reference, here is the function: (defun electric-pair-skip-if-helps-balance (char) "Return non-nil if skipping CHAR would benefit parentheses' balance. Works by first removing the character from the buffer, then doing some list calculations, finally restoring the situation as if nothing happened." (pcase (electric-pair-syntax-info char) (`(,syntax ,pair ,_ ,s-or-c) (unwind-protect (progn (delete-char -1) (cond ((eq syntax ?\)) (let* ((pair-data (electric-pair--balance-info -1 s-or-c)) (innermost (car pair-data)) (outermost (cdr pair-data))) (and (cond ((car outermost) (car innermost)) ((car innermost) (not (eq (cdr outermost) pair))))))) ((eq syntax ?\") (electric-pair--inside-string-p char)))) (insert char)))))