From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 09 11:46:48 2014 Received: (at submit) by debbugs.gnu.org; 9 Apr 2014 15:46:48 +0000 Received: from localhost ([127.0.0.1]:39194 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WXui7-0005bY-4C for submit@debbugs.gnu.org; Wed, 09 Apr 2014 11:46:47 -0400 Received: from eggs.gnu.org ([208.118.235.92]:38843) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WXpUj-00042V-O2 for submit@debbugs.gnu.org; Wed, 09 Apr 2014 06:12:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WXpUc-0005ye-O9 for submit@debbugs.gnu.org; Wed, 09 Apr 2014 06:12:32 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_50, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:50310) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WXpUc-0005yZ-LL for submit@debbugs.gnu.org; Wed, 09 Apr 2014 06:12:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40533) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WXpUa-00048N-S3 for bug-gnu-emacs@gnu.org; Wed, 09 Apr 2014 06:12:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WXpUZ-0005xa-3b for bug-gnu-emacs@gnu.org; Wed, 09 Apr 2014 06:12:28 -0400 Received: from mail-pa0-x230.google.com ([2607:f8b0:400e:c03::230]:36677) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WXpUY-0005xL-Px for bug-gnu-emacs@gnu.org; Wed, 09 Apr 2014 06:12:27 -0400 Received: by mail-pa0-f48.google.com with SMTP id hz1so2327091pad.35 for ; Wed, 09 Apr 2014 03:12:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=/Yvl9oLMR0IDAG+q3kSDvadWTTMb+MksWU/B0nRCIkk=; b=YyLieNjRLfcWk99TFV73neXNqv7HvQGkG/B9rcy79sTdzn7L2tQxAY6k7Recn1+8m5 n86PySZN50EFsC6IcbX0gjkV9bDI1Hu6LwN2IDqQ6WjnqnQj98fv9ZQXQDFR9GLbMwFG BqZXI4jZifav5tnWztTEiSQtmXMbTk62zZk3fYY4NCThwTBNDkdh66RhzVKKnwNsqidT Ir3i94sfB26nTCrPmp6DljdJo32lHF3HeC0GepkISpfw7BDvCsmiKffyiWj3Qs9UumtD twihtqmCdeDi4Lb86OLQSjxeouvHBPh+xxI6vRx9z0uE8N3IJ+29vaKd4LroO45telbV IgLg== MIME-Version: 1.0 X-Received: by 10.68.106.130 with SMTP id gu2mr10756744pbb.59.1397038345451; Wed, 09 Apr 2014 03:12:25 -0700 (PDT) Received: by 10.70.36.228 with HTTP; Wed, 9 Apr 2014 03:12:25 -0700 (PDT) Date: Wed, 9 Apr 2014 11:12:25 +0100 Message-ID: Subject: [PATCH] term.el: unreliable directory tracking From: Callum Cameron To: bug-gnu-emacs@gnu.org Content-Type: text/plain; charset=ISO-8859-1 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -3.8 (---) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Wed, 09 Apr 2014 11:46:44 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.8 (---) I've had mixed results with directory tracking in ansi-term. Sometimes output like this appears in my terminal (offending line highlighted with !): > callum@Sulabesi:~/emacsBugTest/git/emacs/src$ ssh vm3.local > Welcome to Ubuntu 12.04.4 LTS (GNU/Linux 3.11.0-19-generic x86_64) > > * Documentation: https://help.ubuntu.com/ > > Last login: Wed Apr 9 09:49:46 2014 from sulabesi.local ! nSiTu callum > callum@VM3:~$ I put a call to (message "\"%s\"" str) at the start of term-emulate-terminal to see what was going on. Here are the relevant values of str: > "^[AnSiTu callum" > "^M > ^[AnSiTh VM3^M > ^[AnSiTc /home/callum^M > callum@VM3:~$ " The newline after the AnSiTu command is in the *next* string, so the command doesn't match the regexp in term-handle-ansi-terminal-messages. So the '^[A' gets eaten by the escape-char handling code (and does nothing), and the rest of the command gets printed as normal text: 'nSiTu callum'. I haven't found a way to reproduce this reliably. It seems to happen more often on slower machines, but happens occasionally even on fast ones. In this case I was doing a login over SSH, but it happens in local shells, too (although not as often). Here's the minimal .bash_profile that was on vm3.local in this example. It sometimes causes the bug for me (but might not for you!): > if [ "${TERM}" = 'eterm-color' ]; then > printf '\eAnSiTu %s\n' "$(id -un)" > printf '\eAnSiTh %s\n' "$(hostname)" > printf '\eAnSiTc %s\n' "$(pwd)" > fi As you can see, this isn't even doing directory tracking, just setting up the initial state when the shell starts - but it's enough to trigger the bug. The order of the prints doesn't seem to matter; it's always the first command that gets missed. It doesn't seem to be a bash-specific problem, either, since I've had the same thing happen in zsh, and it happens locally as well as over SSH. The problem is present both in Emacs 24.3.1 from the Ubuntu package repositories, and in trunk (as of commit 35adb6a463abe5e0539bc72082bdb0217a6c11d5 in the git mirror). If you don't experience the bug, you can force it manually by doing (in bash): > printf '\eAnSiTu %s' "$(id -un)"; sleep 1; printf '\n' Everything here has been done in emacs -Q, then going straight to M-x ansi-term. The patch checks to see if there is an incomplete command at the end of term-emulate-terminal's input string, and, if so, saves it so the whole command can be processed when the next string arrives. I'm a Lisp newbie, so I don't know if this is the best way to do it, and it isn't foolproof - if the command gets split in the 'AnSiT' magic, it won't get handled. But I've never seen this happen (I've only ever seen the trailing newline get split off), and I've been using it for a few weeks without problems, and without any noticeable slowdown. Patch against the term.el in trunk. *** old_term.el 2014-04-09 10:41:01.264492832 +0100 --- new_term.el 2014-04-09 10:27:56.784487049 +0100 *************** *** 607,612 **** --- 607,615 ---- the user command `term-send-input'. `term-simple-send' just sends the string plus a newline.") + (defvar term-partial-ansi-terminal-message nil "Keep partial ansi + terminal messages for future processing.") + (defcustom term-eol-on-send t "Non-nil means go to the end of the line before sending input. See `term-send-input'." *************** *** 1097,1102 **** --- 1100,1107 ---- (make-local-variable 'ange-ftp-default-password) (make-local-variable 'ange-ftp-generate-anonymous-password) + (make-local-variable 'term-partial-ansi-terminal-message) + ;; You may want to have different scroll-back sizes -mm (make-local-variable 'term-buffer-maximum-size) *************** *** 2693,2698 **** --- 2698,2708 ---- ;;difference ;-) -mm (defun term-handle-ansi-terminal-messages (message) + ;; Handle stored partial message + (when term-partial-ansi-terminal-message + (setq message (concat term-partial-ansi-terminal-message message)) + (setq term-partial-ansi-terminal-message nil)) + ;; Is there a command here? (while (string-match "\eAnSiT.+\n" message) ;; Extract the command code and the argument. *************** *** 2745,2750 **** --- 2755,2767 ---- (setq ange-ftp-default-user nil) (setq ange-ftp-default-password nil) (setq ange-ftp-generate-anonymous-password nil))))) + + ;; If there is a partial message at the end of the string, store it + ;; for future use. + (when (string-match "\eAnSiT.+$" message) + (setq term-partial-ansi-terminal-message (match-string 0 message)) + (setq message (replace-match "" t t message))) + message) Here's the output from report-emacs-bug, too: In GNU Emacs 24.4.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.20) of 2014-04-09 on Sulabesi Windowing system distributor `The X.Org Foundation', version 11.0.11405000 System Description: Linux Mint 16 Petra Configured using: `configure --prefix=/home/callum/emacsBugTest/install' Configured features: XPM JPEG TIFF GIF PNG SOUND GSETTINGS NOTIFY GNUTLS FREETYPE XFT ZLIB Important settings: value of $LC_CTYPE: en_GB.UTF-8 value of $LANG: en_GB.UTF-8 locale-coding-system: utf-8-unix Major mode: Term Minor modes in effect: shell-dirtrack-mode: t tooltip-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-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 line-number-mode: t transient-mark-mode: t Recent input: a n s i - t e r m s s h SPC v m 3 . l o c a l C-d C-d C-d C-d r e p o r t - e m a c s - b u g Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message dired rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils tramp-cache tramp-sh tramp tramp-compat auth-source eieio byte-opt bytecomp byte-compile cconv eieio-core gnus-util mm-util mail-prsvr password-cache tramp-loaddefs trampver shell pcomplete comint ansi-color format-spec advice help-fns term disp-table easymenu ehelp ring time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer 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 make-network-process gfilenotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) Memory information: ((conses 16 98260 9766) (symbols 48 20811 0) (miscs 40 47 107) (strings 32 20424 5213) (string-bytes 1 608496) (vectors 16 13344) (vector-slots 8 418292 5933) (floats 8 85 176) (intervals 56 279 285) (buffers 960 12) (heap 1024 32967 874)) From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 11 20:37:46 2017 Received: (at 17231) by debbugs.gnu.org; 12 Dec 2017 01:37:46 +0000 Received: from localhost ([127.0.0.1]:57494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eOZVx-00077T-Q9 for submit@debbugs.gnu.org; Mon, 11 Dec 2017 20:37:45 -0500 Received: from mail-it0-f42.google.com ([209.85.214.42]:46005) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eOZVw-00077D-41 for 17231@debbugs.gnu.org; Mon, 11 Dec 2017 20:37:44 -0500 Received: by mail-it0-f42.google.com with SMTP id z6so20680177iti.4 for <17231@debbugs.gnu.org>; Mon, 11 Dec 2017 17:37:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=ivaJebTUlGFiSTl1UWRz28dV+E9JxtONwgl/sTMYIl8=; b=GRk1D7eLAfI0Qkcs0tgqnwY83Ew5ifVgx2GcPvGIEQe/ZwTu0yVCpjcH854qDPQ4t3 HnxH5vI2xdr88pvOHShJZ5LLTK2S/e6izlQIjN2n+qXdUNTyxH50O9Ae4YoloSXY9aeL nmxHmMj3zEclPe0oDFr1q1X6/P8P3BUxm8K+Z1b6cqVS9/PaOQBN6AVoOpiZp8LJoODO rQly70N39WhJFpLlFMOG9beiXKyrikxl3atfpeB7pR/wG/5aIJs3tIglZAxrdmMjqtas Ulhw2NfTKFPg7ITQohTk3M8/kfdaWuch2q7DNFKbzM+qz+tZAcMBTbBAZWgHk2EOMAwB p7Rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=ivaJebTUlGFiSTl1UWRz28dV+E9JxtONwgl/sTMYIl8=; b=BPch9BugiyO7XRLOm2rUqzurVNHtp8aTAQKD+kM39kAefPizkC4sCjeMDSKtz2qcx1 CU3buHozY755QlpXuZlJRBM1AHmvT89CNqOz4vu9QAlerUpekZPDzG48DbV6o9rRza0y daNS4watdfQ06FXQXIW/JBoZQrGxTZdrXuUiwpySpj6yfEtQEgen7Ijn5NCj7zLAIB88 fAkcsgZp9NNFn6VqKy0iPJNXbKKhmIopl2Tc7e7atIisQ7XPau+tnteqTgv8mb4188iD JKAtVFZXVNUZuX5dgAL1aLNIgy5x0xDk4hRepwpD6Jvk6D+1zLos+Z9ONBr/rL+t59vt GeNA== X-Gm-Message-State: AKGB3mKp/ZhHCDIYDAzWpzQiud0hiRfNjCTpOXVlVqpTzogq4eFbaLSk 2xjEP7wxDnU7hxeZF8e4LgDKaw== X-Google-Smtp-Source: ACJfBovxx31efHVnoW/QxrSjifMhRCl3d1azw9HWwUjPeuVUeKmyc4yzpix1h7MPdIhPzcvadn2oTA== X-Received: by 10.36.25.205 with SMTP id b196mr386912itb.25.1513042658097; Mon, 11 Dec 2017 17:37:38 -0800 (PST) Received: from zebian ([45.2.119.34]) by smtp.googlemail.com with ESMTPSA id o200sm4335115itg.10.2017.12.11.17.37.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 11 Dec 2017 17:37:37 -0800 (PST) From: Noam Postavsky To: Callum Cameron Subject: Re: bug#17231: [PATCH] term.el: unreliable directory tracking References: Date: Mon, 11 Dec 2017 20:37:35 -0500 In-Reply-To: (Callum Cameron's message of "Wed, 9 Apr 2014 11:12:25 +0100") Message-ID: <87h8swenfk.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 17231 Cc: 17231@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 (/) So this has been sitting for a while... Callum Cameron writes: > The patch checks to see if there is an incomplete command at the end > of term-emulate-terminal's input string, and, if so, saves it so the > whole command can be processed when the next string arrives. I'm a > Lisp newbie, so I don't know if this is the best way to do it, and it > isn't foolproof - if the command gets split in the 'AnSiT' magic, it > won't get handled. But I've never seen this happen (I've only ever > seen the trailing newline get split off), and I've been using it for a > few weeks without problems, and without any noticeable slowdown. The patch looks okay to me. It's a bit unfortunate that it adds yet another way to store partial strings; I have a patch which fixes things in a more unified way, but my patch rewrites too much to go on the release branch. So I think it would be nice if this patch could go to emacs-26. I presume you don't have copyright assignment (so the patch should be marked as a tiny change)? > + (defvar term-partial-ansi-terminal-message nil "Keep partial ansi > + terminal messages for future processing.") And this newline in the middle of the docstring should be fixed. From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 18 22:30:27 2018 Received: (at 17231) by debbugs.gnu.org; 19 Jan 2018 03:30:27 +0000 Received: from localhost ([127.0.0.1]:33936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ecNNr-00052W-4M for submit@debbugs.gnu.org; Thu, 18 Jan 2018 22:30:27 -0500 Received: from mail-io0-f180.google.com ([209.85.223.180]:41546) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ecNNo-00052A-GI; Thu, 18 Jan 2018 22:30:25 -0500 Received: by mail-io0-f180.google.com with SMTP id f6so742804ioh.8; Thu, 18 Jan 2018 19:30:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=JDGsFePq2x/pX850yYeCssqd0fGhvxO7YmybyMKNlIs=; b=WoybjjJO95E+LD5UJPUN8iBwYs1jeTwDRGpRQSrIEEVhIw1WR4IU3Wyo4r7JNNUWAu vis0V+/ap4hylg8pIJo30rIbi9vjy7xfySbqgUzt8PEHOaydbeg0vfvwpGXHYaCxideG mw4+8KbdZUejiFPEDBMM3Rmf1Rgpo5aeUMyZ9/8CBptQHt/f2LtVvq+L/+95swEkD8Bd PiMFJshfOlEWPmJVGgBdVqQ51A0XIggseFhwGioYbHS7CxYyFtAuV3oLlkaetyPxZMvb Jguf8Pd/9PNbJTpRNyJRWPLIMg3ecKAOUg4S0OKNL5m2UqXUJ4A7zYSk2hCvm+MVUY/6 ipfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=JDGsFePq2x/pX850yYeCssqd0fGhvxO7YmybyMKNlIs=; b=EunWUu8QgIsDJxrmdqRmmtdnoYvudtUQuI7uFCpN0EGVvl/tJho2yG5iESvv/JYMBf GWwL+IR+a1cj5crsW+Ni610j6NCbsAKFbLBxYFf50WUzqIk/2uhTlT8Umrj+DRB7AFa4 8m/QUlIGKZ0R3TXYV32S96sp+Q3z3Z7sMF9drsRaxL6sQaVWMXqk2/nkZt8867ykOwhf 4NbqrBnqkjlZ+ib6yoYSp+4VR/PALn9ZJbau+qVvd/8VulAeTYrkzv2SMeFvDSsYu+6z ldEGL9J/CqlwxMuJ54yBRfDBzVPPT9bV/Icmx4S9dVxvHCKsjz28mAohUTiFHglv+7MG AvBg== X-Gm-Message-State: AKwxytf/jWYIKcxd4y2lhArBYHH7Pm7ZCDlqQlOt0lePm3mOJvXH71ze BXrBryULk89wUsVZpN5DpKU9Og== X-Google-Smtp-Source: ACJfBotNNUe9jVrLaDH6NxC0oaFEZWuGxl4g0gvQW66asIJ8BRBc2+s2DKD/QqJ1AHzG4st20qtKsA== X-Received: by 10.107.68.17 with SMTP id r17mr8842749ioa.13.1516332618604; Thu, 18 Jan 2018 19:30:18 -0800 (PST) Received: from zebian ([45.2.119.34]) by smtp.googlemail.com with ESMTPSA id 140sm1541595itx.3.2018.01.18.19.30.15 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 18 Jan 2018 19:30:16 -0800 (PST) From: Noam Postavsky To: Callum Cameron Subject: Re: bug#17231: [PATCH] term.el: unreliable directory tracking References: <87h8swenfk.fsf@users.sourceforge.net> Date: Thu, 18 Jan 2018 22:30:14 -0500 In-Reply-To: <87h8swenfk.fsf@users.sourceforge.net> (Noam Postavsky's message of "Mon, 11 Dec 2017 20:37:35 -0500") Message-ID: <87zi5ao795.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 17231 Cc: 17231@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.5 (/) tags 17231 fixed close 17231 26.1 quit Noam Postavsky writes: > The patch looks okay to me. It's a bit unfortunate that it adds yet > another way to store partial strings; I have a patch which fixes things > in a more unified way, but my patch rewrites too much to go on the > release branch. > > So I think it would be nice if this patch could go to emacs-26. Pushed to emacs-26 [1: 5472568a3c], and some tests in a followup commit [2: 1d50c185f0]. I pushed my more invasive patch to master [3: 47019a521f]. [1: 5472568a3c]: 2018-01-18 22:17:07 -0500 Handle split AnSiT messages for term.el (Bug#17231) https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=5472568a3c2338856d25380012ee4398e024c806 [2: 1d50c185f0]: 2018-01-18 22:17:40 -0500 Add tests for term.el https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=1d50c185f0c857bb1a85945314b522540071f796 [3: 47019a521f]: 2018-01-18 22:25:35 -0500 Switch term.el to lexical binding, and clean up code a bit https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=47019a521f774fbd13441e178a6a82c9989b9912 From unknown Tue Sep 09 18:21:59 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 16 Feb 2018 12:24:04 +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