From unknown Fri Jun 20 07:15:10 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#32390 <32390@debbugs.gnu.org> To: bug#32390 <32390@debbugs.gnu.org> Subject: Status: [ipython 6.x] unmatched quotes break fontification in python.el (superseded by #33959) Reply-To: bug#32390 <32390@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:15:10 +0000 retitle 32390 [ipython 6.x] unmatched quotes break fontification in python.= el (superseded by #33959) reassign 32390 emacs submitter 32390 Carlos Pita severity 32390 minor tag 32390 patch fixed confirmed thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 07 14:49:54 2018 Received: (at submit) by debbugs.gnu.org; 7 Aug 2018 18:49:54 +0000 Received: from localhost ([127.0.0.1]:43924 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fn73J-0004cX-VI for submit@debbugs.gnu.org; Tue, 07 Aug 2018 14:49:54 -0400 Received: from eggs.gnu.org ([208.118.235.92]:52057) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fn73I-0004cH-QP for submit@debbugs.gnu.org; Tue, 07 Aug 2018 14:49:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fn73C-0002j0-76 for submit@debbugs.gnu.org; Tue, 07 Aug 2018 14:49:47 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:33722) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fn73C-0002io-1l for submit@debbugs.gnu.org; Tue, 07 Aug 2018 14:49:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42993) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fn73A-0000Mm-Lo for bug-gnu-emacs@gnu.org; Tue, 07 Aug 2018 14:49:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fn737-0002gB-Gz for bug-gnu-emacs@gnu.org; Tue, 07 Aug 2018 14:49:44 -0400 Received: from mail-qk0-x22b.google.com ([2607:f8b0:400d:c09::22b]:38053) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fn737-0002fv-AM for bug-gnu-emacs@gnu.org; Tue, 07 Aug 2018 14:49:41 -0400 Received: by mail-qk0-x22b.google.com with SMTP id 126-v6so12208361qke.5 for ; Tue, 07 Aug 2018 11:49:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=IskZAmS4NIB3KgZ9ryC3V3Ph1+QHoOCXoCA2D8BTEuY=; b=LmSon7/CdhR7cek98R1AyaMAOAo4KO9qcVUtb3tT3HnlpNVK+8oo3d4cUWEyOx6yk1 RAqQg4KOXBWaT49HBtlfQ2ILWJFWc2qMVg0eLBPWN1Zy2gYaS5HAxpQANc3g58Lrg3Kt uAKlxDgSKw1P3l6+pPC4fKMf1pDsv6vB0NOO3qnoPLxWFRye1nJoy9wUevvmGmxPJwEE 1VJlWtZSMIRtXZitLjtVo8aN9fVKTsa90zVVdH0N9is4jU09b7N2UzV1wxXmxrY9seIv I/QRhod7TyN2H3vrGuqFQinDEJJw5jZsOAVOhsv+RcoVhiOZ5Zd4/g47uS3m48/rEZkO UBKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=IskZAmS4NIB3KgZ9ryC3V3Ph1+QHoOCXoCA2D8BTEuY=; b=Bej+rxThvuhOW5T+PUNEnFOZjW30D7jjvx+EuTnsrug9b1xa4PrQ1+SHL7jkNUNYyg UIqUYfQtQUL08UYejOAEJGp8ha93rBNrV1AnGRdjkzPBE3lyJY46RfcJZyJXPLgeS+W9 d/CIJXUVNh68XOE/xFX/H4b4mib/qE/1d9T/VF6PjF/3p8P9Q9cToPp9dGBWo+dM6NxV lE2hcyDhgEm2iLP9xg4ykLGx2ObN/WBqKAWjgrCkm2dkg34LAVgl68VqdStWazWW6ZTa 1+gI5WgaK+Yu+r2Z51BH9o5ZxeQHkmZJ2tqZh9v8gUBkI3H6X+d8pKACu+fk5XcMFoV4 TN+A== X-Gm-Message-State: AOUpUlGtL293s61xBICZU68g5fJqkfZU7KMkjOD9YsgKDVtuWBq3wrcB l0l6yf3di5m4hbR3JhCkiE7lrou+ X-Google-Smtp-Source: AA+uWPwnKXRWC2UI4ZJkWmkbDw7VhKA3rTmKlZG8LOujLWol4NJWWRye4lSNRD2FHqWm7Qkyf83kVA== X-Received: by 2002:a37:ddd2:: with SMTP id u79-v6mr17255016qku.420.1533667780434; Tue, 07 Aug 2018 11:49:40 -0700 (PDT) Received: from archlinux ([190.2.33.33]) by smtp.gmail.com with ESMTPSA id l18-v6sm962967qtp.56.2018.08.07.11.49.39 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 07 Aug 2018 11:49:40 -0700 (PDT) From: Carlos Pita To: bug-gnu-emacs@gnu.org Subject: 26.1; python.el: cleanup font lock buffer after input is sent Date: Tue, 07 Aug 2018 15:49:34 -0300 Message-ID: <87sh3q1075.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) 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: -5.0 (-----) font-locking gets often confused because of unclosed string delimiters. For example, type " and then press return, start typing in the new input prompt and the input will be identified as a docstring. It's ok to keep the font lock buffer while doing multiline edition, but after input is sent to the underlying process the buffer should be cleaned up so that each input is independently colorized. --- In GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) of 2018-07-05 built on juergen Windowing system distributor 'The X.Org Foundation', version 11.0.12000000 Recent messages: Loading ido-completing-read+...done Loading paren...done Loading winner...done Loading xclip...done Source file =E2=80=98/home/carlos/.emacs.d/elpa/elpy-20180720.155/elpy-shel= l.el=E2=80=99 newer than byte-compiled file [yas] Prepared just-in-time loading of snippets successfully. For information about GNU Emacs and the GNU system, type C-h C-a. ido-read-internal: Command attempted to use minibuffer while in minibuffer You can run the command =E2=80=98run-python=E2=80=99 with M-x r-py RET Shell native completion is disabled, using fallback Configured using: 'configure --prefix=3D/usr --sysconfdir=3D/etc --libexecdir=3D/usr/lib --localstatedir=3D/var --with-x-toolkit=3Dgtk3 --with-xft --with-modules 'CFLAGS=3D-march=3Dx86-64 -mtune=3Dgeneric -O2 -pipe -fstack-protector-str= ong -fno-plt' CPPFLAGS=3D-D_FORTIFY_SOURCE=3D2 LDFLAGS=3D-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES THREADS LIBSYSTEMD LCMS2 Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Inferior Python Minor modes in effect: pdf-occur-global-minor-mode: t diff-auto-refine-mode: t pyvenv-mode: t shell-dirtrack-mode: t compilation-shell-minor-mode: t xclip-mode: t winner-mode: t show-paren-mode: t ido-ubiquitous-mode: t ido-everywhere: t global-company-mode: t company-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message rmc puny rfc822 mml mml-sec epa derived epg mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail display-line-numbers checkdoc pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet dired dired-loaddefs pdf-isearch let-alist pdf-misc imenu pdf-tools pdf-view bookmark pp jka-compr pdf-cache pdf-info tq pdf-util image-mode org-protocol org-element avl-tree generator org org-macro org-footnote org-pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs org-loaddefs find-func cal-menu calendar cal-loaddefs cl-extra yasnippet elec-pair highlight-indentation flymake-proc flymake warnings help-fns radix-tree help-mode elpy find-file-in-project ivy delsel colir color ivy-overlay ffap thingatpt windmove diff-mode easy-mmode elpy-shell pyvenv esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util elpy-profile elpy-django elpy-refactor subr-x python tramp-sh tramp tramp-compat tramp-loaddefs trampver ucs-normalize shell pcomplete parse-time format-spec advice json map grep compile comint ansi-color files-x doom-themes-org doom-tomorrow-night-theme doom-themes doom-themes-common company-oddmuse company-keywords company-etags etags xref project company-gtags company-dabbrev-code company-dabbrev company-files company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-template company-bbdb xclip winner ring paren ido-completing-read+ memoize s cus-edit minibuf-eldef ido gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils mm-util mail-prsvr wid-edit company edmacro kmacro pcase cus-start cus-load finder-inf info package easymenu epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 556542 20830) (symbols 48 43787 5) (miscs 40 1025 265) (strings 32 128269 3450) (string-bytes 1 3715198) (vectors 16 66976) (vector-slots 8 1097024 18728) (floats 8 516 401) (intervals 56 385 0) (buffers 992 16)) From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 07 15:10:53 2018 Received: (at 32390) by debbugs.gnu.org; 7 Aug 2018 19:10:53 +0000 Received: from localhost ([127.0.0.1]:43931 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fn7Nc-0005BO-V6 for submit@debbugs.gnu.org; Tue, 07 Aug 2018 15:10:53 -0400 Received: from mail-yb0-f174.google.com ([209.85.213.174]:38494) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fn7Na-0005BA-GB for 32390@debbugs.gnu.org; Tue, 07 Aug 2018 15:10:50 -0400 Received: by mail-yb0-f174.google.com with SMTP id d18-v6so3099597ybq.5 for <32390@debbugs.gnu.org>; Tue, 07 Aug 2018 12:10: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=thwu/9hTIk10n82h3Dr+DYkYIx1eU0F++VrFcmczrZc=; b=TGmPAHUncjemfgQDQC6FekNDDWmDf1l0Rd2z2Z9iWhe6lx4CwEiBQtIRy0CVD2mden OmruUGD2897dQG7jFUa4F0TWygnBuwkRaP0d2drJYqNiUFwAEWCtRR15zlSKTN+SUrty JjyGpQuXgheFeLmOcrQY4dIdckZx2x9FM2UwYNI9rfZBavdIrKNA3yDttP2U1TMFag7Q E+W0IqvF6tn9443WHoegyX6qmqHsYnt/ApUCgnlMUpasBMKxy7p2aQv7aJv0pspWh20A b0kQebpqQorzPj3dRqSShGHR0yikp1UTtSLBJj7yg8aJXmwoDYzqzk1TedAkTVWSoqxO 7kTw== 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=thwu/9hTIk10n82h3Dr+DYkYIx1eU0F++VrFcmczrZc=; b=kNFqsfz+ht6Kdm/kVRzqF4f0OqQu3lZGOYpFiSndJyLyu1OGpI27CnN+vPxwhgzWvY uk0Y9kkX5z/KKNo+23brj17r7WCkRmrutrbm5GCqfMBk/stNXvBuH870exesBXMHKINh mKlw2DIgASyFTpJcon4kmgnbEMZ7og8NSFwk7PJFElXoMLSWGDvzKLzASxKPlTcGG7+O UC7sm8lCy0meeo4x06ia+N6+06E+VOjPUBMDRXE585KTBWf0MJ4d2Vesc1k3f2apgCor BkxE9mAGdPReBrk3urdeG2uqyP1UAeft1C0SZH4hC/cZOCYQC4UMgWHM6eVoKg9LBJzP 6T+w== X-Gm-Message-State: AOUpUlHMwebErjsC71vjCQtv6NKJagbytRiWQwgSnMBvn56LIRgT17pM IqApvTuCFdbGFDEoV33NNboo9FGLYfqNiLF0Aya4g3Rc X-Google-Smtp-Source: AAOMgpdlEjrH440JmlpgtBFJkxhZPxKY88U4VvpS/3g1+OI0t1RXE8m7t8/XrPvINswqxNW4FFdSUbRZtTge7AOcK38= X-Received: by 2002:a25:be42:: with SMTP id d2-v6mr5345510ybm.32.1533669044700; Tue, 07 Aug 2018 12:10:44 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:c713:0:0:0:0:0 with HTTP; Tue, 7 Aug 2018 12:10:24 -0700 (PDT) From: Carlos Pita Date: Tue, 7 Aug 2018 16:10:24 -0300 Message-ID: Subject: To: 32390@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 2.0 (++) 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: The buffer is indeed being cleaned up in the output filter: (defun python-shell-font-lock-comint-output-filter-function (output) (if (and (not (string= "" output)) ... (python-shell-font-lock-cleanup-buffer) [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (carlosjosepita[at]gmail.com) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [209.85.213.174 listed in list.dnswl.org] 2.0 BLANK_SUBJECT Subject is present but empty 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid X-Debbugs-Envelope-To: 32390 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 (+) The buffer is indeed being cleaned up in the output filter: (defun python-shell-font-lock-comint-output-filter-function (output) (if (and (not (string= "" output)) ... (python-shell-font-lock-cleanup-buffer) The problem is that an unclosed string is an error and in that case output is "", so that the cleanup part is not reached. I think it should be made unconditional. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 07 15:35:10 2018 Received: (at 32390) by debbugs.gnu.org; 7 Aug 2018 19:35:10 +0000 Received: from localhost ([127.0.0.1]:43956 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fn7l8-0001Mx-0S for submit@debbugs.gnu.org; Tue, 07 Aug 2018 15:35:10 -0400 Received: from mail-yb0-f179.google.com ([209.85.213.179]:33220) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fn7l5-0001Me-NI for 32390@debbugs.gnu.org; Tue, 07 Aug 2018 15:35:08 -0400 Received: by mail-yb0-f179.google.com with SMTP id e84-v6so7067086ybb.0 for <32390@debbugs.gnu.org>; Tue, 07 Aug 2018 12:35:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=S35IwHzhAJvLJY2PlqCIMJeHdPITiiYllbp0hb0Ddhk=; b=iISKNVW9/MbeQ+BGMn1xmozqUrcnm7j4rwbrKRENXcgpRDSxYnQRov5vS6X8IiFXEF 0xmhlI0+Uu9g6fehLNQHolwjtmMnnKHV/gPj6KnWMWxkMDSvcQw6AaBwGKMAJLdU0Mf3 fUvPbDF5Vg109rSaCHTg2h591MbiwdgPWpuztMO6yjbMBmq2HnrzMkF5DCBsbZgOTydz 0qBER4+p870RXpQSPdDpZO0KnIF4Bm7LWMLifaCTb1EfOqhbYex8euGx2fnPr6IzAN6L AickIuNlQ5aGZAQIlEK/Gksemn/gSSDN6uvP3cmqYPtVYJF6Ip/RDFJewOvqKnulcOLe 6+nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=S35IwHzhAJvLJY2PlqCIMJeHdPITiiYllbp0hb0Ddhk=; b=K8IbCgmpefhaVQGurGC6w2icHneLQsdgieNDsF5MnLnCE8uFitl5hdpPVj576MNGZ/ GjoxVVe1uFpjM4IBZzwpuy6lVUR8Ti2X5iMX2Zv5K8UwU49HOBlk5HyVkFTwrefLHZOO 3t5eDbFMDhLpSxmZMEiUA2+BC+yuoWOhv4wEhsCpTekM6szMEKlxUOm6VO6ebxG9WJzA ZhyvfacwsuDIKqs1CDo1QYZJluEqcLZPaaO5vlx0zCVA3zSeB0kNVfZhPtF6GqVoytVr l57ftflzWiXuLtKAbnxt6hHwK2nZZ8b+BYonlNHcBIQ+jfQsBlkTPcEek9pSrscfMz/G wRsQ== X-Gm-Message-State: AOUpUlF/+fX4ynqUptOsBX5p841ITaufQaGyr4f2YqEvB7iRESd9jdph 9MOUre8Ja8nvgHnauLWNjL8uq9u5DWiPuZjYiZGReTng X-Google-Smtp-Source: AAOMgpcaWSxUcRNtUCCJwF/AbrA5giv818cniEx/Y8Gw65RTEDqsPe6qov8D2Ph1JNjIFH6jxsxrwKiDIIb58GGXzwA= X-Received: by 2002:a25:5709:: with SMTP id l9-v6mr11025576ybb.226.1533670501800; Tue, 07 Aug 2018 12:35:01 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:c713:0:0:0:0:0 with HTTP; Tue, 7 Aug 2018 12:34:41 -0700 (PDT) In-Reply-To: References: From: Carlos Pita Date: Tue, 7 Aug 2018 16:34:41 -0300 Message-ID: Subject: Re: To: 32390@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 32390 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 (-) Sorry, it's not the first condition that is failing but the second one: (not (member (python-shell-comint-end-of-output-p (ansi-color-filter-apply output)) '(nil 0)))) (ansi-color-filter-apply output) is removing the error message so that only the next input prompt remains. The entire expression evaluates to nil for error output, at least when: '(python-shell-interpreter "ipython") '(python-shell-interpreter-args "-i --simple-prompt") From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 07 15:53:11 2018 Received: (at 32390) by debbugs.gnu.org; 7 Aug 2018 19:53:11 +0000 Received: from localhost ([127.0.0.1]:43960 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fn82Z-0001n0-Kb for submit@debbugs.gnu.org; Tue, 07 Aug 2018 15:53:11 -0400 Received: from mail-yb0-f177.google.com ([209.85.213.177]:34240) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fn82Y-0001mm-Bx for 32390@debbugs.gnu.org; Tue, 07 Aug 2018 15:53:10 -0400 Received: by mail-yb0-f177.google.com with SMTP id e9-v6so7087752ybq.1 for <32390@debbugs.gnu.org>; Tue, 07 Aug 2018 12:53:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=/5nkP8H/YhMUg0iw/dWXnDQnRi7EybzV/DGnZtXHAqw=; b=cWHHRsojY74omTe8Xt0kiYnY6Wv0GZWAQMFcEMxP0erSJCgOR1B+wo2/ytEZeoZP3d +7lqlrmKw/6k1Mju537fE1bIv1cjmsz/zjTPWEFp4wpa5QjWyswFnwEHNqY33FO8IS/z m/PR5D/e1BIY3wrPw8MM1VIXjTTMuGRDzNnbGzpn4HC/kZFHbBY317iCEZhpp8sX4TK6 ZUsXuNWuUmFWgwjy1Qw4e2b6lpneFsqaQ3WB4Wr+o/f2sOwap7xDjJ63G+3u/kpXc0K3 wdPi1js3KATNK/T6U2skp201pSnBP3t5gyIf5JTEKlRvWD1tzVjrnwjxsqaPF9By0ymu hlOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=/5nkP8H/YhMUg0iw/dWXnDQnRi7EybzV/DGnZtXHAqw=; b=V2pn3yIUKgh1sep0rBrdURDzKi+blGm9JOFTpw3PcDBuiU7ay+xRzkLZqn0f7P8AY6 /bghtcQ9MbvO5e8OihBJ0kfBkRe9wk4Q7mBAizZMh0xGvuUL1R4HnVcKjHvQHPhuWE9S MdwEtQ3gcjcckAuPvGbFUqkFGxpRvkeGji/HBcNa//5qK9ln/50nGtvEmf4wx1VO1Nd+ 7AR3m0B4lO2vHmNtORlT7GndejnNx2Dlpf8oPsQyT9Bo0DBDTb2OdV4zQcpBwKnTwXr/ eldE6PxJXLaqOafC0/S0R7UzfiGZ+sWU7SuVaeKUFRqXjVgmjYQfiYyZ5pPTi3SZmTnv kvzg== X-Gm-Message-State: AOUpUlFigFruRc4oBey7ZIqxMbT775FP8SrfQCFtdGqMsWMI0dNXQSLF jwWDX6+tufLj27wRFQrrh2W8XguHHjclLzMcwNBq37hF X-Google-Smtp-Source: AA+uWPx1oSl//aqggxLMLg/iphr+0/rWr98+t5qhBBtvBSBlyaXDon3NENSknwqK9GFR63jerIXbnMn1eLsgkDBFdEg= X-Received: by 2002:a25:8682:: with SMTP id z2-v6mr374003ybk.108.1533671584505; Tue, 07 Aug 2018 12:53:04 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:c713:0:0:0:0:0 with HTTP; Tue, 7 Aug 2018 12:52:44 -0700 (PDT) In-Reply-To: References: From: Carlos Pita Date: Tue, 7 Aug 2018 16:52:44 -0300 Message-ID: Subject: Re: To: 32390@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 32390 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 (-) Why not simply: (python-shell-comint-end-of-output-p (ansi-color-filter-apply output))) ? What is the problem when just an input prompt is retrieved (that is, the 0 case in (nil 0))? From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 07 16:28:32 2018 Received: (at 32390) by debbugs.gnu.org; 7 Aug 2018 20:28:32 +0000 Received: from localhost ([127.0.0.1]:43970 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fn8al-0002gN-UR for submit@debbugs.gnu.org; Tue, 07 Aug 2018 16:28:32 -0400 Received: from mail-yb0-f177.google.com ([209.85.213.177]:37090) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fn8ai-0002g7-A9 for 32390@debbugs.gnu.org; Tue, 07 Aug 2018 16:28:28 -0400 Received: by mail-yb0-f177.google.com with SMTP id r3-v6so7120428ybo.4 for <32390@debbugs.gnu.org>; Tue, 07 Aug 2018 13:28:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=1kV4+FaJHpFsNQxGGx7e9GaEQlnCRUB9qIG8wXTiZzU=; b=oYIRudqEN3YDeVYFkZDj5J080JAjoyUSF3Lt3lFfqGQV2giCPiC4sJ6dXmtA8cL586 HMJswx7gFytoCSToFdof4M008cLLbhVdpt1lI5PbngE42N9ZYaDWnMiw1hDkTvCFnaFL tcXKSNQZ52dZPqaFaE+Y3SYe53TpuzcWCertahPAy0w1brZX3ZfA+SYoBM6/PaqFLRvv 67ebWpE5gqWFgJpqEnWnk6XLA7k01SukCHTZVTxj2yn2a5ji0XYGwogIWDdu+zUzwBsb uS0AWat5ESxaPOyCX6mFdN/XOF4DED3f4iV2XUd12Vw8jeTAwo5/4ES9AHpwVwAbUzRm lIAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=1kV4+FaJHpFsNQxGGx7e9GaEQlnCRUB9qIG8wXTiZzU=; b=EAmWgZQ/079mxGEkmkKawBipRUPkhRIPyJvbuwEIqr9Eb6+FEOL7K4i/koREWXFfMD xSVNFcRmodne9DLU7UiO4qrNHa8Q9xm2VW0iYDzjXOCESzu8HZ3pXGPRP4r7WOe6mq3E +oaNilzVRNeoy/3q88TQIZE0DumeT6lCTs+lyJUrnNoU9iKM+5vbs7FsefibAYimAalP zDyefivPy6sp5xI/FTsLEUvAxlo88vZreNK3/DNm3oqcQdUgYd0DCs1xlzNUO3bN09JC JKwHBnI/FOUfrQ69abegQnX83GU1Q7A/lg1gOoTjg1y7HlvES0eWEUugI7wcbx58oveC 8WqA== X-Gm-Message-State: AOUpUlFhC97d++sSuqwyZPF7KkbgXb2HeSgV3ou2JJJld60qVGGgGX6G wImyjdFpSYqF+5NPwmPp5SaU+vignIkrjspHFt5pZA== X-Google-Smtp-Source: AAOMgpdxjAlNg54NY5UU8chb4ZFEQ34K+biv4Vry/QckeIbDbrNP7GDmY68u7xq/bOryRZtVjoY5stUlmfeD3NJFFiM= X-Received: by 2002:a25:5709:: with SMTP id l9-v6mr11116783ybb.226.1533673702398; Tue, 07 Aug 2018 13:28:22 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:c713:0:0:0:0:0 with HTTP; Tue, 7 Aug 2018 13:28:01 -0700 (PDT) In-Reply-To: References: From: Carlos Pita Date: Tue, 7 Aug 2018 17:28:01 -0300 Message-ID: Subject: Re: To: 32390@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 32390 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 (-) The current condition is also failing for multiline input. Consider: In [154]: def f(): ...: 'ewewe ...: output is " ...:" so it's not considered just an input prompt (because of the preceding whitespace) and so the font lock buffer is wrongly cleaned up (indeed, this is the only case I'm able to figure out for which you don't want to cleanup the buffer). I think the condition should be reformulated to match any expression that ends with an input prompt excluding a continuation prompt. This would fix both problems: 1. An expression that is just an input prompt (for example, ansi filtered errors) will trigger a cleanup. 2. A continuation input prompt will not be considered the start of a new input. From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 22 23:24:53 2018 Received: (at 32390) by debbugs.gnu.org; 23 Aug 2018 03:24:53 +0000 Received: from localhost ([127.0.0.1]:58236 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fsgEt-0004O9-Pi for submit@debbugs.gnu.org; Wed, 22 Aug 2018 23:24:53 -0400 Received: from mail-it0-f50.google.com ([209.85.214.50]:35474) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fsgEr-0004Nw-TH for 32390@debbugs.gnu.org; Wed, 22 Aug 2018 23:24:50 -0400 Received: by mail-it0-f50.google.com with SMTP id 139-v6so5833252itf.0 for <32390@debbugs.gnu.org>; Wed, 22 Aug 2018 20:24:49 -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=9EnyLajyRmR+42qzc1cbUAV164+t43Q+n8wwLvD45gE=; b=EE7FWI/bCbLpgSXaJsHXsQoPf84qgXghurJBJX42wYCsb7Oz4FU+4tU+2Zx23r3tNd BrJ7s9EOYNutA2KU18ZMOjwsVFc13b/zBS6jjEpKV2W5wUF0EdPS8RyrtnBl7/1G77m1 yxqRHVZcYpH8XiUOpOP/xLRezAdv1ptX53HOHKx0WBb/3Sm3rwUbmNcDP0Thc5vbaKm3 sJtNZVjperILDt3IPCwAc+OQA4mfNxmFZ9X/fJZJfrCeGaG26w18Fqa0Sw16rZ+SXOnu hTdxW1Y2NGn/bWgQxEbYlkT0qt32wGPKEX3uymDDdgbAcvV/onn5of0Wbilg9nGye31d zH+Q== 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=9EnyLajyRmR+42qzc1cbUAV164+t43Q+n8wwLvD45gE=; b=enzxSOm2CrmWEgUFAt2kW62SfuEFlPWKI819S1noLh9ysPSbiw5n+JQdEP9B8Li15o n8DaHayS9HbpqzM+nvrbs5K/lUtgesj3pZX8Yy0Rcp1KUHnWBVWuX4scXfbsabs60Wdx tB39TMBxmbkYS0AAeyBao8NlYxKkh8wkXxPcmf7CqIpTpO9A0zWjLGZjowCfJQpkP/WX ty3aVvmJSEldKayf8NEaSCa2Zmg7CNa39fV3KRsXqTIuiZ3/vknQUNs+LYz8TFmVXJ+C 8XfM/mEF7O1LzS+XSsYGUUhd4RpN/Oq/cxm5RSDeEHYtPIyjuABQUWhSlIu0fegy8rZ6 FrWQ== X-Gm-Message-State: AOUpUlGJ53iyu5Vh591lzBvlkw0VtJPTWNrKZB3Io5Wq2hl2y2Hgbnlm rK/DjwePXCWEP3rcvdTSEMgFCPn8 X-Google-Smtp-Source: AA+uWPx+4fY2zLOSPFuy7qdSGj/u6Ix0OYN7e/zmTW9miw/4zu40zJgWPvAYyUXzVkSVzDCn5MhlXQ== X-Received: by 2002:a02:212f:: with SMTP id e47-v6mr13094486jaa.121.1534994684337; Wed, 22 Aug 2018 20:24:44 -0700 (PDT) Received: from zebian (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.googlemail.com with ESMTPSA id w64-v6sm1675079ita.7.2018.08.22.20.24.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 22 Aug 2018 20:24:43 -0700 (PDT) From: Noam Postavsky To: Carlos Pita Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent References: <87sh3q1075.fsf@gmail.com> Date: Wed, 22 Aug 2018 23:24:41 -0400 In-Reply-To: <87sh3q1075.fsf@gmail.com> (Carlos Pita's message of "Tue, 07 Aug 2018 15:49:34 -0300") Message-ID: <87woshvk7a.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) --=-=-= Content-Type: text/plain Carlos Pita writes: > font-locking gets often confused because of unclosed string delimiters. > For example, type " and then press return, start typing in the new input > prompt and the input will be identified as a docstring. I can't reproduce this. The next input looks normal to me. --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=bug-32390-run-python-unclosed-string.png Content-Transfer-Encoding: base64 Content-Description: screenshot of bug reproduction attempt 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 QAIkEA4CRXw+3/z586HKyfyOkGnfvr1l1UlJSZbpTCQBEiABEiABEiABlcDJkyfVRKTAoyjAERTL JjGRBEiABEiABEjAAwQK8BoUD9BnE0iABEiABEiABCwJMIJiiYWJJEACJEACJEAC+UmAEZT8pM+6 SYAESIAESIAELAkwgmKJhYkkQAIkQAIkQAL5SYARlPykz7pJgARIgARIgAQsCTCCYomFiSRAAiRA AiRAAvlJgBGU/KTPukmABEiABEiABCwJMIJiiYWJJEACJEACJEAC+UmAEZT8pM+6SYAESIAESIAE LAkwgmKJhYkkQAIkQAIkQAL5SYARlPykz7pJgARIgARIgAQsCTCCYomFiSRAAiRAAiRAAvlJIPwR lPffj+vYMS4lxf/vhhvivv8+P5un1l2kSJz6TxWLzZQiVi9p6vTp05s1a1aiRAn8/fLLL2U6CoW3 OU4UmmSMhofXmNjR5gRL7FhrsiTSxjscAJE2Q8PfoYUaDcwiARIIL4EwR1AefzzuzTfjXn01LjU1 btmyuOTkuD59wmBweO+wPl+c6V8YTIyWCp/yEjWvWrVqzJgxEydOPHHixH//+9977rnnl19+iZZR geuRVgcWpUQIBPLxBq+3OsQBEIV2hWihvvnMJQEScEGgCL6W8+fPR8kpcxcN7dPNyd/27dtb1pSU lFSpUtzKlXG1al3M/89/4h5+2FI8iEQ4KHApwvIKo6qw2BOUElym0V+WRf7617927tz5jjvuELmv v/46XBb4K/ioKWWpKmBiKApDKRvQMArEPl53Fror5W48RLMudxayFAl4icDJkyctmwOPIswRlKys uPj4S+qS3gm8mtmzL2b99FNcixZ5H+E0LFgQ1717XOnScXBxBg+OO3z4YpYIn8h5GaP2GTPirrgi rkQJf6nhw+PS0vIycZu+/faLgrfdFjdypCUBi0RUdORI3E03xZUr51f74osXZeyyXnghrl69uOLF /X+N8qKkXakLubgehmEKZvHixT179pS29urVa9GiRRbNc5ZUq1atPXv2mGR3795dp04dkbhgwYLu 3buXLl26UqVKgwcPPiw7LNcfEi9nVeVJzZgxA45vyZIla9eu/cYbbzgpe+TIkVGjRtWrVy8xMTE5 Oblv376zZs2SBb/44ovLL78cCmHz22+/bVSIuq644grMhcH44cOHp10YNzDbrl2aLGi2a7K+1Acf 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 OXP+85//PPLIIyAvLJE9go/qkJPWBkVYj27lypUTJ05EBFHVuWTJkv/+97/79++vUaPGyJEjO3Xq lI+4pk6dClOfe+4506gwflSboDF46dKlL7/88sGDBxFDDaqgnU49Z7tSQaXL4VGyZMlq1ardcMMN 1113XZEiRYJSYgIYlrY7NAADfvr06Xv37oV869atBwwY0K5dO7x3gS4S3xRYcubMmffffx+PTRw9 erR69erDhg3r3bu3w9a5EzO1XdOugPofeOCBDh06DB48OKAkBQoKAUcOirvGPPHEE61atfrDH/6A 4llZWYjYrFu37h//+Ac+arLc1aUphfsfvmmDBg2CDL51n3zyyYEDB5566ilZBFeo48ePv/nmm5Mm TcrIyBgxYoRGm8wSX6RIX90CGu/E1JiVWbNmTe3atVevXi0dFMnTeJ0S9muyQmng5MmT77zzzvvu u8+kZMeOHc8+++yjjz7asmXLtWvX/utf/3rxxRdhbSh1uS6Lr89nn30GG0waBBMXtzfoefXVV++/ /37cIIsWLUhhVNHks2fPbtq06YUXXgCZ/v37OwHrjpITzQ5l3nvvvRUrVowZM6Zu3bqHDx/+4IMP xo4d6/oCovk6aLL0pgIm7vGXX345xkapUqW+/vpr/H6ItINiOaSRqF4B9MYjF5duXDDh9iUkRPC+ FtAMCoSRQASvTQ8//DCiEfgLc8X7hx56SJiuyQpj24Sqe+65Jzs7+69//Ss+Dh8+/Pz583fffbep luTk5L/85S9I/O6778JuQCgKnRgfiv78LQsHBT/R8DcfzYDb0aZNG9UA/NK96aab8ER98eLFccnG z7LPP/9cFYtOys8//1ypUqXGjRuHsTqsPEPrwuiduL7XumgUIiht27bF9eSrr75yUTxfimBEjRs3 rkmTJojX1qxZE9fA22+/PV8ssat0xowZderUwUWyQoUKiYmJAwcOhL9iJxyu9DAOG3xB8DVBoDFc tlFPvhMIm6dpGVEwRl9NkVhNViSgiOrw1y4gXK5cOdR77NgxUfsdd9yxdetW/Nz54x//iIDn448/ jjAMfvQg1+jay/fGrxki5/iIYAx+Kt177724JAmds2bNmjJlCoLql1122c0339y3b1+RLpSIitRS kAlofCSIRVonfkSisWj7K6+8gveVK1eOdI1B6Ue0Dz/FZJGOHTsi7BeUhjAK//TTT7169XKuEFRf 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 IiACIhAi8AunOtdB7sJPvwAAAABJRU5ErkJggg== --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 23 22:37:38 2018 Received: (at control) by debbugs.gnu.org; 24 Aug 2018 02:37:38 +0000 Received: from localhost ([127.0.0.1]:59204 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ft1yk-0006qH-Gp for submit@debbugs.gnu.org; Thu, 23 Aug 2018 22:37:38 -0400 Received: from mail-it0-f49.google.com ([209.85.214.49]:38469) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ft1yj-0006q6-E5 for control@debbugs.gnu.org; Thu, 23 Aug 2018 22:37:37 -0400 Received: by mail-it0-f49.google.com with SMTP id p129-v6so246957ite.3 for ; Thu, 23 Aug 2018 19:37:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=5u7vnR21ouqPDxTd0IQ7/cvDWST+55OG4GcctcgENE0=; b=sxP5SPpAQsf9UfbJ+nbC75cDCUkj9xH5M88OAZVdusJNkgB+iyHEH1QFhrLfQACsD4 Kuin9NUWU34Jz7X42UvPjpfPAMCMAVXeOs9Ks0qnCgQ4CYlM2I10k5r3mNJJs4Ng+XWs 9CFYW5FnvYFLqvNUHh9RXNAhYWi0AQ1lhkHW5uBF/MoAvgh++srt8frdb2ivowZFBgoW yiuGKk9L7d6CTIk0tE0O0G8g8wV/i0/L0Y8iCVxQvfZNQU7lW/7HcQ7Crj0rgP+WCmBP ZoYV/WOL+LMOr+TaiVFI0eRUWRS7Ps3r6iWqUJgMMryyXpMQBKmN2LqfqEDEoafk1YLh DJ2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=5u7vnR21ouqPDxTd0IQ7/cvDWST+55OG4GcctcgENE0=; b=PkET8+mm6GOlMQd0ohheGHb6SqBQQUUUdm+6d/SX2wTVaSx/1N36xlfxRBRGw3koOY o/emz+7PWxIaboqzLbI4SQ2fDI9toY8B5jFGwapMtRMYkzFcoKb75JK5gL/1S7uh2daK 8NWJmgNu5xK6CKd9JPpzy66Lp1JD8sbzDw+MwZyhbDc+EwWjBJtdElGgERJpUxlq8J+B tlNWMo/8I5Q36Xft4xMH39CWdFPNe2DpxZZE+aWdFMEfbjQ5tBw0HZ4K1ETvxjo29IAG 4b0NioG3+6K02j1kOJ9MkmhTyxP9CmJv/1fC3dihPvdoeCHgtumAwVsPHEcO2ZRJ2lQM Qpeg== X-Gm-Message-State: APzg51AxHIO2eXmdwXglRRWI3d0ZJujH96L40qSUGDCWnA7db+Pkp1Vb /FGmMCZi27bn22587L+EFf2uZcEi X-Google-Smtp-Source: ANB0VdYus4yUEzTv5j7hyLAS6hanTauePPguUxSd6rJCizhL9EWvs7g0NgZWWGnF9ahTAwKzMGMzXA== X-Received: by 2002:a24:e00e:: with SMTP id c14-v6mr65553ith.108.1535078251852; Thu, 23 Aug 2018 19:37:31 -0700 (PDT) Received: from zebian (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.googlemail.com with ESMTPSA id y23-v6sm818697iol.60.2018.08.23.19.37.31 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 23 Aug 2018 19:37:31 -0700 (PDT) From: Noam Postavsky To: control@debbugs.gnu.org Subject: control message for bug #32390 Date: Thu, 23 Aug 2018 22:37:30 -0400 Message-ID: <87pny8v6ad.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: control 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 (-) tags 32390 + unreproducible quit From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 31 07:57:26 2018 Received: (at 32390) by debbugs.gnu.org; 31 Aug 2018 11:57:26 +0000 Received: from localhost ([127.0.0.1]:39840 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvi3K-00010Y-K9 for submit@debbugs.gnu.org; Fri, 31 Aug 2018 07:57:26 -0400 Received: from mail-yb1-f179.google.com ([209.85.219.179]:40738) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvi3J-00010I-47 for 32390@debbugs.gnu.org; Fri, 31 Aug 2018 07:57:25 -0400 Received: by mail-yb1-f179.google.com with SMTP id f4-v6so758966ybp.7 for <32390@debbugs.gnu.org>; Fri, 31 Aug 2018 04:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=32CLdVR6Rxm7xaP9/FiuAYtmEmStidTP294lPuunCy4=; b=j0PKo8wCGBA3C+IyaycdnPPNLCl2ul7SxjeaaoXUopOOLF0TKQh8lNU6ZzxqI1wEyB fAFTCxajmGTrbQYefJvrGAkFvkEz5KBIEh7iTcAXL9CKxHdJqvEytNWSAxY69Ms1B97M yrvVdsyec8dWBCK32QZ0KdeOfo/8/8XcI+n0L4C4iPFb4lVS3XwOzB2vdaGJZA8taK6w xpqlzZ+usiAY/L32eN7zJZOk4D6eIp0ocokTBxu4W2GRL6MPRvzRsqVtv6ea20RR6TZ2 w81SU8485bv//LcoAzuoFTPifO7iKK0M8hqRBRlEJ1FqGtoNQBeZU5ckoeRkwHeAw+bc KZcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=32CLdVR6Rxm7xaP9/FiuAYtmEmStidTP294lPuunCy4=; b=XNwh6kaFOzESH2Rm8IGEc8v1SyGJA1d7XxOus7JUPRqNfDyuCp+xVSClWVesi8C7Z2 kInmQgiPh6T/dZ7ldY6HRsC23NssQ3M/7GkU+UwGc0ZcAVFeTiyo6ewecnpz0OKFOR5c Kv1zQHBhXuBJ85+MA/lT3lL81mbY4/SmvxkmAw6U8K8bYYecr3bzD9gmds1QlK/+tB3I XtmukA1up1+1mdKHxoNJt5cuRuUH9j37YkHkQFBjo4xocJgmGXRFZAEanXbhEJfP1bsP bqDQDfIiBAbg05GUjT0YGOvMSZMpokm0tr0l1qUXi+dZ5ULlLcGJC65OgRTkkqB0V2WN lPmg== X-Gm-Message-State: APzg51Azl6QZxiiFB7On9z0tqit+lqeE0Bj8pOz4y/LG0QPlktWzfaOh qUW4n9ErnzKTRlkqow7G/tWvokPl+tYfg9N4J5w= X-Google-Smtp-Source: ANB0VdYgm5Id2z6JkzDXbYbqvpKjTHbF7N56ViBZpw6R/J3hlGHGVME1SEAa+9j9OZf01RrjyKnYHAFCPH9vTzrqBR4= X-Received: by 2002:a25:c603:: with SMTP id k3-v6mr3087234ybf.446.1535716639142; Fri, 31 Aug 2018 04:57:19 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:3406:0:0:0:0:0 with HTTP; Fri, 31 Aug 2018 04:56:58 -0700 (PDT) In-Reply-To: <87woshvk7a.fsf@gmail.com> References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> From: Carlos Pita Date: Fri, 31 Aug 2018 08:56:58 -0300 Message-ID: Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent To: Noam Postavsky Content-Type: multipart/mixed; boundary="000000000000c09d1b0574b9e431" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) --000000000000c09d1b0574b9e431 Content-Type: text/plain; charset="UTF-8" My report was for ipython. I've attached a screenshot showing the problem. The way I'm fixing this issue at the moment is by patching python-shell-font-lock-comint-output-filter-function like this: (defun python-shell-font-lock-comint-output-filter-function (output) "Clean up the font-lock buffer after any OUTPUT." (if (and (python-shell-comint-end-of-output-p (ansi-color-filter-apply output)) (not (string-match "\\.\\.\\.: $" output))) ;; If output is other than an input prompt then "real" output has ;; been received and the font-lock buffer must be cleaned up. (python-shell-font-lock-cleanup-buffer) ;; Otherwise just add a newline. (python-shell-font-lock-with-font-lock-buffer (goto-char (point-max)) (newline))) output) --000000000000c09d1b0574b9e431 Content-Type: image/png; name="Screenshot_2018-08-31_08:54:00.png" Content-Disposition: attachment; filename="Screenshot_2018-08-31_08:54:00.png" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jlhxz6s91 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 /wfB1jtcZhSGrAAAAABJRU5ErkJggg== --000000000000c09d1b0574b9e431-- From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 31 23:01:11 2018 Received: (at 32390) by debbugs.gnu.org; 1 Sep 2018 03:01:11 +0000 Received: from localhost ([127.0.0.1]:41139 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvw9v-00009s-4c for submit@debbugs.gnu.org; Fri, 31 Aug 2018 23:01:11 -0400 Received: from mail-it0-f52.google.com ([209.85.214.52]:37648) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fvw9t-00009e-3X for 32390@debbugs.gnu.org; Fri, 31 Aug 2018 23:01:09 -0400 Received: by mail-it0-f52.google.com with SMTP id h20-v6so9545386itf.2 for <32390@debbugs.gnu.org>; Fri, 31 Aug 2018 20:01:09 -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=/bWoCSFx0+Uk45KMECI8XfYzmm7gepcnwaN6bJSMESM=; b=OZOpoe4uC0Elj75Uk2Z6XlGq+Bc0vW3bZ3s4n9dS7AixZGq4VTw3RAFK8lm3H9QbF5 enxhl1/pb5nGBmPUCtLXHxYLk1XzXbFyYTQafoWBuvHUq2zdEHO7lR5ClLKpWJfo8/G0 asYmjnuzgFiEeLLuwPCatlzGKaNR9lmiOa4Fxg+PjKGJqhKry0KfNoVsmLb11DqGIKSJ T8Faz805Dvj32nvrEjJRc61KzuYoaS7DFuWz3X/lFjVGopq+CNlmONl5og9BFdjEYXnT vB7/LmmK79WMFg8PSWogPCPegiWLkFbKz2HZ6JXlGt4ADsUMH1jRSCBqiF2a938Cq9jP w9sw== 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=/bWoCSFx0+Uk45KMECI8XfYzmm7gepcnwaN6bJSMESM=; b=VLG2t5TJWwqH3jGbFAfYz/RJsfg/aMsossBc7Vm/S0Obw1d6Du79gj62GcvbBH4R+y q6ZHwxTp6Fp8j3uYHSLn0uTThYkeSaluzaiCzmtvCvX010eJ7a7ZgnfZhvExuGqkuBYW J6S9NVEvzJLgTeShkV+Nk6wL8JWLSnamci5VFWfWWGi+OeO/DmxI8HoFSQ1oWCvDcYDD sCqpH55CDQ75tnlqeN5epac8XHKhh7GAUCc9M56RQD8DDHEVad49KPAur0jHlBRFZdoZ o2zh4vfXNefsV20V3QJ0nD+/PJ4mEzw57gbOhHc5Ae3XJMjBQs/mrUK+c4i0Dp0Vjj7d KufA== X-Gm-Message-State: APzg51An0AY3k3SYXg9kb6dJjUi73C03VCFCtKItskbnKTpWkeUMmttX 2BnhWuP0JQHGdAfBeGJ6zc7lt/O8 X-Google-Smtp-Source: ANB0VdZAWOW43HtAMbR+DF3cY/hwNDqXjYNmVP6S4sFpKsEPIlUiWEyMFzHYlLbWpUE58iLDFahPCw== X-Received: by 2002:a24:98d6:: with SMTP id n205-v6mr7253924itd.44.1535770863390; Fri, 31 Aug 2018 20:01:03 -0700 (PDT) Received: from zebian (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.googlemail.com with ESMTPSA id q19-v6sm3124190ith.1.2018.08.31.20.01.02 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 31 Aug 2018 20:01:02 -0700 (PDT) From: Noam Postavsky To: Carlos Pita Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> Date: Fri, 31 Aug 2018 23:01:01 -0400 In-Reply-To: (Carlos Pita's message of "Fri, 31 Aug 2018 08:56:58 -0300") Message-ID: <87va7prkeq.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) --=-=-= Content-Type: text/plain Carlos Pita writes: > My report was for ipython. I've attached a screenshot showing the problem. I still can't reproduce. What is your ipython version (mine is 5.1.0)? --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=bug-32390-run-ipython-unclosed-string.png Content-Transfer-Encoding: base64 Content-Description: screenshot of (failed) bug reproduction attempt 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 SIAESIAEgkWgPBYCcBuN5p2851KUad26tam61atXRzrMBWOueDSfSJffRQGU9EgxFWtaV21I1M3L izOaOJomhJ4OFRDCP/zww5EjRx45cqSwsFAuoCBAxGMxRaaYxo6IwuvXr582bRrir3Nycq655poH Hnjg6aefRqyxFQGRbvoEPLER6fSW/D1v5p76PD//fFFknbB6d1e8eWilyrVsPFgQ6LGPyZiSNPPi 3rdys08XVq0T1qx/BMJ3jOodW523deKF7OOFRYXlnGyGOnbsGOihywisQVzRCy+8cMcdd9iuQ9mC Mh0Uoac6NJenjQkToYZa3pjy5ptvYgPU4cOH69evjy99+/bNzc1Vq2ia1g8uc0mABEiABBwSQBiD aUnYIcVmjXObBoL0Zo1pS34maqwTvWSfK+rFMreMEzh06BCCkffu3UuzpozPBHafBEggKATszRqv 1AqKWSM0dO5ckU4j51W8gsDCZY1Aly5dsPaEEKgzZ84MHz78tttu+/Of/0yzpqxNA/aXBEigNBDQ mDWOAz6D2g8fTBMfqgS1i2y8tBPAwwOxiAYPDRah8JS/MWPGlHaNqR8JkAAJlD0CoWHWlL1xYY9L HQHEP+FPVcs0WEctxhQSIAESIIEAECgOd8VmnAA0xiZIgARIgARIgARIoCQIiAeVXTJrYNPAtV4S bVAmCZAACZAACZAACQSAAB73ircr+vVokwBoySZIgARIgARIgARIwCEBR7E1eLQ/HjdilKimaNrT FNZkaQT6lqW2hRQhqlKlSnBederUqWfPnhUqOHqVkqkOQqAHK9OS3iaqynsroVSVl+TxsoI6der8 +te/7tWrVwm9uECDbtu2be+///4333yDBxHVq1cPbwv/zW9+I0Ehd9asWXBklsSAejscCxcuhD7/ +Mc/jBUlRpHolZ54UPLUqVNPnbr0dlivKlppruFsVcXbdNnfypUr42lPDz74IKKd/IltCoDO3vbR rfJ45/z//vc/PCwKAvGoT8xtPCwK333osnGaqRcCqbC3s+j8+fNvvfUWnpqGrYV169bFg6Duvvtu t7pvKsej75p+mVY3JmLHQJs2beLj421LskDgCTgya3xTa+LEiTfffPP999+P6niWLrxDO3fufOaZ Z/BTk+VbW5paeMwdjpkePXqgDI6fd999F69anDx5sqyCoxFvk54xY8brr7+Oh+PhPU0aaTJLHBLe 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 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 05 11:39:12 2018 Received: (at 32390) by debbugs.gnu.org; 5 Sep 2018 15:39:12 +0000 Received: from localhost ([127.0.0.1]:47336 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fxZtf-0007UV-Gs for submit@debbugs.gnu.org; Wed, 05 Sep 2018 11:39:11 -0400 Received: from mail-yw1-f54.google.com ([209.85.161.54]:37632) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fxZtd-0007UF-7y for 32390@debbugs.gnu.org; Wed, 05 Sep 2018 11:39:09 -0400 Received: by mail-yw1-f54.google.com with SMTP id x83-v6so2813457ywd.4 for <32390@debbugs.gnu.org>; Wed, 05 Sep 2018 08:39:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=OL5pHr54+zZqI16BLeNwWXurA8RQyex6bYr0bb5PUFc=; b=OPPs4K28DLK3P6wFiDzC5iobYUGEBYZvIlpkVDATgH5Q4dGwc7dMheGR8zJK1gdJk2 23R/C8PgMfJkT78jV1lTSCFBviN4dap6Bfqoi040JnM2C9486lum7MbSl9fAPAgAbq1e 6vBoDS2urUZmSMdH/9e+iDp9l8KIL7dgfX1/Td79puBy2Cxzl/c+5q1jK4jckc8ZlW0X qMm1zGo5AwyMfVAe2/o5usnlN9oDeVYJ3ojtRyepmhDPrvwu+qZG9mc8CrD4EAv99epo dnHYEHrlkqcj+LLX1mjpAleO0b1H4E/OyT6PSWdCOtEoJKcuzdFqqV5+Ib0fsGxcimMh g/yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=OL5pHr54+zZqI16BLeNwWXurA8RQyex6bYr0bb5PUFc=; b=OL4Mzb3Uk+WAguiQFdZYPnvjlFaZS/de9Hbdn4MaczjVvut9LM75cVGK1eINBvD5/z MvYF5oHOn386JjUvm8rSqpWUQoooqVh66f6uA4ioC3K97f5qoEzX9XYTssTCCGrDPkhC yL17ID+/eY9UY2J0hkmxSyFSoiwbNzF0yrFVRy29h3xLBk5N5OewJ1e2eMeZNOo+1zwb pcyUTkTlP2XOsqww+7SpPCs+lpGlRS8C4wADoogNcyZNwjgDi8E1MQXa9WAQqEEpjCIc owPe2NP1s3PRbplL+5umI20XXnohkpMTeyHpywzsvlY5Mburv7MnZzUd0UHhHs7i8lne HV8A== X-Gm-Message-State: APzg51DvJSA72AaVzld1hB/iyRzCT/SS4Giav/iG9a/uBJ1BWcEtOeBz UbhLC5ucUtx878VPT8ipqiXxc33jaLgN7sNg+Sc= X-Google-Smtp-Source: ANB0VdYF2wuk1JNodHhJVSXo8fxigLJWxmtUTaunG0Yah+zyPxtOYGqdpY/RwmGgn6czwWTxJY5lPHU3b0KUo8tqyJ8= X-Received: by 2002:a0d:c343:: with SMTP id f64-v6mr21439075ywd.1.1536161943078; Wed, 05 Sep 2018 08:39:03 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:d743:0:0:0:0:0 with HTTP; Wed, 5 Sep 2018 08:38:42 -0700 (PDT) In-Reply-To: <87va7prkeq.fsf@gmail.com> References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> From: Carlos Pita Date: Wed, 5 Sep 2018 12:38:42 -0300 Message-ID: Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent To: Noam Postavsky Content-Type: multipart/mixed; boundary="000000000000ef9fd30575219227" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) --000000000000ef9fd30575219227 Content-Type: text/plain; charset="UTF-8" Please, look at the version information in the attached screenshot. My shell config is: '(python-shell-interpreter "ipython") '(python-shell-interpreter-args "-i --simple-prompt") --000000000000ef9fd30575219227 Content-Type: image/png; name="Screenshot_2018-09-05_12:38:24.png" Content-Disposition: attachment; filename="Screenshot_2018-09-05_12:38:24.png" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jlpb558j1 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 9Hc9yjZgAAAAAElFTkSuQmCC --000000000000ef9fd30575219227-- From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 05 22:27:35 2018 Received: (at 32390) by debbugs.gnu.org; 6 Sep 2018 02:27:35 +0000 Received: from localhost ([127.0.0.1]:47542 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fxk19-0008LK-F3 for submit@debbugs.gnu.org; Wed, 05 Sep 2018 22:27:35 -0400 Received: from mail-qk1-f175.google.com ([209.85.222.175]:41891) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fxk17-0008L2-0t; Wed, 05 Sep 2018 22:27:33 -0400 Received: by mail-qk1-f175.google.com with SMTP id h138-v6so6337028qke.8; Wed, 05 Sep 2018 19:27:32 -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=7Nf4IPvpz+u5prmy+UyqAgS7ZFex27F9Mm8qr4j8t8E=; b=a4QHGkgLxS9PzPSnqF8QSxZZdqyM2sztuIFcBkZZEaV+bqL2EkDlfO1Vq5tuCB76Qs v+uaFMoHO3Q+08NkeKrLVSRIyrixxeQ5aezjA/Upat+OePO04jozS/BBHKqKed5zzSOE 69TmRkwXxZTiPbljdXRkJP8wzUcilk5xSVVeMv6SUpBz0jmJ2FSFPGrckFnEs04QZt11 ORkaHBJeNAgGNhPxZBM0Ac85IUzNTDG+CYn5k3Z92em3uopdOKm6EPP+BkO1sN0WVn6l eUGLsQUCIk6dQR46lVLsuMuNj/JIsizjI3mES1oboUElFObwKV8poHMgYMzn4IxZ7Qky +2tQ== 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=7Nf4IPvpz+u5prmy+UyqAgS7ZFex27F9Mm8qr4j8t8E=; b=oh9r5g1PYh0VaaKylaZ9sDXbRJjVLoVJiUMWuu0xBbyJS5WUUAX1kLIPhinhaYRrKy IUwpYVwTA8/icAU1CpqG2g36OmKE6SMYaALESt6n8y9euxfTybULtdNOs085Thiz/8hh 8xlhOY8pF1jEK5rEdmcasnYGsPN51jx1JL0bSFI8BrZjcbuZGoIb+4XIAmkovSv1myga ci7NcWu1HFixOXo8uUn34LsHc+oeHxDAqOtzCo3DAHRmxJgvCSQYH2VSK2rO2FBRvpy4 PFOyH2meyCg0iLYizQ3CxA3YdNjUUitE2mRWl4bYN4Beq1dES/mGBQicfwxUwwbWAxUs 4KaQ== X-Gm-Message-State: APzg51BO54wm+WSxmsMBxaq6RsTHBQwbUBWiSIzhQ1dkqWCPaAxOi3TR Oj0wBz+sL2AmDmTwjL3Mre6iO4su X-Google-Smtp-Source: ANB0Vdatbqn3eqWAvxXTPbn70Y+Ox8cxxfRnVz5F59VjnIfT9ighm15E5T3El5yEZIOupw2tF/HEGQ== X-Received: by 2002:a37:7401:: with SMTP id p1-v6mr413908qkc.154.1536200847413; Wed, 05 Sep 2018 19:27:27 -0700 (PDT) Received: from zebian (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.googlemail.com with ESMTPSA id 187-v6sm2154253qki.19.2018.09.05.19.27.25 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 05 Sep 2018 19:27:26 -0700 (PDT) From: Noam Postavsky To: Carlos Pita Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> Date: Wed, 05 Sep 2018 22:27:25 -0400 In-Reply-To: (Carlos Pita's message of "Wed, 5 Sep 2018 12:38:42 -0300") Message-ID: <877ejzgy2a.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) retitle 32390 [ipython 6.x] unmatched quotes break fontification in run-python tags 32390 = confirmed quit Carlos Pita writes: > Please, look at the version information in the attached screenshot. Aha, ipython 6.x strikes again. > My shell config is: > > '(python-shell-interpreter "ipython") > '(python-shell-interpreter-args "-i --simple-prompt") I can reproduce it when running with ipython 6.x, although it seems to only happen the first time. If enter 'x = "' again, then it works as expected. From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 05 22:32:13 2018 Received: (at 32390) by debbugs.gnu.org; 6 Sep 2018 02:32:13 +0000 Received: from localhost ([127.0.0.1]:47551 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fxk5d-0001YH-4M for submit@debbugs.gnu.org; Wed, 05 Sep 2018 22:32:13 -0400 Received: from mail-qk1-f169.google.com ([209.85.222.169]:33084) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fxk5b-0001U2-Mr for 32390@debbugs.gnu.org; Wed, 05 Sep 2018 22:32:11 -0400 Received: by mail-qk1-f169.google.com with SMTP id z78-v6so6357039qka.0 for <32390@debbugs.gnu.org>; Wed, 05 Sep 2018 19:32:11 -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=Ayy+U5VzrjkWe0q7LjMRWTXwOw5RG8PBoL36fQW0GxI=; b=KhUwqm2dtkCgZiSbGElXaykTDjYaG7Y0Ow2Th6QLIsNXzu4stnssphYRyv0rXul4G0 AResS6dP1IDP7HjrBOcrKMF+4UgHa/NweUeGe/d3hfIrjsutnpgHmNGJnB+mBo1vw2qL KcvXFtRe2gOG+80AKG8JhpcjsSYVpdaMKxnhdbr8nA9wK865YazC37e3xorMrhxalDVd TEWXqtmILofp1aPEYr3RQ/5/fFluvc8HkZ0pcP1niux2ZIN5jew3HKYC/WNeVf5GQrD9 TBcat2hjUq69h+n+aABTNf9ZP/vz8P0Uw9xUhN6yCXvu0YkH0vedQitc0HpAu/ehctJ3 XvXw== 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=Ayy+U5VzrjkWe0q7LjMRWTXwOw5RG8PBoL36fQW0GxI=; b=HeLWaP/j+39R/bzqE/ITlrZ77knDdRuQO9uJUIjN5WnnXgBQnvLltZbDSx41tZRR6D itpftES9eZ6ZMjRRC4hF55yLrMkfYy2bB+DkYkQnR5dYrWZtAmU+uWnSrhElLlYqgqdn 1IZe1JK9eej6OIxKCtyetj+E8vCew89mWNnlMHols7OMVmHEhj0WGKGoQv8B5fFoEq3t x7jUIy4Trt2W0heeNgJVt9sU5eEFoXsGxCPE70K5hSrG3lwymfPwp3aLIR2aucXNi6tQ 4cRJlGDl2+AeiJPz92PPpf665h5rc9BmdHT0WELWhzlPnAmXgeM/PTHVZ1W66tEEVtAz 8gZQ== X-Gm-Message-State: APzg51DYiRJjd7KC2bsxkmL2C0HFuKdHXqNAgdoS/SlusrQpQW50GXNL cNh779Vj0t+EAbAcUlBji8IHzY+u X-Google-Smtp-Source: ANB0VdbEW2gtCn6dkuopGwEKxnzB1x8OJkvLx+Zqh8yJvhmQUWzPUK1RDUHlXzDu7mD17xeja4uSOQ== X-Received: by 2002:a37:8ac5:: with SMTP id m188-v6mr403756qkd.297.1536201126256; Wed, 05 Sep 2018 19:32:06 -0700 (PDT) Received: from zebian (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.googlemail.com with ESMTPSA id p18-v6sm2493227qtp.3.2018.09.05.19.32.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 05 Sep 2018 19:32:05 -0700 (PDT) From: Noam Postavsky To: Carlos Pita Subject: Re: bug#32390: [ipython 6.x] unmatched quotes break fontification in run-python References: Date: Wed, 05 Sep 2018 22:32:04 -0400 In-Reply-To: (Carlos Pita's message of "Tue, 7 Aug 2018 16:52:44 -0300") Message-ID: <8736ungxuj.fsf_-_@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) Carlos Pita writes: > Why not simply: > > (python-shell-comint-end-of-output-p > (ansi-color-filter-apply output))) > > ? > > What is the problem when just an input prompt is retrieved (that is, > the 0 case in (nil 0))? I guess that's the "not just a prompt" in the comment: ;; Is end of output and is not just a prompt. But it seems that python.el is assuming a certain chunking of output from the subprocess, which is really not a safe assumptiong. And ipython 6 breaks it. > The current condition is also failing for multiline input. Consider: > > > In [154]: def f(): > ...: 'ewewe > ...: > > output is " ...:" so it's not considered just an input prompt > (because of the preceding whitespace) and so the font lock buffer is > wrongly cleaned up (indeed, this is the only case I'm able to figure > out for which you don't want to cleanup the buffer). > > I think the condition should be reformulated to match any expression > that ends with an input prompt excluding a continuation prompt. This > would fix both problems: > > 1. An expression that is just an input prompt (for example, ansi > filtered errors) will trigger a cleanup. > 2. A continuation input prompt will not be considered the start of > a new input. This sounds quite sensible to me. From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 12 12:57:04 2018 Received: (at 32390) by debbugs.gnu.org; 12 Sep 2018 16:57:04 +0000 Received: from localhost ([127.0.0.1]:38416 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g08Rs-0003S6-3l for submit@debbugs.gnu.org; Wed, 12 Sep 2018 12:57:04 -0400 Received: from mail-yb1-f174.google.com ([209.85.219.174]:35235) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g08Rq-0003RZ-HO for 32390@debbugs.gnu.org; Wed, 12 Sep 2018 12:57:02 -0400 Received: by mail-yb1-f174.google.com with SMTP id o17-v6so2008212yba.2 for <32390@debbugs.gnu.org>; Wed, 12 Sep 2018 09:57:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3uguhHkLZune7ZYBENKmYVs5Qn3cQsMlXG6gOMvnuQM=; b=a0XD39xmKxnTSMrEU89ycY96G0GEWpvB2FDW6KHOQ5FJ2/kJQqb1fRIc8N4ODk4hhz +uBGB8wpzDJDeZBpxnpZOEnOlTIU8fFhlGtLHYZeTwOjY976pn2WVDhwp1TzCW7/ojN0 TcpBnPaTAKXnKtqO74bIR5BssJMXp1VMGHEWn4eeYKCRhQQVUpyPrfJ6BmUiMZVlOym8 s+ZWmZayMpXw/W3Ygtaj+t4V2wW9SeyavSwFukZB3W/CrYshvvBM6/KD+g4mzSudar83 eFpjYMlF//lHhRP9VDj6kOsBkHRh7F9yJAi1rqIRYO/p5f0bkV7LIn1HoMOe0qz/NG26 EVcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3uguhHkLZune7ZYBENKmYVs5Qn3cQsMlXG6gOMvnuQM=; b=Djp696JH+QwkgImMU7cY6OiceheYqREwlYwVIFxq9SgRFDrd/Z4oRlCaxfuZcATAMs W6pngg9MVLMUWWV2UZKKaNQxNfNlIsFi43jQ5ryKbgABrdRcX2H2pqnRiwN0yKfQRjEU N9vv5MAbTrkPej8fDemFOym/TRDf6ssRn26IUTqr0pWpRfksC/gLyqtlOEwnLWI72nXN Y+DWkgmg5nJVxIqloKqnwbmtWKYc4R45wedTMgQMqAW08iX65MoKRPj4Khki9GwOHiXR bE5xF+4IzHS03t/uBI8/V9ZpLBGAq+0Swy/aqRNNUZT/OFSmg0IXa5h8ToTj9PZOe7uP RG+A== X-Gm-Message-State: APzg51DCxKxvDBRtHnOyxM+JRkz2EiAfctstv0RRHUBlxKxN4Nc2i2N0 aGpzY5XjU/s97p8htCyfrefjNIUEz3Vl+DzvI5E= X-Google-Smtp-Source: ANB0VdahKQ/7bILEyuwF9F2dhK1tCkoHfqy+tLtMQOC6JzUw1evdcohIokz8L8mAti7C7UDtbgr8ZcyCpDHPPEU5uaI= X-Received: by 2002:a81:138e:: with SMTP id 136-v6mr1335735ywt.485.1536771416738; Wed, 12 Sep 2018 09:56:56 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:42c4:0:0:0:0:0 with HTTP; Wed, 12 Sep 2018 09:56:36 -0700 (PDT) In-Reply-To: <877ejzgy2a.fsf@gmail.com> References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> <877ejzgy2a.fsf@gmail.com> From: Carlos Pita Date: Wed, 12 Sep 2018 13:56:36 -0300 Message-ID: Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent To: Noam Postavsky Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) > I can reproduce it when running with ipython 6.x, although it seems to > only happen the first time. If enter 'x = "' again, then it works as > expected. I think this is because the second time you're closing the previously opened string. But try one more time and it should begin alternating between string / non-string faces. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 04 17:35:30 2018 Received: (at 32390) by debbugs.gnu.org; 4 Dec 2018 22:35:30 +0000 Received: from localhost ([127.0.0.1]:32890 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gUJHu-0007sy-Dz for submit@debbugs.gnu.org; Tue, 04 Dec 2018 17:35:30 -0500 Received: from mail-yw1-f44.google.com ([209.85.161.44]:33679) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gUJHs-0007sl-Mj for 32390@debbugs.gnu.org; Tue, 04 Dec 2018 17:35:29 -0500 Received: by mail-yw1-f44.google.com with SMTP id q11so7710212ywa.0 for <32390@debbugs.gnu.org>; Tue, 04 Dec 2018 14:35:28 -0800 (PST) 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=0YHTIj0la/m8gdv7DVW5i7+WlO96Fm3pE1V+0/zR3Co=; b=DKwWE2T+wOPAn7es2luW79/zptSKBUSmn4VqvF8pj4e2aOkgWDYhBLjgTCuGUDWHzE ogLsmwP2eC9MhgQVJ1yX+Tq3QRs9HtfiOzE+1E4YZd1meZXzjEUvvTnuVByoQriRyaLh N0yhk4z00iZ/jF1H5xTwYiVj6JPo9iJSztnuLr6sjgmjQ7DF9Z8Nub8h01abztlpEwLJ RLsKAkx0HkKheeOeg+uVDBlqfYlI7re6AJBFXfRbe/3HLyyfrlkPf6tTleHambcIsG2V HWxIwlMXGdoJJpAjwDEuqgsY8GqkYMkPQ9AB+NCOpaJeKZa5l7uxOPDhq9VN6jIQc2nC Aahg== 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=0YHTIj0la/m8gdv7DVW5i7+WlO96Fm3pE1V+0/zR3Co=; b=FX0PT7JqkJltgugX/DutfU2P0Y/Lg6F2KwrV9hXuFK6TjUuQnHPm9jSIpU5O5Kk26S T6D/G2vbuSRZEvHbuOyfGWpxistGyxHn3Ud9uWiIKxiUSi7ewJr2W7kWfnhC+PgMSWXk Efaml9N9S/9oS244FK/UYRbZxSFCs6DzS3O168ZehP84IDCZ/IK09nzkGoUyEkOQbNjQ EQq2whu+0NNLsQla6dpw1iH7Q8f7QmriV6g5eXH6VzPi13xW3oSC42eZNj7H4ytugBvQ H4Jb47NxJGhaH7fkYk8q0XExmuRJO3PKGR/wHSQ0WIpyzW7BDbscGdwuD3xcTIPmG8Gt iijg== X-Gm-Message-State: AA+aEWaM51aFyVw9d9T//4W+AVrY0OxgfyYfVoWFly2k1/04HaQpYSPj iwgd0zg9oSZG4XKLUzPj2SjkujXEU9oHLwPyUrA= X-Google-Smtp-Source: AFSGD/WxugC0hE3P7b30HNjMgm9nANJnuylEKbwlz/+7IT+M1jJNfsJ8chnA85lBY+1CXVEVjR/AQRb/G3MSPCLB8PA= X-Received: by 2002:a81:d84c:: with SMTP id n12mr21970914ywl.280.1543962923024; Tue, 04 Dec 2018 14:35:23 -0800 (PST) MIME-Version: 1.0 References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> <877ejzgy2a.fsf@gmail.com> In-Reply-To: From: Carlos Pita Date: Tue, 4 Dec 2018 19:35:09 -0300 Message-ID: Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent To: Noam Postavsky Content-Type: multipart/mixed; boundary="00000000000092f301057c39e13c" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) --00000000000092f301057c39e13c Content-Type: text/plain; charset="UTF-8" Hi Noam, I've been carefully studying this issue and below I explain in detail what is really happening and what different cases are being (sometimes wrongly) covered. There is a patch attached, I hope you consider it worth of being applied. The condition for cleaning up of the font lock buffer is: ------------- (if (and (not (string= "" output)) (1) ;; Is end of output and is not just a prompt. (not (member (python-shell-comint-end-of-output-p (ansi-color-filter-apply output)) '(nil (2) 0)))) (3) ------------- First nota that (1) is really irrelevant since (python-shell-comint-end-of-output-p "") returns nil anyway. Now, the problem originating this report was: ------------- In [15]: " File "", line 1 " ^ SyntaxError: EOL while scanning string literal In [16]: string face still here" ------------- This happens because python-shell-font-lock-comint-output-filter-function is called twice, first for the error output and then for the "In [16]: " part (I assume this is because one part is coming from stderr and the other from stdout, but that's just a guess). The first time (2) applies since we're *not* at the end of an input prompt. The second time (3) applies since we're at the end of *just* and input prompt. So in any case the buffer is cleaned up. Now, my first reaction was to ignore the *just* part: what damage could it do to just check if we're at the end of an input prompt disregarding the fact that it could be the only thing there? Well, the problem is with multiline input, of course. Nevertheless the current code is relying in a very weak rule: it considers "just an input prompt" to be a continuation prompt. Another unreliable aspect of the current rule is that sometimes (python-shell-comint-end-of-output-p (ansi-color-filter-apply output)) returns 1 and not 0 for continuation prompts. In short, the rule does a very poor job identifying continuations. So, all in all I had rewritten (in a previous post) the condition above as: ------------- (if (and (python-shell-comint-end-of-output-p (ansi-color-filter-apply output)) (not (string-match "\\.\\.\\.: $" output))) (4) ------------- Where: - Clause (1) is disregarded because it's redundant. - Clause (2) is taken into account. - Clause (3) is disregarded because it's unreliable. - Clause (4) was added to address the multiline input case (continuation prompt). Now, it's a sad fact that python-shell-prompt-input-regexps doesn't distinguish between initial and continuation input prompts, so I explicitly had to put that particular regexp there. I assume this is the main reason while my fix was not yet accepted, isn't it? At this point we have at least two alternatives: a) Consider that an input prompt that includes the pattern "\\.\\.\\." is a continuation prompt. This is a heuristic but I think it's robust enough. I favor this solution and the attached patch implements it. b) Add a new customization option with a list of continuation prompts. I believe this would be too much. So the attached patch implements this new rule: ------------- (if (let ((output (ansi-color-filter-apply output))) (and (python-shell-comint-end-of-output-p output) (not (string-match "\\.\\.\\." output)))) (5) ----------- The difference between (4) and (5) is that (5) relaxes the match to just include three sequential dots (because we already know we have an input prompt at the end of the output!). I've been more careful by matching on the filtered string instead of the raw one also. Please let me know if you prefer option (b) instead. Best regards -- Carlos --00000000000092f301057c39e13c Content-Type: text/x-patch; charset="US-ASCII"; name="font-lock-cleanup-filter.diff" Content-Disposition: attachment; filename="font-lock-cleanup-filter.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jpabmhoi0 ZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCBiL2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi5lbAppbmRleCBjN2JiMmQ5Li4yMThjNmU0IDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rl cy9weXRob24uZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCkBAIC0yNTU2LDE0ICsy NTU2LDExIEBAIHB5dGhvbi1zaGVsbC1mb250LWxvY2stY2xlYW51cC1idWZmZXIKIAogKGRlZnVu IHB5dGhvbi1zaGVsbC1mb250LWxvY2stY29taW50LW91dHB1dC1maWx0ZXItZnVuY3Rpb24gKG91 dHB1dCkKICAgIkNsZWFuIHVwIHRoZSBmb250LWxvY2sgYnVmZmVyIGFmdGVyIGFueSBPVVRQVVQu IgotICAoaWYgKGFuZCAobm90IChzdHJpbmc9ICIiIG91dHB1dCkpCi0gICAgICAgICAgIDs7IElz IGVuZCBvZiBvdXRwdXQgYW5kIGlzIG5vdCBqdXN0IGEgcHJvbXB0LgotICAgICAgICAgICAobm90 IChtZW1iZXIKLSAgICAgICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC1jb21pbnQtZW5kLW9mLW91 dHB1dC1wCi0gICAgICAgICAgICAgICAgICAoYW5zaS1jb2xvci1maWx0ZXItYXBwbHkgb3V0cHV0 KSkKLSAgICAgICAgICAgICAgICAgJyhuaWwgMCkpKSkKLSAgICAgIDs7IElmIG91dHB1dCBpcyBv dGhlciB0aGFuIGFuIGlucHV0IHByb21wdCB0aGVuICJyZWFsIiBvdXRwdXQgaGFzCi0gICAgICA7 OyBiZWVuIHJlY2VpdmVkIGFuZCB0aGUgZm9udC1sb2NrIGJ1ZmZlciBtdXN0IGJlIGNsZWFuZWQg dXAuCisgIChpZiAobGV0ICgob3V0cHV0IChhbnNpLWNvbG9yLWZpbHRlci1hcHBseSBvdXRwdXQp KSkKKyAgICAgICAgKGFuZCAocHl0aG9uLXNoZWxsLWNvbWludC1lbmQtb2Ytb3V0cHV0LXAgb3V0 cHV0KQorICAgICAgICAgICAgIChub3QgKHN0cmluZy1tYXRjaCAiXFwuXFwuXFwuIiBvdXRwdXQp KSkpCisgICAgICA7OyBJZiBvdXRwdXQgZW5kcyB3aXRoIGFuIGluaXRpYWwgKG5vdCBjb250aW51 YXRpb24pIGlucHV0IHByb21wdAorICAgICAgOzsgdGhlbiB0aGUgZm9udC1sb2NrIGJ1ZmZlciBt dXN0IGJlIGNsZWFuZWQgdXAuCiAgICAgICAocHl0aG9uLXNoZWxsLWZvbnQtbG9jay1jbGVhbnVw LWJ1ZmZlcikKICAgICA7OyBPdGhlcndpc2UganVzdCBhZGQgYSBuZXdsaW5lLgogICAgIChweXRo b24tc2hlbGwtZm9udC1sb2NrLXdpdGgtZm9udC1sb2NrLWJ1ZmZlcgo= --00000000000092f301057c39e13c-- From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 05 10:57:15 2018 Received: (at request) by debbugs.gnu.org; 5 Dec 2018 15:57:15 +0000 Received: from localhost ([127.0.0.1]:34439 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gUZY3-0006WQ-AV for submit@debbugs.gnu.org; Wed, 05 Dec 2018 10:57:15 -0500 Received: from mail-yb1-f181.google.com ([209.85.219.181]:36375) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gUZY1-0006WB-Ct for request@debbugs.gnu.org; Wed, 05 Dec 2018 10:57:13 -0500 Received: by mail-yb1-f181.google.com with SMTP id w203so4760237ybg.3 for ; Wed, 05 Dec 2018 07:57:13 -0800 (PST) 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=F6nSHcpqJEz7n8cX0GYiRrcBn/jdO/LGTqXZ9/Ujng8=; b=TfeFqYu9mkQkK8enUVM2MHfcj1c61xSwUIIRnV11sh6ktpsuGB/V44qo5VTaLn2Kto GHLQj5yGOvaiJ1tml1SeSZ0fVoLFow+7G9ON8Vgx6MG5smskoTGrajm10i9oySuPY2Up cUciteW83no7W5xVMzxl2kbpGU+1hCoInhR0lc2DDoEreUBEHEEioiUTuyQd2pLZtxCi nnHmPmM3/TKJnMxHvc4hLeRpb/cs648xn2LYS1/boFSqyGUKn8Pv6ptZGtqqhQ2LMKrx GIk3TOC+hKKMb4CyTRNiHJlGHKHSOoum5T7wk6E2WcA2z+NDmo7E6ttyvO10Dhxvfpbv U8XA== 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=F6nSHcpqJEz7n8cX0GYiRrcBn/jdO/LGTqXZ9/Ujng8=; b=scJxtvSI56pfLiu/G1ylGqvgwl0b6QenkwuUjjzZ55QUwEB539fRsOuU7BrGlSqtF/ M6K3WQdUlyHZse+hYzEYbg8PPaP3hXAJvLj3/NGUI97aEO6ptgRT04K/IPoBy375i7Fu 5gMcBPWfmQ8bQERDb7PcbTeBFeb/+tf8nyvGTnofULokT+ZMnAcPJL2w7PYeR5mZI/JV OJaaTQCTbySVnNbpJUI637IpHwpZdDKXSitWB+jxu15JhU/uY92l+mMME/Lpj6e6KA67 wLVCtiPtb5pG2PZea0iHd2wQa7m4doRd1nap6eCNkFlZndLYoyn8m3268Do8ra5vphKI d5jw== X-Gm-Message-State: AA+aEWZhh4fWDQcz6624fQClHID3f+GkcmA5GrubQjccciMChjtQHJZ8 4IjxyMusAMZV6JoGdnezJlpym4PX3SGBSE9jKXZ5DlAT X-Google-Smtp-Source: AFSGD/XyEPYTq95LQvj2/P0Xr/TXVEqWzA0nGQXzSIC1HVyvtB8uUD/7qp54XjRv72xWwhVm58Vr4O3ne2KnMtYQq+Q= X-Received: by 2002:a25:1184:: with SMTP id 126-v6mr23563062ybr.26.1544025427025; Wed, 05 Dec 2018 07:57:07 -0800 (PST) MIME-Version: 1.0 From: Carlos Pita Date: Wed, 5 Dec 2018 12:56:54 -0300 Message-ID: Subject: To: request@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 2.0 (++) 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: tags 32390 patch Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (carlosjosepita[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [209.85.219.181 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.219.181 listed in wl.mailspike.net] 2.0 BLANK_SUBJECT Subject is present but empty X-Debbugs-Envelope-To: request 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 (+) tags 32390 patch From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 05 11:00:28 2018 Received: (at 32390) by debbugs.gnu.org; 5 Dec 2018 16:00:28 +0000 Received: from localhost ([127.0.0.1]:34444 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gUZb9-000705-QQ for submit@debbugs.gnu.org; Wed, 05 Dec 2018 11:00:28 -0500 Received: from mail-yw1-f49.google.com ([209.85.161.49]:44837) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gUZb7-0006rF-45 for 32390@debbugs.gnu.org; Wed, 05 Dec 2018 11:00:25 -0500 Received: by mail-yw1-f49.google.com with SMTP id i22so8412355ywa.11 for <32390@debbugs.gnu.org>; Wed, 05 Dec 2018 08:00:25 -0800 (PST) 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:cc; bh=E3qpR2d8l0M2YGy6uw/5TJjAirkIn1kAuxRslX/hZh8=; b=DA1J7ATZFP/9SG3RwPC5++ScXaLFsV3hwqV2f39iG4KRVVx8tIeTbq95+zlLd6+jeP dZghuTE7qv2DiL+ndCOXuICJ29U25Fqp3+zjIoYsnJZYtYJPTKFBtuEoM5T8rbNneoOq HFspf0HpGkLUdGoOHznlnfvVXaPImK4Sj57+Zwpc7bdbBszTDbcbtkXl0hQR9MHXtLxS WmfFHC4uNtrsGCNOC96UuOY8BG/B/Dm5PnByo8XtIrp897qWOHqFX0sgQPN+UjMg46Ji Eh5XiSPFdlJCnlHYwY8EXAUmV43jG9HS+Zq+aPx9qYMinqS79V16vaNBCBbb/XJGFr3d Kf1Q== 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:cc; bh=E3qpR2d8l0M2YGy6uw/5TJjAirkIn1kAuxRslX/hZh8=; b=X0CaUu27Y8LlKk/CRzCD657OzKdJqw8VarVOoyp7Rc/sOoGedDM/AFAlKkMGpXwx5O WkLpVhlu45tN+wLOU8tqoeFx+lp+0elC1UyxpaxKdOp4HNYPuCNLfG05fw3JKn/HUZh0 2tkXpEOwcnyKm9Rp6SLyyz1L/Wp7O0gcx2DMXjF27lmckj6hg81ZME51/judGtLayODV 4VCHsT69NSlUtSPXdtlUYXxT+1YOwfv6NSGWcbgvpvRoHb4z0M54IxFy4BmiA2CqDqp4 8q/CLgOpGwarPLOMzdFXUzn3I4jUV0bi1U5/JiGARP3p79AwLYt9kZGDXTe2jl5j2Czd Ueuw== X-Gm-Message-State: AA+aEWZ9tHuYiwCifyJI8VwVV5ldN6XxPzG5w/wdFq457VNclRuBYfqm 21vP1CjD6Yb2FYQLJ51V5RB5pGU4L1AkzKDqkMGy/KVH X-Google-Smtp-Source: AFSGD/V/G4wG9VWH8/BsM2ORhqDOZFoOTU2a6SFMYTpnpKXPF9CLEZ+gKj2qvd/gk2x8MzzdPHjCQdDWpjdOAApKP0I= X-Received: by 2002:a0d:dcc5:: with SMTP id f188mr23725308ywe.210.1544025618711; Wed, 05 Dec 2018 08:00:18 -0800 (PST) MIME-Version: 1.0 References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> <877ejzgy2a.fsf@gmail.com> In-Reply-To: From: Carlos Pita Date: Wed, 5 Dec 2018 13:00:06 -0300 Message-ID: Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent Content-Type: text/plain; charset="UTF-8" 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: > stdout, but that's just a guess). The first time (2) applies since > we're *not* at the end of an input prompt. The second time (3) applies > since we're at the end of *just* and input prompt. So in [...] Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [209.85.161.49 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [209.85.161.49 listed in wl.mailspike.net] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (carlosjosepita[at]gmail.com) 1.2 MISSING_HEADERS Missing To: header -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: 32390 Cc: 32390@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 (/) > stdout, but that's just a guess). The first time (2) applies since > we're *not* at the end of an input prompt. The second time (3) applies > since we're at the end of *just* and input prompt. So in any case the > buffer is cleaned up. Sorry, this must have said "in NO case the buffer is cleaned up". From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 03 00:43:33 2019 Received: (at 32390) by debbugs.gnu.org; 3 Jan 2019 05:43:33 +0000 Received: from localhost ([127.0.0.1]:45164 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gevn3-00031K-7J for submit@debbugs.gnu.org; Thu, 03 Jan 2019 00:43:33 -0500 Received: from mail-yb1-f181.google.com ([209.85.219.181]:42279) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gevn0-00030z-EE for 32390@debbugs.gnu.org; Thu, 03 Jan 2019 00:43:30 -0500 Received: by mail-yb1-f181.google.com with SMTP id q145so11509671ybq.9 for <32390@debbugs.gnu.org>; Wed, 02 Jan 2019 21:43:30 -0800 (PST) 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:cc; bh=WaSI92djPx97I46VzRvqbb264VYOrXEKPehMPbJcg4g=; b=FvVxst9A/zEMD2ARF5xw6o9W68PrQYsL0zsngsKf3bjItF8HriQ9BtgLSH9d0+3zMJ ScDo//EOISOcCgE9MlFQF3iJF1B1LjmarWChcPuEbGX/fgiCWiTfsW3ouKJqSfwBBh+Y GkkbPbCltJoANPA/PW+OMKW3vOdCXZO8sP5ar692FYtG/SZiGzVeEUkFPbtVlwHEnK6u f29IVMtRW1IAPCYojGoDwfvnWxVJqjVyednLwcBcACnaqCPso9iaX+kXRMAqkUhKVHvw AN9pHnerNlP/xr3jug6jIt7li5lfVtKASvEWBPvrXQWIodj3dvoGaBVkrzFgkpm1CClC b83A== 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:cc; bh=WaSI92djPx97I46VzRvqbb264VYOrXEKPehMPbJcg4g=; b=BWh9FNIkpcY3u5odBjxCYiUtu6yili4thWVsPI48ZZNmvGaRoZZBhLBUUhdz32PZ4N patvvTclHx9WkvB4qAHARXAJhTU5Axq0EUrcyZLLRcusXnxTG2/Uk47vR65ycci9I87q EwhKsj/oFrPOlTsPwMd9hkt0BcCIiSJ/PriROlA1MLSqbRBhJeJqjeuX0M/RAZ+7bGBy urPL9T+S9aFXiVga9NaFDeJaNcYfdK40FDqsTQ/qevfc6cEyyEsn5qW1agJ47Q0Gsg81 bhEjQ0MLJygL/YK7q69RVGR4g4UWqZ1gOoDTqeWAyPasAW8PF0yXeb4H1Vg89TuYeO/J eohQ== X-Gm-Message-State: AJcUuke/KwUpJYlZtHXrWmq6jV6OhaxqlksALNPwaTVrvdQ/zONHdbVh EcaGzt9CALBCk2zwfnOT5OKcHAHZJQrDMMzKCD1MR+Av X-Google-Smtp-Source: ALg8bN5bQoHr9K6cBTZi9an5cSWxTfPsaX1/U6P0DO7APt+pYGu4ThT3Cqioprx44mqIagSlOe6K5SLEpEcaJ2RgfyU= X-Received: by 2002:a25:b51:: with SMTP id 78mr30308014ybl.93.1546494204697; Wed, 02 Jan 2019 21:43:24 -0800 (PST) MIME-Version: 1.0 References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> <877ejzgy2a.fsf@gmail.com> In-Reply-To: From: Carlos Pita Date: Thu, 3 Jan 2019 02:43:13 -0300 Message-ID: Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent Content-Type: text/plain; charset="UTF-8" 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: Please take a look at the related https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33959 since I've added a patch there that fixes both this and other issue. The patch is essentially the one above plus a [...] Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (carlosjosepita[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.219.181 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [209.85.219.181 listed in list.dnswl.org] 1.2 MISSING_HEADERS Missing To: header X-Debbugs-Envelope-To: 32390 Cc: 32390@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 (/) Please take a look at the related https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33959 since I've added a patch there that fixes both this and other issue. The patch is essentially the one above plus a fix for a strange interaction with company that makes the output filter populate the font lock buffer with spurious empty lines. Since both changes overlap I combined them into a single patch (I provided a separated one also, if you prefer). From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 14 06:50:21 2019 Received: (at 32390) by debbugs.gnu.org; 14 Feb 2019 11:50:21 +0000 Received: from localhost ([127.0.0.1]:47657 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1guFX3-0002YJ-LC for submit@debbugs.gnu.org; Thu, 14 Feb 2019 06:50:21 -0500 Received: from mail-qk1-f181.google.com ([209.85.222.181]:35460) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1guFX1-0002Y6-PC for 32390@debbugs.gnu.org; Thu, 14 Feb 2019 06:50:20 -0500 Received: by mail-qk1-f181.google.com with SMTP id w204so3386510qka.2 for <32390@debbugs.gnu.org>; Thu, 14 Feb 2019 03:50:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:date:message-id:mime-version; bh=A/V+f2WC99x0ha4XqGt2iA0fZHPlxhU99SCcEsYPcuE=; b=n3UZXgAl4Lb6zB9J5PlKcYSAQKGZ1kDToHSCB1o2Jcsts425ZwtbmOSDLg354+5Up5 H49nICWrm5dNjrdfoAhKCplSnEKrZwJsP+PZ+H3SbZlQA6BJwyWOqrtNj3P8VaSETHNa m3aOrBALXqNaF5Ui5jdJnSjlkA5vOCt8WKz7Z8+HufkZWYv+Uv+bFEsUM2tvBi4+c96Y eAT0uiAIH7fyzai6k1y2ox8fTCEr9wm1Agt0J4fb/naLjra9hPgd9hc/3ZYOjOd4znrj jZ74MGB1oXpsY12Lyc0QkxmLreB70EF813STe83CjTmZcKsQxNLZY7Es7glMiflPqMo7 KkRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:date:message-id:mime-version; bh=A/V+f2WC99x0ha4XqGt2iA0fZHPlxhU99SCcEsYPcuE=; b=bLkC2AweSDq4prtSoIriXaLV9ZdgvFCEzUAGfdR32Kcu1ESX6SHzgi6SQXNlpPzmB7 rzpr/vmQ6wjI3oSMdsS+T5yH+IDuOv4njyanOaXr9soAGQFdB1nBQo1m+brGyywvTzUX tiEbJsVrnz+58J/MYd4MNG68AulvvGXbl0vY/pgrPVRiL62FmFwSgvmFfpC9l/TKvdjz Pc21Ub6Gkla3TPWW8IFBrdZBnENyOiBGkGozM1fxwuI/6cStcVmUiGv9L5GudlIhLC9L A072zlaBLZMt9Qvr8wmi+xWSDCMAeDFGEV/mnUa8h/zBnkI6fobT4ROPOOBFTrw8hbe1 Pv8A== X-Gm-Message-State: AHQUAuaKuB+x/op0/JORNc93Be88vSNnPHRwK/tRVSm2HLlX9VEtjHOs omTewURRESS361jrXQLp4BfBeS9N X-Google-Smtp-Source: AHgI3Ia71l30qvHKyT3Cl8361FD6+KRWC1HYfPfFYNvPQ0B7xrLh6/+0yzMcp2JMmRzYRrQkdCNsxQ== X-Received: by 2002:a37:72c3:: with SMTP id n186mr2330771qkc.340.1550145012932; Thu, 14 Feb 2019 03:50:12 -0800 (PST) Received: from neu ([181.228.213.205]) by smtp.gmail.com with ESMTPSA id d51sm1483360qtd.35.2019.02.14.03.50.11 for <32390@debbugs.gnu.org> (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 14 Feb 2019 03:50:12 -0800 (PST) From: Carlos Pita To: 32390@debbugs.gnu.org Date: Thu, 14 Feb 2019 08:50:09 -0300 Message-ID: <87lg2ia8su.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 2.0 (++) 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: retitle 32390 [ipython 6.x] unmatched quotes break fontification in python.el (superseded by #33959) tags 32390 = confirmed quit Retitled in order to make it match "python" in the search interface and to notify that #33959 contains and overlapping patch for this and other issue. Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [209.85.222.181 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (carlosjosepita[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject X-Debbugs-Envelope-To: 32390 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 (+) retitle 32390 [ipython 6.x] unmatched quotes break fontification in python.el (superseded by #33959) tags 32390 = confirmed quit Retitled in order to make it match "python" in the search interface and to notify that #33959 contains and overlapping patch for this and other issue. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 14 06:54:25 2019 Received: (at control) by debbugs.gnu.org; 14 Feb 2019 11:54:25 +0000 Received: from localhost ([127.0.0.1]:47661 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1guFaz-0002e6-6V for submit@debbugs.gnu.org; Thu, 14 Feb 2019 06:54:25 -0500 Received: from mail-yb1-f172.google.com ([209.85.219.172]:34544) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1guFav-0002dl-GW for control@debbugs.gnu.org; Thu, 14 Feb 2019 06:54:21 -0500 Received: by mail-yb1-f172.google.com with SMTP id j62so2276958ybb.1 for ; Thu, 14 Feb 2019 03:54:21 -0800 (PST) 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=6qDO1o6F6nfXVpS0KjCpHW6Br0wf1UUNaFxAyo2Cx+w=; b=BYwaQo6KPFaMBjmsNyDWAW2Dt1jsi3me6AkJ6MX5fDOynQRrnmDVsE0wCchj3XreKE 2BpKbFuXNTlK5hr4n1J96xZSEw0U3dcbu/FCedTpvcXPhtMVLxAEdFE6plUMzs9n88hX +W7/XenOnfAcVuVq8YUW3b33431dSy+JqW8KyO5Oi6csbgZItKEdyLTFWpr948ohQ+/H J5ZqrXJXLaTJ6Tvdxtt74tuMFWyKOpHByyUCqxFjqPUH3JGTvzSLzS0m63GtBu8SeJFI L8k0WuHojjriZ4rzkr8nbKTgtmsbZ2X4/S/vr6rofcddPPZAGnIPFUEYXAEDn6CHBOkn JfLA== 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=6qDO1o6F6nfXVpS0KjCpHW6Br0wf1UUNaFxAyo2Cx+w=; b=jy2JfhajbkPbg3IDhtJ6YkyRtV5r27Ur4rdfQMZNHwW4908Xw9GEYBt55m6BkiXRoi VGwUyHgjq8ImFYAta3DcVy93a+yQE3jmee6jw/cL18l8FgXZAg4zIfor34ymDS3Dh5YM lMssH0CJVldA/Hju1ObN6v17zYPym/iZv4G3hyw0nElk5/IIOnMBe5/A1HGPcxWJVvwa C4lQ7pHZVYHgCptn1hkPf9XZZhZKnCFjJSA+1bpfB6Hg5rEVOj9CXKu3sgymRsW8w8rE WegVl7wRbGYTKjS0zn6F3EPS8pb4q3uGFaw84lMiIF2hccs6SjhkUiz1RYbMktJPuY2u aeWw== X-Gm-Message-State: AHQUAuZaQZMD2dWrobQ4+lkgEqV4p2Agt/SOTVryyP1/IB94nEEru3Yg XocP0A1HfrTZ9+HVR6rTXq5OwyZ/dEMWajBdMZinN4xL910= X-Google-Smtp-Source: AHgI3Ib69A308jc827UynK8JNsoD9OfnA9GUvmMdRK0PnYmHLh7a9aW8gMPJXVppxHigSUuLCoYSbi00xAFI4mOKvAE= X-Received: by 2002:a25:4902:: with SMTP id w2mr2648724yba.26.1550145255503; Thu, 14 Feb 2019 03:54:15 -0800 (PST) MIME-Version: 1.0 From: Carlos Pita Date: Thu, 14 Feb 2019 08:54:04 -0300 Message-ID: Subject: To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 2.0 (++) 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: retitle 32390 [ipython 6.x] unmatched quotes break fontification in python.el (superseded by #33959) Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [209.85.219.172 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (carlosjosepita[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 2.0 BLANK_SUBJECT Subject is present but empty X-Debbugs-Envelope-To: control 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 (+) retitle 32390 [ipython 6.x] unmatched quotes break fontification in python.el (superseded by #33959) From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 14 06:56:01 2019 Received: (at control) by debbugs.gnu.org; 14 Feb 2019 11:56:01 +0000 Received: from localhost ([127.0.0.1]:47666 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1guFcX-0002gx-GG for submit@debbugs.gnu.org; Thu, 14 Feb 2019 06:56:01 -0500 Received: from mail-qk1-f178.google.com ([209.85.222.178]:41187) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1guFcV-0002gc-9A for control@debbugs.gnu.org; Thu, 14 Feb 2019 06:55:59 -0500 Received: by mail-qk1-f178.google.com with SMTP id u188so3365053qkh.8 for ; Thu, 14 Feb 2019 03:55:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:date:message-id:mime-version; bh=2qgWS+HMSGF1OVl2HOAB36DdISV1buDbbIpTidIiQ9c=; b=ZNxw9YEZQ8JQQpnaZBD+oF8H2Mvb+EJwM0WlS7KV33AhkuZIdJTuYx4SdqWv9MvAAe jR69KtuUhug58lP/NlezXKsRe3JBNVp9Fp1iO6+hNFbQZDF6eKW9TE8iTHCMcpZaL6tb 0Xv1PQvP2OFwWrm3pOEm2bfeyMWf9Zq1TaSmgGY/Nad+Ihv1P87Z0Mo+rCCvVDMBiryg yF59wnVlzRPwTLxIEsDVy5yT871p+7baY5j8ACOeovC2BcwqKyBxr6HYrfvkzS6w7Jst D9hUS2XKV7/YOG8OpR/3pX9qeqky7RmzQqvqrDFY2XCR3prA9xQ4DzQ4XOe5B1hj4BHD 1eDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:date:message-id:mime-version; bh=2qgWS+HMSGF1OVl2HOAB36DdISV1buDbbIpTidIiQ9c=; b=qM28X88gUeOEzkOmynwxFzrSQvNhdiPRLafndtDGb4SlCCE0KGvAd3ehlTU2pIQLAj P9es7trR0e82HN0WpR1HZ2538jlUN2Ll2FVdLvrFews0lCwbBWUDjDDXr9XnbF/98/Zq kNJQPPQvY1qUu0f/1YX4ykCss/vVxmCWXYkNiY203thrvvdjAl0Ac1HEI43cMJdy2F95 NX/uyllTvBJmicR0i+1PPyKJQcPE/cx7AwWH5tk9MH+TPRQRPSDVmghXag3ZZVSG2sTu zSWTVhMScUhLHnJTL5mN58aYX3iG5I3UvlfpibAA3m/OO9N7Y05chY/iS7gupY4bEgu1 j0Xw== X-Gm-Message-State: AHQUAuYIGRlcCHJP33oc9QtAAmMfUEy8UrP7l/U+P1dDOP/xS44crifq CfxfFf8xWhGaDvBDZmpRGJh/JZt3 X-Google-Smtp-Source: AHgI3IaSgMGM2EcQrptHHb6Ppixtdbd8JFcckow37hcFfQ0ZuJ8qL3FZ4Xxmoe901Ecg1YWawSAsgw== X-Received: by 2002:a37:d9cb:: with SMTP id q72mr2312505qkl.143.1550145353579; Thu, 14 Feb 2019 03:55:53 -0800 (PST) Received: from neu ([181.228.213.205]) by smtp.gmail.com with ESMTPSA id e5sm928888qtr.52.2019.02.14.03.55.52 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 14 Feb 2019 03:55:53 -0800 (PST) From: Carlos Pita To: control@debbugs.gnu.org Date: Thu, 14 Feb 2019 08:55:51 -0300 Message-ID: <87imxma8jc.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 2.0 (++) 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: retitle 32390 [ipython 6.x] unmatched quotes break fontification in python.el (superseded by #33959) Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [209.85.222.178 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (carlosjosepita[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject X-Debbugs-Envelope-To: control 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 (+) retitle 32390 [ipython 6.x] unmatched quotes break fontification in python.el (superseded by #33959) From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 14 20:21:38 2019 Received: (at 32390) by debbugs.gnu.org; 15 Oct 2019 00:21:38 +0000 Received: from localhost ([127.0.0.1]:42430 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKAan-0007Sw-R1 for submit@debbugs.gnu.org; Mon, 14 Oct 2019 20:21:38 -0400 Received: from mail-io1-f66.google.com ([209.85.166.66]:33455) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKAak-0007SY-MR; Mon, 14 Oct 2019 20:21:35 -0400 Received: by mail-io1-f66.google.com with SMTP id z19so42005867ior.0; Mon, 14 Oct 2019 17:21:34 -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=frPDIcN1TG0K77FQD8QvFH1Zq0J4yTczuqIJcxVBL8g=; b=jBQnbDWcZt1yEX129jgFLjaSPQXfMp7ccMbLZKUbr6H/KdzQPrvyt0wzQZUz2tPeOX 1D0Udnc2jNvyiOnqKy/Ez2pRcwSk+fHb9B/kMrT5Hby9PdX5BlXjyKNa1H4O85ltondC tGNzZ3xwq0YHPRUwmkY3eCoG5kSGFZO5/AZ0hjtCQT9GGuzYDj0f/dtRJucgmnBMt+e7 649jy3ugXvJaJDBJirbQ5rIoJBrxjvx7cNbLA+pwPBf6x9r84hELoR2zBrzsXSiv4vMl 1Rca8ZN3Nv2re4KbMN02iFx026Ap+P8KgW0OJV1WJxi48jtcK2s8ExQHEw5wysvvSH6q paxw== 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=frPDIcN1TG0K77FQD8QvFH1Zq0J4yTczuqIJcxVBL8g=; b=KHnRFE6OdSv6MKGPMFpgLPPHz8951O4zan9OY0ooz68DVCv8wThNL/8ZOnKjR+ZRg6 LhwRROXGr5t03yl7YWrIm/GtHu4Mb3hgrdEqtMM7LiQqEPLUNcSx/T00DfwCc6MIVCpH LSHLJIy67kwHS6syHhkihbBwuB35loBwXxZGUTYeVRrfPNM8DPYL34rsUFVDIc0+V+md TIjOj0pIvrxK6/H3shrmUHjjS9qq5MQdWdLxSLul38OcN1RFiXz2LhfTl8nPa0Dmr03E Ya4G4yDcSHagdv7G44dAsEZwbSRUKxJMpQiPGPWFEbwziUagQ404bnXuZVz/X+meuLIc 4xLg== X-Gm-Message-State: APjAAAX14siE1C74dCR3jUzK5noMscMzhnSSQifjr+K4Is36pr+rRWPA IW3JTGZTDUib1WPNHuX4xynqpWxC X-Google-Smtp-Source: APXvYqw8xE3aITTu1tnMbpyO9kdqOhZKPFHnLcrEJCLkKVpIiHb4mwvNCpgorlNF/yB4VJwzdElTFg== X-Received: by 2002:a92:5f0a:: with SMTP id t10mr3456356ilb.264.1571098888948; Mon, 14 Oct 2019 17:21:28 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.gmail.com with ESMTPSA id f3sm13557523ioh.32.2019.10.14.17.21.27 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 14 Oct 2019 17:21:27 -0700 (PDT) From: Noam Postavsky To: Carlos Pita Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> <877ejzgy2a.fsf@gmail.com> Date: Mon, 14 Oct 2019 20:21:21 -0400 In-Reply-To: (Carlos Pita's message of "Thu, 3 Jan 2019 02:43:13 -0300") Message-ID: <87imoq6epq.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) tags 32390 fixed close 32390 27.1 quit Carlos Pita writes: > Please take a look at the related > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33959 since I've added a > patch there that fixes both this and other issue. The patch is > essentially the one above plus a fix for a strange interaction with > company that makes the output filter populate the font lock buffer > with spurious empty lines. Since both changes overlap I combined them > into a single patch (I provided a separated one also, if you prefer). I think these changes are confusing enough on their own, without trying to combine things. The patch you posted here seems okay, so I've applied to master now. [1: 7acc621e37]: 2019-10-14 20:09:38 -0400 Fix python-shell font-lock cleanup for unclosed quotes (Bug#32390) https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=7acc621e373ba1371495e15e5e78aa6ce948a9a6 From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 14 20:27:55 2019 Received: (at 32390) by debbugs.gnu.org; 15 Oct 2019 00:27:55 +0000 Received: from localhost ([127.0.0.1]:42442 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKAgt-0007h1-DT for submit@debbugs.gnu.org; Mon, 14 Oct 2019 20:27:55 -0400 Received: from mail-yw1-f43.google.com ([209.85.161.43]:39211) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKAgr-0007gj-5n for 32390@debbugs.gnu.org; Mon, 14 Oct 2019 20:27:53 -0400 Received: by mail-yw1-f43.google.com with SMTP id n11so6724947ywn.6 for <32390@debbugs.gnu.org>; Mon, 14 Oct 2019 17:27:53 -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=dKvIvSJEVHcF2TQXhd6ka99GNvSejqwAkxrlHZQJbXM=; b=cXFaXCfGKz49Hl3qdzj+jUTbqIkReolGsP/N9bcRwyycCIg4al1DrySLc7dJmlU6Ni EIVvlAAWkwqlgm8UzeJ9A+kz5mBW5h0aCFnhtKN++roLbBfLD8P7BKGyfMDDRFkgRC9u GGxshPgPlIJhFaZNH85/srL4zmDgtVaeowBSzFvHThZqeLjU64z8ZvgfU4wsXukGRrjX oD1AGd8ww2FF7Ajmt029LPp1AklJFwy8/Qquj5FJD5o+Y1OtmlQ9WZWUbTbZfoAK5fkQ zNaKUlClI0TdDivYFxPnVhOZDQjDdSVr1NepgME3wYIf2Df5qWo9x5bh6aqCwjl0JEPt CLQw== 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=dKvIvSJEVHcF2TQXhd6ka99GNvSejqwAkxrlHZQJbXM=; b=VSXvfvws6BB3mkv0cvhlf2siQvmah/TgtO7a8n5r0pGUPGwL42WLxDlY0RjBjOofQg nWf2MGtT1MwnX2JVnFA4YNROPjgQNRxf1PolZSCnE7UvDM7Ys1Mj4PrhitHLIO9Cai7i gnGAKEaHW2Avzbb3xwcddc2HMG4BtEWB0Jr4u1ulfaseHvusMKs4u2YYWZILxbaaSUKk 7F/1G2akil08Tdu0k7X/5334m33aDhKeBC85MmbQvsy+CfnPrV/xbxJ8MuaiaUOcbQyf Vwnio4E4EWbySud8nczDPnQscluS9Sn+XsW2Hx/e62vN77FB+jUMCuq1qe8xQHw5TM0j uSNQ== X-Gm-Message-State: APjAAAXA/MLd4xAaFZn+tlF2neEFQ+vf8petY27r/sqkeYd4s3Fc2AIX lCjy47fSG1QGUFIp49pxwV/5lMjFjcmUpaM+EiI= X-Google-Smtp-Source: APXvYqx5mnZptrW/JaiKe59Ah8/8e3k1AfTeZZfZ0IkulfQHHNLtPsaWd84gSktMIEFFlIzMLSb9745SIY/4CMzlZ8A= X-Received: by 2002:a81:ab42:: with SMTP id d2mr14531743ywk.64.1571099267537; Mon, 14 Oct 2019 17:27:47 -0700 (PDT) MIME-Version: 1.0 References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> <877ejzgy2a.fsf@gmail.com> <87imoq6epq.fsf@gmail.com> In-Reply-To: <87imoq6epq.fsf@gmail.com> From: Carlos Pita Date: Mon, 14 Oct 2019 21:27:36 -0300 Message-ID: Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent To: Noam Postavsky Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) Thanks Noam, do you want me to provide a separate patch for the other issue that applies on top of this one? Remember that I had provided a separate but independent one in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33959;att=1;msg=18;filename=0001-Avoid-spurious-empty-lines-in-font-lock-buffer-fixes.patch, which will surely result in conflicts. From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 14 20:30:49 2019 Received: (at 32390) by debbugs.gnu.org; 15 Oct 2019 00:30:49 +0000 Received: from localhost ([127.0.0.1]:42447 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKAjg-00009d-Sf for submit@debbugs.gnu.org; Mon, 14 Oct 2019 20:30:49 -0400 Received: from mail-yb1-f182.google.com ([209.85.219.182]:38853) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKAjf-0008Tf-Qt for 32390@debbugs.gnu.org; Mon, 14 Oct 2019 20:30:48 -0400 Received: by mail-yb1-f182.google.com with SMTP id r68so5999548ybf.5 for <32390@debbugs.gnu.org>; Mon, 14 Oct 2019 17:30:47 -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=W3XsWTLIFw/1QoiirQRR873w+LzKM8aFITjEsZ/opWY=; b=Ws1gqwEp2PrBiozBWkCs0A0tlOki9Ssxwx29S8oF4aW9e72eAeouzLrPZX7OCpI6ek sN8MjYbqRDgl8esjYwtHnHc2eNzCNFI/lbW1zGa36k2wmJlYq4k17pSV3eFwialJyHAd ebKxtBKqux7FzKlJy1U5klsboEWRd5eYcNLNgdTrJ6B1PuxeJ17Wj4/M0SfmnKlHFbc0 Z3KEh5OlHuQsR4Ks1Q96nwIPoirCwU2q12Sbt4ykzLIXP67VcJrQj0sUt4YDr7qDOKhe Mfd6Dbe8KV3JIuAfrScVfu461d/nQJ8y8m52uhWpBWxF66zBAFEXAOz11kOOiKT/+mPZ tLoQ== 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=W3XsWTLIFw/1QoiirQRR873w+LzKM8aFITjEsZ/opWY=; b=uHqRQE1Am1p+i6ReLMNnutP86N/sYfgCoQ8fdzlxw5o3kd57xOXOB1FB3uO/uEZaGg seEzRMUw7gbMiyzHAaUJiIrj4XrK44svk5FjOycIfsikUEukCjfVtbG7iPB+UO1gM4lm 3oP0dI4g9DmpTFopebFZ0dDFAndeNprBJK0SWSHCL91EnkpfDiUdEN5OCBId42sobJl8 enRjO98hQJCctk5TNbQqsP4Z0dcRFEFKnmvBRrIdCj1+iN1kRpq+iHK25t1lTmzAmkaN krq32DnrupYnGvP4yTMxKm+wCWm0Jypic7UPNFeOyF+p4hoeS3lEB0Qqh1Hk4jExbCQ8 LWdw== X-Gm-Message-State: APjAAAWMRJFgnNCLF4YwwvGRRU6jiL8onDQx/c6lPkqtw6xbu0qT5Lvy L7WEagodTm/D1FzjRtDfUXpP9SCfGIezj8CGA14= X-Google-Smtp-Source: APXvYqxXsMyJKTSoJVNXoC3Wg9b+IOym7+FAWRVP59G/5y8Hu5nP6A1zsfybEB/3DXn/yqpjrWJ4jk+yMsWEaQ27wew= X-Received: by 2002:a25:be48:: with SMTP id d8mr22267891ybm.353.1571099442128; Mon, 14 Oct 2019 17:30:42 -0700 (PDT) MIME-Version: 1.0 References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> <877ejzgy2a.fsf@gmail.com> <87imoq6epq.fsf@gmail.com> In-Reply-To: From: Carlos Pita Date: Mon, 14 Oct 2019 21:30:31 -0300 Message-ID: Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent To: Noam Postavsky Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) Also, shouldn't this be applied to emacs-26 besides of master? I mean, it's a bugfix. From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 14 20:37:02 2019 Received: (at 32390) by debbugs.gnu.org; 15 Oct 2019 00:37:02 +0000 Received: from localhost ([127.0.0.1]:42463 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKApi-0001cw-7f for submit@debbugs.gnu.org; Mon, 14 Oct 2019 20:37:02 -0400 Received: from [80.91.231.51] (port=44484 helo=quimby.gnus.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKApg-0001ca-Gu for 32390@debbugs.gnu.org; Mon, 14 Oct 2019 20:37:00 -0400 Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=marnie) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iKApd-000696-4v; Tue, 15 Oct 2019 02:36:59 +0200 From: Lars Ingebrigtsen To: Carlos Pita Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> <877ejzgy2a.fsf@gmail.com> <87imoq6epq.fsf@gmail.com> Date: Tue, 15 Oct 2019 02:36:56 +0200 In-Reply-To: (Carlos Pita's message of "Mon, 14 Oct 2019 21:30:31 -0300") Message-ID: <87k196rgif.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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 @@CONTACT_ADDRESS@@ for details. Content preview: Carlos Pita writes: > Also, shouldn't this be applied to emacs-26 besides of master? I mean, > it's a bugfix. There won't be any more Emacs 26 releases -- nothing is applied to that branch at present. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 1.3 (+) 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: Carlos Pita writes: > Also, shouldn't this be applied to emacs-26 besides of master? I mean, > it's a bugfix. There won't be any more Emacs 26 releases -- nothing is applied to that branch at present. Content analysis details: (1.3 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: ingebrigtsen.no] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender does not publish an SPF Record 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS X-Debbugs-Envelope-To: 32390 Cc: 32390@debbugs.gnu.org, Noam Postavsky 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.3 (/) Carlos Pita writes: > Also, shouldn't this be applied to emacs-26 besides of master? I mean, > it's a bugfix. There won't be any more Emacs 26 releases -- nothing is applied to that branch at present. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 14 20:40:15 2019 Received: (at 32390) by debbugs.gnu.org; 15 Oct 2019 00:40:15 +0000 Received: from localhost ([127.0.0.1]:42467 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKAso-0001js-Pq for submit@debbugs.gnu.org; Mon, 14 Oct 2019 20:40:15 -0400 Received: from mail-io1-f46.google.com ([209.85.166.46]:46063) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKAsn-0001jZ-Co for 32390@debbugs.gnu.org; Mon, 14 Oct 2019 20:40:13 -0400 Received: by mail-io1-f46.google.com with SMTP id c25so41902323iot.12 for <32390@debbugs.gnu.org>; Mon, 14 Oct 2019 17:40:13 -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=fOhd7q3DL+5cKpxbzpWgOOSb1Q8B8xYVQSVoC06+Y9Y=; b=KOyzT1mnql7/WPgB54pFG/QAemw6TvN0ySo6OqQbpoUJSyQMI57Q9mMV6cFh7STzzn aMe0lFNaosIDIPi1/ocozANpWywDzMRtRCC74pr0gQoknkMzaqR/oKx4KJq2SlHYBmld rKW+guoOYHCaeZN7f/vpmR3evjF4I92GwnKxYlyRnD7Ct2/4dybiQ6AlgdxnUg4P8dJx YT7QuikYKqNmGr1+x0N8JbKhIvc070rqAbpKJoot8p6NILSqrpHVRurVjvp1+AEo35PP /CP2PoXjE+z5D28zsvMCTvn4jYfR0gTtR2gojjJO0RXTbzFC8MjCypQjbsiatSxg3cUP LnZA== 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=fOhd7q3DL+5cKpxbzpWgOOSb1Q8B8xYVQSVoC06+Y9Y=; b=f9xM+L3/USFdoT3wbe3t8y+0N+Tv+FFjIoyDSwHmK2AmglsBOzE3HC14gvl/VUXWVG wZ9BJmq/UPDSL24cZj6V3SmVT9zKRKeIfYg2aiGuN7QRZT/elyCW88bqNMw8xe/bOu4C BAooOHBU6I5LZdvQBYJofvEV/2djp2eBAmUXxA+81nIJs4p/C6VNCuSZ6CEoE7uolnFH INGMUC/xN+jQ+vnJVThcVOml1do8+lX+gBodTQu3p9MiJdxJZTRZg2tGDD+VVccDL+A1 UOfPO9l7Ipsm4jzWdrFrztuWruGqfDcwkaa4nmjNHmTor1/ZgAZ97ZXjlKw8VzEhzT/0 dozQ== X-Gm-Message-State: APjAAAXbYk+31JcxipP1MoJgxz4YfJ3c03am3xhNwjWAzRn/xLEJmIAk t02JocPPGLA2Xhq0DXHdJaNIi+DA X-Google-Smtp-Source: APXvYqzwUOgYYaJLA7ejZF99EJUAfz0M8ZBiuRN78aMRQwluS2LU2HpSohnjfR70rQ7AsxQMqh+9Pg== X-Received: by 2002:a92:45c2:: with SMTP id z63mr3302463ilj.122.1571100007646; Mon, 14 Oct 2019 17:40:07 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.gmail.com with ESMTPSA id a17sm2252173ilf.22.2019.10.14.17.40.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 14 Oct 2019 17:40:06 -0700 (PDT) From: Noam Postavsky To: Carlos Pita Subject: Re: bug#32390: 26.1; python.el: cleanup font lock buffer after input is sent References: <87sh3q1075.fsf@gmail.com> <87woshvk7a.fsf@gmail.com> <87va7prkeq.fsf@gmail.com> <877ejzgy2a.fsf@gmail.com> <87imoq6epq.fsf@gmail.com> Date: Mon, 14 Oct 2019 20:40:05 -0400 In-Reply-To: (Carlos Pita's message of "Mon, 14 Oct 2019 21:30:31 -0300") Message-ID: <87eeze6dui.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32390 Cc: 32390@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: -1.0 (-) Carlos Pita writes: > Also, shouldn't this be applied to emacs-26 besides of master? I mean, > it's a bugfix. emacs-26 is pretty much closed. https://debbugs.gnu.org/37527#95 From unknown Fri Jun 20 07:15:10 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 12 Nov 2019 12:24:14 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator