From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Sean Devlin Newsgroups: gmane.emacs.bugs Subject: bug#44933: 27.1; Ephemeral frame selection shrinks minibuffer Date: Sat, 12 Dec 2020 15:23:17 -0500 Message-ID: <3C983E15-33B0-47B1-BDF1-10FD049AEF64@toadstyle.org> References: <65A18F9E-3193-4DBD-84D8-4EDCA5AB95A1@toadstyle.org> <0dec5a12-e2f6-a210-6300-835bb3358d53@gmx.at> <000004F6-7D67-4D1D-84EA-517E254FBBDE@toadstyle.org> <782db472-6b44-c62c-e175-44e77589b85f@gmx.at> <2802d2d9-2f09-ca7a-1a79-abf2eb0fa376@gmx.at> <2c47fc05-37f4-8b3c-7aa3-7cb64b31e3c1@gmx.at> <27E5B1BA-BD49-493D-8E12-CE42B1AD3E2F@toadstyle.org> Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.40.0.2.31\)) Content-Type: multipart/alternative; boundary="Apple-Mail=_DA755593-6DB7-496C-9F93-F9FB575B5D31" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7058"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 44933@debbugs.gnu.org To: martin rudalics Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Dec 12 21:48:15 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1koBoM-0001kj-VF for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 12 Dec 2020 21:48:15 +0100 Original-Received: from localhost ([::1]:48756 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1koBoM-0008B4-0o for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 12 Dec 2020 15:48:14 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49788) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1koBQw-0006fP-5c for bug-gnu-emacs@gnu.org; Sat, 12 Dec 2020 15:24:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:35244) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1koBQv-00056K-RT for bug-gnu-emacs@gnu.org; Sat, 12 Dec 2020 15:24:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1koBQv-0001ZI-Jo for bug-gnu-emacs@gnu.org; Sat, 12 Dec 2020 15:24:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Sean Devlin Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 12 Dec 2020 20:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 44933 X-GNU-PR-Package: emacs Original-Received: via spool by 44933-submit@debbugs.gnu.org id=B44933.16078046075978 (code B ref 44933); Sat, 12 Dec 2020 20:24:01 +0000 Original-Received: (at 44933) by debbugs.gnu.org; 12 Dec 2020 20:23:27 +0000 Original-Received: from localhost ([127.0.0.1]:46791 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koBQM-0001YM-T5 for submit@debbugs.gnu.org; Sat, 12 Dec 2020 15:23:26 -0500 Original-Received: from mail-qt1-f174.google.com ([209.85.160.174]:39381) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koBQL-0001Y8-SJ for 44933@debbugs.gnu.org; Sat, 12 Dec 2020 15:23:26 -0500 Original-Received: by mail-qt1-f174.google.com with SMTP id a6so9158664qtw.6 for <44933@debbugs.gnu.org>; Sat, 12 Dec 2020 12:23:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toadstyle-org.20150623.gappssmtp.com; s=20150623; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=XpncBJkUUobHUP5JzpZYfCNpoZ2t5KjndtlvBFO6lZA=; b=kp2DjcTOdVw1CEh1D9bxGW4YXdSNOaPQoxV9VMT1WcYyXNm/giDKxxSLt4dKJe5wpH gza53csK5Wh3vtRRSoasWPelX2wXU+f864huZXwO5qTxPy8GCLy4CS1SdfMF/Su/c13N dzpZYEk+hYIc4j7+R1yctR0Qpt60DJwPgxENIjimBduneHW47X+57Sz9IrwPDVpyANGw 9fKqaaKxyayzf26YV/b8p9lL7Z1wJwQFne+Jpm784eJzQEspwhd1Qh066tL5/Ewpjizr j9ejqHFj8qdL3+gT8zUd64rL+eycfW7fDiv/b5GoazW3p7Fb4uLVCvFeg0BzKBohhrDc 63XQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=XpncBJkUUobHUP5JzpZYfCNpoZ2t5KjndtlvBFO6lZA=; b=qfRyqrj1mz79QbRx1U6vS4erF/8yfNoB/gVlFj3Yc1N/FDElOxo7fwGtE2macm0pYb vnhfHsb3isH/nKsJ8MkYhBysLyhBgaTwgq0uouCOY5aqb9YogxDsEgIycZjxAxJwFZYv Q4xWrQizwhkl9lA3diI1FgeY5N1u1UTsXjismFNTQtJlZFfVMhWQ3o5QrjDaYckCXi8f 8nlQI9ap0Pr6nkkQjbBJnvH+24WrY3d4rhOyANlVdDL4joalj2vDOswk7HCWK/hPVgNc wDkXqUqE9FZvkgStydAW0Ap963B+EvSSUa9ZQqaVm59Cp3IJ4VEvJwEyDQojBx4s/tve lmLA== X-Gm-Message-State: AOAM530ZNea715aVPp72KH85cl2apQ+7FyKyVj4D14QmWDZoaCNEAnN6 0JmRZhhTsU9Sn8vy7NnJVlwOQw== X-Google-Smtp-Source: ABdhPJxaWxHxN2jkTBpiC2ptigCBubHgodRu/I3ZjuaTMeaO6aAeTGa+oSM/2jwkU3Ugb/mHU+Zu1g== X-Received: by 2002:ac8:5a01:: with SMTP id n1mr4067716qta.227.1607804600208; Sat, 12 Dec 2020 12:23:20 -0800 (PST) Original-Received: from ?IPv6:2604:2000:14c6:84b0:4e4:3667:5204:cdce? ([2604:2000:14c6:84b0:4e4:3667:5204:cdce]) by smtp.gmail.com with ESMTPSA id c14sm9798787qtc.90.2020.12.12.12.23.19 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 12 Dec 2020 12:23:19 -0800 (PST) In-Reply-To: <27E5B1BA-BD49-493D-8E12-CE42B1AD3E2F@toadstyle.org> X-Mailer: Apple Mail (2.3654.40.0.2.31) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:195894 Archived-At: --Apple-Mail=_DA755593-6DB7-496C-9F93-F9FB575B5D31 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Hi Martin, Thanks for waiting on this update. I instrumented the code in a couple key places and then exercised the = bug. Attached is the log showing what happened. Basically, I put two calls to my log function around the window = selection in =E2=80=99term-emulate-terminal and one inside = =E2=80=98window=E2=80=94resize-root-window-vertically. Next, I opened a = term window running a script that prints some output every few seconds. = I had one frame running the script under term, and I selected a second = frame and invoked some completing read command. As before, the = minibuffer window shrank when the script printed some output. You can find the start of each entry by searching for the regexp = =E2=80=9C^>>>>=E2=80=9D. I wasn=E2=80=99t sure what to include in each = entry, but I printed the selected frame, the selected window, that = window=E2=80=99s buffer, and a backtrace. I can easily add more = information and run the experiment again, if there=E2=80=99s something = else you=E2=80=99d like to see. Thanks! > On Dec 2, 2020, at 1:24 PM, Sean Devlin wrote: >=20 > Hi Martin, >=20 > Thanks for all the helpful info! >=20 >> On Dec 2, 2020, at 2:52 AM, martin rudalics wrote: >>=20 >>> I forgot to say that _all_ normal mini window resizing goes through >>> 'window--resize-root-window-vertically' in window.el. So it will >>> probably suffice to instrument just that function (in an already = running >>> Emacs only, else you have to rebuild because window.el is preloaded) = and >>> don't have to tinker with C code at all. >>=20 >> Imprecise again: The above covers only the automatic resizing = triggered >> by redisplay (which is what we are interested in). Manual resizing = the >> minibuffer window is done in 'window--resize-mini-window' (also in >> window.el) so if such manual resizing may happen in between you have = to >> instrument that as well. >=20 > I see, I=E2=80=99ll take a look at these functions. Thanks! >=20 >>=20 >> martin --Apple-Mail=_DA755593-6DB7-496C-9F93-F9FB575B5D31 Content-Type: multipart/mixed; boundary="Apple-Mail=_1AF963F5-C33E-4E33-98B0-1E23A573EC35" --Apple-Mail=_1AF963F5-C33E-4E33-98B0-1E23A573EC35 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8
Hi Martin,

Thanks for waiting on this update.

I instrumented the code in a couple key = places and then exercised the bug. Attached is the log showing what = happened.

Basically, I put two calls to my log function around the = window selection in =E2=80=99term-emulate-terminal and one inside = =E2=80=98window=E2=80=94resize-root-window-vertically. Next, I opened a = term window running a script that prints some output every few seconds. = I had one frame running the script under term, and I selected a second = frame and invoked some completing read command. As before, the = minibuffer window shrank when the script printed some output.

You can find the start = of each entry by searching for the regexp =E2=80=9C^>>>>=E2=80= =9D. I wasn=E2=80=99t sure what to include in each entry, but I printed = the selected frame, the selected window, that window=E2=80=99s buffer, = and a backtrace. I can easily add more information and run the = experiment again, if there=E2=80=99s something else you=E2=80=99d like = to see.

Thanks!

= --Apple-Mail=_1AF963F5-C33E-4E33-98B0-1E23A573EC35 Content-Disposition: attachment; filename=redisplay-minibuffer.log Content-Type: application/octet-stream; x-unix-mode=0644; name="redisplay-minibuffer.log" Content-Transfer-Encoding: quoted-printable >>>>=20term-emulate-window=20before=20selection=0Aselected=20frame:=20= #=0Aselected=20window:=20= #=0Aselected=20window=20buffer:=20=20= *Minibuf-1*=0A=20=20backtrace()=0A=20=20(let=20((standard-output=20= (get-buffer-create=20"*redisplay-minibuffer-log*")))=20(princ=20(format=20= ">>>>=20%s\n"=20msg))=20(princ=20(format=20"selected=20frame:=20%s\n"=20= (selected-frame)))=20(princ=20(format=20"selected=20window:=20%s\n"=20= (selected-window)))=20(princ=20(format=20"selected=20window=20buffer:=20= %s\n"=20(window-buffer=20(selected-window))))=20(backtrace)=20(princ=20= "\n\n\n"))=0A=20=20my/redisplay-minibuffer-log("term-emulate-window=20= before=20selection")=0A=20=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20(point)=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20'all)=20(and=20(eq=20selected=20win)=20(or=20(eq=20= scroll=20'this)=20(not=20save-point)))=20(and=20(eq=20scroll=20'others)=20= (not=20(eq=20selected=20win))))=20(when=20term-scroll-snap-to-bottom=20= (goto-char=20term-home-marker)=20(recenter=200))=20(goto-char=20= (process-mark=20proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20= win))=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20(point-max)=20win))))=20(save-excursion=20= (goto-char=20(point-max))=20(recenter=20-1))))=0A=20=20(progn=20(let=20= ((scroll=20term-scroll-to-bottom-on-output))=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20(or=20(=3D=20= (point)=20save-marker)=20(eq=20scroll=20t)=20(eq=20scroll=20'all)=20(and=20= (eq=20selected=20win)=20(or=20(eq=20scroll=20'this)=20(not=20= save-point)))=20(and=20(eq=20scroll=20'others)=20(not=20(eq=20selected=20= win))))=20(when=20term-scroll-snap-to-bottom=20(goto-char=20= term-home-marker)=20(recenter=200))=20(goto-char=20(process-mark=20= proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20win))=20= (recenter=20-1)))=20(when=20(and=20term-scroll-show-maximum-output=20(>=3D= =20(point)=20(process-mark=20proc))=20(or=20term-scroll-snap-to-bottom=20= (not=20(pos-visible-in-window-p=20(point-max)=20win))))=20= (save-excursion=20(goto-char=20(point-max))=20(recenter=20-1)))))=0A=20=20= (if=20(eq=20(window-buffer=20win)=20(process-buffer=20proc))=20(progn=20= (let=20((scroll=20term-scroll-to-bottom-on-output))=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20(or=20(=3D=20= (point)=20save-marker)=20(eq=20scroll=20t)=20(eq=20scroll=20'all)=20(and=20= (eq=20selected=20win)=20(or=20(eq=20scroll=20...)=20(not=20save-point)))=20= (and=20(eq=20scroll=20'others)=20(not=20(eq=20selected=20win))))=20(when=20= term-scroll-snap-to-bottom=20(goto-char=20term-home-marker)=20(recenter=20= 0))=20(goto-char=20(process-mark=20proc))=20(if=20(not=20= (pos-visible-in-window-p=20(point)=20win))=20(recenter=20-1)))=20(when=20= (and=20term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20...=20win))))=20(save-excursion=20(goto-char=20= (point-max))=20(recenter=20-1))))))=0A=20=20(when=20(eq=20(window-buffer=20= win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20(point)=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20'all)=20(and=20(eq=20selected=20win)=20(or=20(eq=20= scroll=20'this)=20(not=20save-point)))=20(and=20(eq=20scroll=20'others)=20= (not=20(eq=20selected=20win))))=20(when=20term-scroll-snap-to-bottom=20= (goto-char=20term-home-marker)=20(recenter=200))=20(goto-char=20= (process-mark=20proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20= win))=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20(point-max)=20win))))=20(save-excursion=20= (goto-char=20(point-max))=20(recenter=20-1)))))=0A=20=20(progn=20(setq=20= win=20(next-window=20win=20nil=20t))=20(when=20(eq=20(window-buffer=20= win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20(point)=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20'all)=20(and=20(eq=20selected=20win)=20(or=20(eq=20= scroll=20...)=20(not=20save-point)))=20(and=20(eq=20scroll=20'others)=20= (not=20(eq=20selected=20win))))=20(when=20term-scroll-snap-to-bottom=20= (goto-char=20term-home-marker)=20(recenter=200))=20(goto-char=20= (process-mark=20proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20= win))=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20...=20win))))=20(save-excursion=20(goto-char=20= (point-max))=20(recenter=20-1)))))=20(not=20(eq=20win=20last-win)))=0A=20= =20(while=20(progn=20(setq=20win=20(next-window=20win=20nil=20t))=20= (when=20(eq=20(window-buffer=20win)=20(process-buffer=20proc))=20(let=20= ((scroll=20term-scroll-to-bottom-on-output))=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20(or=20(=3D=20= (point)=20save-marker)=20(eq=20scroll=20t)=20(eq=20scroll=20'all)=20(and=20= (eq=20selected=20win)=20(or=20...=20...))=20(and=20(eq=20scroll=20...)=20= (not=20...)))=20(when=20term-scroll-snap-to-bottom=20(goto-char=20= term-home-marker)=20(recenter=200))=20(goto-char=20(process-mark=20= proc))=20(if=20(not=20(pos-visible-in-window-p=20...=20win))=20(recenter=20= -1)))=20(when=20(and=20term-scroll-show-maximum-output=20(>=3D=20(point)=20= (process-mark=20proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= ...)))=20(save-excursion=20(goto-char=20(point-max))=20(recenter=20= -1)))))=20(not=20(eq=20win=20last-win))))=0A=20=20(progn=20(when=20= (marker-buffer=20term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= (match-string=201=20str)))=20(ctl-params-end=20(and=20funny=20(match-end=20= 1)))=20(ctl-end=20(if=20funny=20(match-end=200)=20(setq=20funny=20...)=20= (if=20funny=20...=20...)=20(1+=20str-length))))=20(when=20(>=20funny=20= i)=20(when=20term-do-line-wrapping=20(term-down=201=20t)=20= (term-move-to-column=200)=20(setq=20term-do-line-wrapping=20nil))=20= (setq=20decoded-substring=20(decode-coding-string=20(substring=20str=20i=20= funny)=20locale-coding-system=20t))=20(when=20(=3D=20funny=20str-length)=20= (let=20(...=20...)=20(while=20...=20...)=20(when=20...=20...=20...=20...=20= ...)))=20(let=20((old-column=20...)=20(old-point=20...)=20columns)=20= (unless=20term-suppress-hard-newline=20(while=20...=20...=20...=20...=20= ...=20...=20...=20...))=20(insert=20decoded-substring)=20(setq=20= term-current-column=20(current-column)=20columns=20(-=20= term-current-column=20old-column))=20(when=20(not=20...)=20(let=20...=20= ...=20...=20...))=20(when=20term-insert-mode=20(let=20...=20...=20...=20= ...))=20(put-text-property=20old-point=20(point)=20'font-lock-face=20= term-current-face))=20(when=20(eq=20(term-current-column)=20term-width)=20= (term-move-columns=20-1)=20(setq=20term-do-line-wrapping=20(point)))=20= (setq=20term-current-column=20nil)=20(setq=20i=20funny))=20= (pcase-exhaustive=20(and=20(<=3D=20ctl-end=20str-length)=20(aref=20str=20= i))=20(9=20(let=20(...)=20(term-move-to-column=20...)))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20(and=20term-kill-echo-list=20= ...)=20(term-down=201=20t)))=20(8=20(term-move-columns=20-1))=20(7=20= (beep=20t))=20(26=20(funcall=20term-command-function=20= (decode-coding-string=20...=20locale-coding-system=20t)))=20(27=20(pcase=20= (aref=20str=20...)=20(91=20...)=20(68=20...=20...)=20(77=20...)=20(55=20= ...=20...)=20(56=20...)=20(99=20...)=20(65=20...)))=20((or=200=2014=2015=20= 'nil)=20nil))=20(unless=20(eq=20term-do-line-wrapping=20(point))=20(setq=20= term-do-line-wrapping=20nil))=20(if=20(term-handling-pager)=20(progn=20= (if=20(>=20...=200)=20(setq=20term-terminal-undecoded-bytes=20...)=20(if=20= ...=20...=20...=20...)=20(goto-char=20...))=20(make-local-variable=20= 'term-pager-old-filter)=20(setq=20term-pager-old-filter=20= (process-filter=20proc))=20(set-process-filter=20proc=20= term-pager-filter)=20(setq=20i=20str-length))=20(setq=20i=20ctl-end)))))=20= (when=20(>=3D=20(term-current-row)=20term-height)=20= (term-handle-deferred-scroll))=20(set-marker=20(process-mark=20proc)=20= (point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20...=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20...)=20(and=20...=20...)=20(and=20...=20...))=20= (when=20term-scroll-snap-to-bottom=20(goto-char=20term-home-marker)=20= (recenter=200))=20(goto-char=20(process-mark=20proc))=20(if=20(not=20= ...)=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20...=20...)=20(or=20= term-scroll-snap-to-bottom=20...))=20(save-excursion=20(goto-char=20...)=20= (recenter=20-1)))))=20(not=20(eq=20win=20last-win))))=20(when=20(>=20= term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil))=0A=20=20(unwind-protect=20(progn=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= ...))=20(ctl-params-end=20(and=20funny=20...))=20(ctl-end=20(if=20funny=20= ...=20...=20...=20...)))=20(when=20(>=20funny=20i)=20(when=20= term-do-line-wrapping=20(term-down=201=20t)=20(term-move-to-column=200)=20= (setq=20term-do-line-wrapping=20nil))=20(setq=20decoded-substring=20= (decode-coding-string=20...=20locale-coding-system=20t))=20(when=20(=3D=20= funny=20str-length)=20(let=20...=20...=20...))=20(let=20(...=20...=20= columns)=20(unless=20term-suppress-hard-newline=20...)=20(insert=20= decoded-substring)=20(setq=20term-current-column=20...=20columns=20...)=20= (when=20...=20...)=20(when=20term-insert-mode=20...)=20= (put-text-property=20old-point=20...=20...=20term-current-face))=20(when=20= (eq=20...=20term-width)=20(term-move-columns=20-1)=20(setq=20= term-do-line-wrapping=20...))=20(setq=20term-current-column=20nil)=20= (setq=20i=20funny))=20(pcase-exhaustive=20(and=20(<=3D=20ctl-end=20= str-length)=20(aref=20str=20i))=20(9=20(let=20...=20...))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20...=20...))=20(8=20= (term-move-columns=20-1))=20(7=20(beep=20t))=20(26=20(funcall=20= term-command-function=20...))=20(27=20(pcase=20...=20...=20...=20...=20= ...=20...=20...=20...))=20((or=200=2014=2015=20...)=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20(point))=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20(if=20...=20...=20...=20= ...)=20(make-local-variable=20...)=20(setq=20term-pager-old-filter=20= ...)=20(set-process-filter=20proc=20term-pager-filter)=20(setq=20i=20= str-length))=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20= (term-current-row)=20term-height)=20(term-handle-deferred-scroll))=20= (set-marker=20(process-mark=20proc)=20(point))=20(when=20(stringp=20= decoded-substring)=20(term-watch-for-password-prompt=20= decoded-substring))=20(when=20save-point=20(goto-char=20save-point)=20= (set-marker=20save-point=20nil))=20(when=20(and=20term-pending-frame=20= (eq=20(window-buffer=20selected)=20(current-buffer)))=20= (term-display-line=20(car=20term-pending-frame)=20(cdr=20= term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20win=20= selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20...=20...=20...=20...=20...)=20(when=20= term-scroll-snap-to-bottom=20...=20...)=20(goto-char=20...)=20(if=20...=20= ...))=20(when=20(and=20term-scroll-show-maximum-output=20...=20...)=20= (save-excursion=20...=20...))))=20(not=20(eq=20win=20last-win))))=20= (when=20(>=20term-buffer-maximum-size=200)=20(save-excursion=20= (goto-char=20(process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil))=20(internal--after-save-selected-window=20= save-selected-window--state))=0A=20=20(save-current-buffer=20= (unwind-protect=20(progn=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20...)=20= (ctl-params-end=20...)=20(ctl-end=20...))=20(when=20(>=20funny=20i)=20= (when=20term-do-line-wrapping=20...=20...=20...)=20(setq=20= decoded-substring=20...)=20(when=20...=20...)=20(let=20...=20...=20...=20= ...=20...=20...=20...)=20(when=20...=20...=20...)=20(setq=20= term-current-column=20nil)=20(setq=20i=20funny))=20(pcase-exhaustive=20= (and=20...=20...)=20(9=20...)=20(13=20...=20...)=20(10=20...)=20(8=20= ...)=20(7=20...)=20(26=20...)=20(27=20...)=20(...=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20...)=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20...=20...=20...=20...=20= ...)=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20(term-current-row)=20= term-height)=20(term-handle-deferred-scroll))=20(set-marker=20= (process-mark=20proc)=20(point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20(...)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20...=20...=20...=20= ...)=20(when=20...=20...)))=20(not=20(eq=20win=20last-win))))=20(when=20= (>=20term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20...)))=20(forward-line=20(-=20= term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil))=20= (internal--after-save-selected-window=20save-selected-window--state)))=0A= =20=20(let=20((save-selected-window--state=20= (internal--before-save-selected-window)))=20(save-current-buffer=20= (unwind-protect=20(progn=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20...=20...)=20= (term-in-line-mode))=20(narrow-to-region=20(point-min)=20(process-mark=20= proc)))=20(when=20term-log-buffer=20(princ=20str=20term-log-buffer))=20= (when=20term-terminal-undecoded-bytes=20(setq=20str=20(concat=20= term-terminal-undecoded-bytes=20str))=20(setq=20str-length=20(length=20= str))=20(setq=20term-terminal-undecoded-bytes=20nil))=20(while=20(<=20i=20= str-length)=20(setq=20funny=20(string-match=20term-control-seq-regexp=20= str=20i))=20(let=20(...=20...=20...)=20(when=20...=20...=20...=20...=20= ...=20...=20...=20...)=20(pcase-exhaustive=20...=20...=20...=20...=20...=20= ...=20...=20...=20...)=20(unless=20...=20...)=20(if=20...=20...=20= ...))))=20(when=20(>=3D=20(term-current-row)=20term-height)=20= (term-handle-deferred-scroll))=20(set-marker=20(process-mark=20proc)=20= (point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= ...=20...)=20(let=20...=20...=20...=20...=20...=20...))=20(not=20(eq=20= win=20last-win))))=20(when=20(>=20term-buffer-maximum-size=200)=20= (save-excursion=20(goto-char=20(process-mark=20...))=20(forward-line=20= (-=20term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil))=20= (internal--after-save-selected-window=20save-selected-window--state))))=0A= =20=20(save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= (match-string=201=20str)))=20(ctl-params-end=20(and=20funny=20(match-end=20= 1)))=20(ctl-end=20(if=20funny=20(match-end=200)=20(setq=20funny=20...)=20= (if=20funny=20...=20...)=20(1+=20str-length))))=20(when=20(>=20funny=20= i)=20(when=20term-do-line-wrapping=20(term-down=201=20t)=20= (term-move-to-column=200)=20(setq=20term-do-line-wrapping=20nil))=20= (setq=20decoded-substring=20(decode-coding-string=20(substring=20str=20i=20= funny)=20locale-coding-system=20t))=20(when=20(=3D=20funny=20str-length)=20= (let=20(...=20...)=20(while=20...=20...)=20(when=20...=20...=20...=20...=20= ...)))=20(let=20((old-column=20...)=20(old-point=20...)=20columns)=20= (unless=20term-suppress-hard-newline=20(while=20...=20...=20...=20...=20= ...=20...=20...=20...))=20(insert=20decoded-substring)=20(setq=20= term-current-column=20(current-column)=20columns=20(-=20= term-current-column=20old-column))=20(when=20(not=20...)=20(let=20...=20= ...=20...=20...))=20(when=20term-insert-mode=20(let=20...=20...=20...=20= ...))=20(put-text-property=20old-point=20(point)=20'font-lock-face=20= term-current-face))=20(when=20(eq=20(term-current-column)=20term-width)=20= (term-move-columns=20-1)=20(setq=20term-do-line-wrapping=20(point)))=20= (setq=20term-current-column=20nil)=20(setq=20i=20funny))=20= (pcase-exhaustive=20(and=20(<=3D=20ctl-end=20str-length)=20(aref=20str=20= i))=20(9=20(let=20(...)=20(term-move-to-column=20...)))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20(and=20term-kill-echo-list=20= ...)=20(term-down=201=20t)))=20(8=20(term-move-columns=20-1))=20(7=20= (beep=20t))=20(26=20(funcall=20term-command-function=20= (decode-coding-string=20...=20locale-coding-system=20t)))=20(27=20(pcase=20= (aref=20str=20...)=20(91=20...)=20(68=20...=20...)=20(77=20...)=20(55=20= ...=20...)=20(56=20...)=20(99=20...)=20(65=20...)))=20((or=200=2014=2015=20= 'nil)=20nil))=20(unless=20(eq=20term-do-line-wrapping=20(point))=20(setq=20= term-do-line-wrapping=20nil))=20(if=20(term-handling-pager)=20(progn=20= (if=20(>=20...=200)=20(setq=20term-terminal-undecoded-bytes=20...)=20(if=20= ...=20...=20...=20...)=20(goto-char=20...))=20(make-local-variable=20= 'term-pager-old-filter)=20(setq=20term-pager-old-filter=20= (process-filter=20proc))=20(set-process-filter=20proc=20= term-pager-filter)=20(setq=20i=20str-length))=20(setq=20i=20ctl-end)))))=20= (when=20(>=3D=20(term-current-row)=20term-height)=20= (term-handle-deferred-scroll))=20(set-marker=20(process-mark=20proc)=20= (point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20...=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20...)=20(and=20...=20...)=20(and=20...=20...))=20= (when=20term-scroll-snap-to-bottom=20(goto-char=20term-home-marker)=20= (recenter=200))=20(goto-char=20(process-mark=20proc))=20(if=20(not=20= ...)=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20...=20...)=20(or=20= term-scroll-snap-to-bottom=20...))=20(save-excursion=20(goto-char=20...)=20= (recenter=20-1)))))=20(not=20(eq=20win=20last-win))))=20(when=20(>=20= term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil))=0A=20=20(let*=20((i=200)=20funny=20decoded-substring=20save-point=20= save-marker=20win=20(inhibit-read-only=20t)=20(buffer-undo-list=20t)=20= (selected=20(selected-window))=20last-win=20(str-length=20(length=20= str)))=20(save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= ...))=20(ctl-params-end=20(and=20funny=20...))=20(ctl-end=20(if=20funny=20= ...=20...=20...=20...)))=20(when=20(>=20funny=20i)=20(when=20= term-do-line-wrapping=20(term-down=201=20t)=20(term-move-to-column=200)=20= (setq=20term-do-line-wrapping=20nil))=20(setq=20decoded-substring=20= (decode-coding-string=20...=20locale-coding-system=20t))=20(when=20(=3D=20= funny=20str-length)=20(let=20...=20...=20...))=20(let=20(...=20...=20= columns)=20(unless=20term-suppress-hard-newline=20...)=20(insert=20= decoded-substring)=20(setq=20term-current-column=20...=20columns=20...)=20= (when=20...=20...)=20(when=20term-insert-mode=20...)=20= (put-text-property=20old-point=20...=20...=20term-current-face))=20(when=20= (eq=20...=20term-width)=20(term-move-columns=20-1)=20(setq=20= term-do-line-wrapping=20...))=20(setq=20term-current-column=20nil)=20= (setq=20i=20funny))=20(pcase-exhaustive=20(and=20(<=3D=20ctl-end=20= str-length)=20(aref=20str=20i))=20(9=20(let=20...=20...))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20...=20...))=20(8=20= (term-move-columns=20-1))=20(7=20(beep=20t))=20(26=20(funcall=20= term-command-function=20...))=20(27=20(pcase=20...=20...=20...=20...=20= ...=20...=20...=20...))=20((or=200=2014=2015=20...)=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20(point))=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20(if=20...=20...=20...=20= ...)=20(make-local-variable=20...)=20(setq=20term-pager-old-filter=20= ...)=20(set-process-filter=20proc=20term-pager-filter)=20(setq=20i=20= str-length))=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20= (term-current-row)=20term-height)=20(term-handle-deferred-scroll))=20= (set-marker=20(process-mark=20proc)=20(point))=20(when=20(stringp=20= decoded-substring)=20(term-watch-for-password-prompt=20= decoded-substring))=20(when=20save-point=20(goto-char=20save-point)=20= (set-marker=20save-point=20nil))=20(when=20(and=20term-pending-frame=20= (eq=20(window-buffer=20selected)=20(current-buffer)))=20= (term-display-line=20(car=20term-pending-frame)=20(cdr=20= term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20win=20= selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20...=20...=20...=20...=20...)=20(when=20= term-scroll-snap-to-bottom=20...=20...)=20(goto-char=20...)=20(if=20...=20= ...))=20(when=20(and=20term-scroll-show-maximum-output=20...=20...)=20= (save-excursion=20...=20...))))=20(not=20(eq=20win=20last-win))))=20= (when=20(>=20term-buffer-maximum-size=200)=20(save-excursion=20= (goto-char=20(process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil)))=0A=20=20(save-current-buffer=20(set-buffer=20(process-buffer=20= proc))=20(let*=20((i=200)=20funny=20decoded-substring=20save-point=20= save-marker=20win=20(inhibit-read-only=20t)=20(buffer-undo-list=20t)=20= (selected=20(selected-window))=20last-win=20(str-length=20(length=20= str)))=20(save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20...)=20= (ctl-params-end=20...)=20(ctl-end=20...))=20(when=20(>=20funny=20i)=20= (when=20term-do-line-wrapping=20...=20...=20...)=20(setq=20= decoded-substring=20...)=20(when=20...=20...)=20(let=20...=20...=20...=20= ...=20...=20...=20...)=20(when=20...=20...=20...)=20(setq=20= term-current-column=20nil)=20(setq=20i=20funny))=20(pcase-exhaustive=20= (and=20...=20...)=20(9=20...)=20(13=20...=20...)=20(10=20...)=20(8=20= ...)=20(7=20...)=20(26=20...)=20(27=20...)=20(...=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20...)=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20...=20...=20...=20...=20= ...)=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20(term-current-row)=20= term-height)=20(term-handle-deferred-scroll))=20(set-marker=20= (process-mark=20proc)=20(point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20(...)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20...=20...=20...=20= ...)=20(when=20...=20...)))=20(not=20(eq=20win=20last-win))))=20(when=20= (>=20term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20...)))=20(forward-line=20(-=20= term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil)))=20(when=20= (get-buffer-window=20(current-buffer))=20(redisplay)))=0A=20=20= (with-current-buffer=20(process-buffer=20proc)=20(let*=20((i=200)=20= funny=20decoded-substring=20save-point=20save-marker=20win=20= (inhibit-read-only=20t)=20(buffer-undo-list=20t)=20(selected=20= (selected-window))=20last-win=20(str-length=20(length=20str)))=20= (save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20...)=20= (ctl-params-end=20...)=20(ctl-end=20...))=20(when=20(>=20funny=20i)=20= (when=20term-do-line-wrapping=20...=20...=20...)=20(setq=20= decoded-substring=20...)=20(when=20...=20...)=20(let=20...=20...=20...=20= ...=20...=20...=20...)=20(when=20...=20...=20...)=20(setq=20= term-current-column=20nil)=20(setq=20i=20funny))=20(pcase-exhaustive=20= (and=20...=20...)=20(9=20...)=20(13=20...=20...)=20(10=20...)=20(8=20= ...)=20(7=20...)=20(26=20...)=20(27=20...)=20(...=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20...)=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20...=20...=20...=20...=20= ...)=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20(term-current-row)=20= term-height)=20(term-handle-deferred-scroll))=20(set-marker=20= (process-mark=20proc)=20(point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20(...)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20...=20...=20...=20= ...)=20(when=20...=20...)))=20(not=20(eq=20win=20last-win))))=20(when=20= (>=20term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20...)))=20(forward-line=20(-=20= term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil)))=20(when=20= (get-buffer-window=20(current-buffer))=20(redisplay)))=0A=20=20= term-emulate-terminal(#=20"something\15\n")=0A=20=20= read-from-minibuffer("Find=20file:=20"=20nil=20(keymap=20(9=20.=20= selectrum-insert-current-candidate)=20(10=20.=20= selectrum-submit-exact-input)=20(C-M-backspace=20.=20backward-kill-sexp)=20= (27=20keymap=20(115=20keymap=20(114=20.=20= selectrum-prescient-toggle-regexp)=20(112=20.=20= selectrum-prescient-toggle-prefix)=20(108=20.=20= selectrum-prescient-toggle-literal)=20(105=20.=20= selectrum-prescient-toggle-initialism)=20(102=20.=20= selectrum-prescient-toggle-fuzzy)=20(97=20.=20= selectrum-prescient-toggle-anchored))=20(67108991=20.=20= backward-kill-sexp))=20(remap=20keymap=20= (previous-matching-history-element=20.=20selectrum-select-from-history)=20= (kill-ring-save=20.=20selectrum-kill-ring-save)=20(end-of-buffer=20.=20= selectrum-goto-end)=20(beginning-of-buffer=20.=20= selectrum-goto-beginning)=20(minibuffer-beginning-of-buffer=20.=20= selectrum-goto-beginning)=20(scroll-up-command=20.=20= selectrum-next-page)=20(scroll-down-command=20.=20= selectrum-previous-page)=20(exit-minibuffer=20.=20= selectrum-select-current-candidate)=20(next-line-or-history-element=20.=20= selectrum-next-candidate)=20(previous-line-or-history-element=20.=20= selectrum-previous-candidate)=20(next-line=20.=20= selectrum-next-candidate)=20(previous-line=20.=20= selectrum-previous-candidate)=20(minibuffer-keyboard-quit=20.=20= abort-recursive-edit)=20(keyboard-quit=20.=20abort-recursive-edit))=20= keymap=20(remap=20keymap=20(previous-matching-history-element=20.=20= selectrum-select-from-history))=20(menu-bar=20keymap=20(minibuf=20= "Minibuf"=20keymap=20(previous=20menu-item=20"Previous=20History=20Item"=20= previous-history-element=20:help=20"Put=20previous=20minibuffer=20= history=20element=20in=20the=20min...")=20(next=20menu-item=20"Next=20= History=20Item"=20next-history-element=20:help=20"Put=20next=20= minibuffer=20history=20element=20in=20the=20minibuf...")=20= (isearch-backward=20menu-item=20"Isearch=20History=20Backward"=20= isearch-backward=20:help=20"Incrementally=20search=20minibuffer=20= history=20backward")=20(isearch-forward=20menu-item=20"Isearch=20History=20= Forward"=20isearch-forward=20:help=20"Incrementally=20search=20= minibuffer=20history=20forward")=20(return=20menu-item=20"Enter"=20= exit-minibuffer=20:key-sequence=20"\15"=20:help=20"Terminate=20input=20= and=20exit=20minibuffer")=20(quit=20menu-item=20"Quit"=20= abort-recursive-edit=20:help=20"Abort=20input=20and=20exit=20= minibuffer")=20"Minibuf"))=20(10=20.=20exit-minibuffer)=20(13=20.=20= exit-minibuffer)=20(7=20.=20minibuffer-keyboard-quit)=20(C-tab=20.=20= file-cache-minibuffer-complete)=20(9=20.=20self-insert-command)=20= (XF86Back=20.=20previous-history-element)=20(up=20.=20= previous-line-or-history-element)=20(prior=20.=20= previous-history-element)=20(XF86Forward=20.=20next-history-element)=20= (down=20.=20next-line-or-history-element)=20(next=20.=20= next-history-element)=20(27=20keymap=20(111=20.=20embark-act)=20(60=20.=20= minibuffer-beginning-of-buffer)=20(114=20.=20= previous-matching-history-element)=20(115=20.=20= next-matching-history-element)=20(112=20.=20previous-history-element)=20= (110=20.=20next-history-element)))=20nil=20file-name-history)=0A=20=20= selectrum-read("Find=20file:=20"=20#f(compiled-function=20(input)=20= #)=20:default-candidate=20"~/tmp/"=20= :initial-input=20"~/tmp/"=20:history=20file-name-history=20= :require-match=20nil=20:may-modify-candidates=20t=20= :minibuffer-completion-table=20read-file-name-internal=20= :minibuffer-completion-predicate=20file-exists-p)=0A=20=20= selectrum--completing-read-file-name("Find=20file:=20"=20= read-file-name-internal=20file-exists-p=20confirm-after-completion=20= "~/tmp/"=20file-name-history=20"~/tmp/"=20nil)=0A=20=20= apply(selectrum--completing-read-file-name=20("Find=20file:=20"=20= read-file-name-internal=20file-exists-p=20confirm-after-completion=20= "~/tmp/"=20file-name-history=20"~/tmp/"=20nil))=0A=20=20= #f(compiled-function=20(&rest=20args)=20#)("Find=20file:=20"=20read-file-name-internal=20= file-exists-p=20confirm-after-completion=20"~/tmp/"=20file-name-history=20= "~/tmp/"=20nil)=0A=20=20completing-read("Find=20file:=20"=20= read-file-name-internal=20file-exists-p=20confirm-after-completion=20= "~/tmp/"=20file-name-history=20"~/tmp/")=0A=20=20= read-file-name-default("Find=20file:=20"=20nil=20"/Users/spd/tmp/"=20= confirm-after-completion=20nil=20nil)=0A=20=20= selectrum-read-file-name("Find=20file:=20"=20nil=20"/Users/spd/tmp/"=20= confirm-after-completion=20nil=20nil)=0A=20=20read-file-name("Find=20= file:=20"=20nil=20"/Users/spd/tmp/"=20confirm-after-completion)=0A=20=20= find-file-read-args("Find=20file:=20"=20confirm-after-completion)=0A=20=20= byte-code("\300\301\302=20\"\207"=20[find-file-read-args=20"Find=20file:=20= "=20confirm-nonexistent-file-or-buffer]=203)=0A=20=20= call-interactively(find-file=20nil=20nil)=0A=20=20= command-execute(find-file)=0A=0A=0A=0A>>>>=20= window--resize-root-window-vertically=0Aselected=20frame:=20#=0Aselected=20window:=20#=0Aselected=20window=20buffer:=20=20*Minibuf-1*=0A=20=20= backtrace()=0A=20=20(let=20((standard-output=20(get-buffer-create=20= "*redisplay-minibuffer-log*")))=20(princ=20(format=20">>>>=20%s\n"=20= msg))=20(princ=20(format=20"selected=20frame:=20%s\n"=20= (selected-frame)))=20(princ=20(format=20"selected=20window:=20%s\n"=20= (selected-window)))=20(princ=20(format=20"selected=20window=20buffer:=20= %s\n"=20(window-buffer=20(selected-window))))=20(backtrace)=20(princ=20= "\n\n\n"))=0A=20=20= my/redisplay-minibuffer-log("window--resize-root-window-vertically")=0A=20= =20window--resize-root-window-vertically(#=2070=20t)=0A=20=20select-window(#)=0A=20=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20(point)=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20'all)=20(and=20(eq=20selected=20win)=20(or=20(eq=20= scroll=20'this)=20(not=20save-point)))=20(and=20(eq=20scroll=20'others)=20= (not=20(eq=20selected=20win))))=20(when=20term-scroll-snap-to-bottom=20= (goto-char=20term-home-marker)=20(recenter=200))=20(goto-char=20= (process-mark=20proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20= win))=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20(point-max)=20win))))=20(save-excursion=20= (goto-char=20(point-max))=20(recenter=20-1))))=0A=20=20(progn=20(let=20= ((scroll=20term-scroll-to-bottom-on-output))=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20(or=20(=3D=20= (point)=20save-marker)=20(eq=20scroll=20t)=20(eq=20scroll=20'all)=20(and=20= (eq=20selected=20win)=20(or=20(eq=20scroll=20'this)=20(not=20= save-point)))=20(and=20(eq=20scroll=20'others)=20(not=20(eq=20selected=20= win))))=20(when=20term-scroll-snap-to-bottom=20(goto-char=20= term-home-marker)=20(recenter=200))=20(goto-char=20(process-mark=20= proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20win))=20= (recenter=20-1)))=20(when=20(and=20term-scroll-show-maximum-output=20(>=3D= =20(point)=20(process-mark=20proc))=20(or=20term-scroll-snap-to-bottom=20= (not=20(pos-visible-in-window-p=20(point-max)=20win))))=20= (save-excursion=20(goto-char=20(point-max))=20(recenter=20-1)))))=0A=20=20= (if=20(eq=20(window-buffer=20win)=20(process-buffer=20proc))=20(progn=20= (let=20((scroll=20term-scroll-to-bottom-on-output))=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20(or=20(=3D=20= (point)=20save-marker)=20(eq=20scroll=20t)=20(eq=20scroll=20'all)=20(and=20= (eq=20selected=20win)=20(or=20(eq=20scroll=20...)=20(not=20save-point)))=20= (and=20(eq=20scroll=20'others)=20(not=20(eq=20selected=20win))))=20(when=20= term-scroll-snap-to-bottom=20(goto-char=20term-home-marker)=20(recenter=20= 0))=20(goto-char=20(process-mark=20proc))=20(if=20(not=20= (pos-visible-in-window-p=20(point)=20win))=20(recenter=20-1)))=20(when=20= (and=20term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20...=20win))))=20(save-excursion=20(goto-char=20= (point-max))=20(recenter=20-1))))))=0A=20=20(when=20(eq=20(window-buffer=20= win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20(point)=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20'all)=20(and=20(eq=20selected=20win)=20(or=20(eq=20= scroll=20'this)=20(not=20save-point)))=20(and=20(eq=20scroll=20'others)=20= (not=20(eq=20selected=20win))))=20(when=20term-scroll-snap-to-bottom=20= (goto-char=20term-home-marker)=20(recenter=200))=20(goto-char=20= (process-mark=20proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20= win))=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20(point-max)=20win))))=20(save-excursion=20= (goto-char=20(point-max))=20(recenter=20-1)))))=0A=20=20(progn=20(setq=20= win=20(next-window=20win=20nil=20t))=20(when=20(eq=20(window-buffer=20= win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20(point)=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20'all)=20(and=20(eq=20selected=20win)=20(or=20(eq=20= scroll=20...)=20(not=20save-point)))=20(and=20(eq=20scroll=20'others)=20= (not=20(eq=20selected=20win))))=20(when=20term-scroll-snap-to-bottom=20= (goto-char=20term-home-marker)=20(recenter=200))=20(goto-char=20= (process-mark=20proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20= win))=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20...=20win))))=20(save-excursion=20(goto-char=20= (point-max))=20(recenter=20-1)))))=20(not=20(eq=20win=20last-win)))=0A=20= =20(while=20(progn=20(setq=20win=20(next-window=20win=20nil=20t))=20= (when=20(eq=20(window-buffer=20win)=20(process-buffer=20proc))=20(let=20= ((scroll=20term-scroll-to-bottom-on-output))=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20(or=20(=3D=20= (point)=20save-marker)=20(eq=20scroll=20t)=20(eq=20scroll=20'all)=20(and=20= (eq=20selected=20win)=20(or=20...=20...))=20(and=20(eq=20scroll=20...)=20= (not=20...)))=20(when=20term-scroll-snap-to-bottom=20(goto-char=20= term-home-marker)=20(recenter=200))=20(goto-char=20(process-mark=20= proc))=20(if=20(not=20(pos-visible-in-window-p=20...=20win))=20(recenter=20= -1)))=20(when=20(and=20term-scroll-show-maximum-output=20(>=3D=20(point)=20= (process-mark=20proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= ...)))=20(save-excursion=20(goto-char=20(point-max))=20(recenter=20= -1)))))=20(not=20(eq=20win=20last-win))))=0A=20=20(progn=20(when=20= (marker-buffer=20term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= (match-string=201=20str)))=20(ctl-params-end=20(and=20funny=20(match-end=20= 1)))=20(ctl-end=20(if=20funny=20(match-end=200)=20(setq=20funny=20...)=20= (if=20funny=20...=20...)=20(1+=20str-length))))=20(when=20(>=20funny=20= i)=20(when=20term-do-line-wrapping=20(term-down=201=20t)=20= (term-move-to-column=200)=20(setq=20term-do-line-wrapping=20nil))=20= (setq=20decoded-substring=20(decode-coding-string=20(substring=20str=20i=20= funny)=20locale-coding-system=20t))=20(when=20(=3D=20funny=20str-length)=20= (let=20(...=20...)=20(while=20...=20...)=20(when=20...=20...=20...=20...=20= ...)))=20(let=20((old-column=20...)=20(old-point=20...)=20columns)=20= (unless=20term-suppress-hard-newline=20(while=20...=20...=20...=20...=20= ...=20...=20...=20...))=20(insert=20decoded-substring)=20(setq=20= term-current-column=20(current-column)=20columns=20(-=20= term-current-column=20old-column))=20(when=20(not=20...)=20(let=20...=20= ...=20...=20...))=20(when=20term-insert-mode=20(let=20...=20...=20...=20= ...))=20(put-text-property=20old-point=20(point)=20'font-lock-face=20= term-current-face))=20(when=20(eq=20(term-current-column)=20term-width)=20= (term-move-columns=20-1)=20(setq=20term-do-line-wrapping=20(point)))=20= (setq=20term-current-column=20nil)=20(setq=20i=20funny))=20= (pcase-exhaustive=20(and=20(<=3D=20ctl-end=20str-length)=20(aref=20str=20= i))=20(9=20(let=20(...)=20(term-move-to-column=20...)))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20(and=20term-kill-echo-list=20= ...)=20(term-down=201=20t)))=20(8=20(term-move-columns=20-1))=20(7=20= (beep=20t))=20(26=20(funcall=20term-command-function=20= (decode-coding-string=20...=20locale-coding-system=20t)))=20(27=20(pcase=20= (aref=20str=20...)=20(91=20...)=20(68=20...=20...)=20(77=20...)=20(55=20= ...=20...)=20(56=20...)=20(99=20...)=20(65=20...)))=20((or=200=2014=2015=20= 'nil)=20nil))=20(unless=20(eq=20term-do-line-wrapping=20(point))=20(setq=20= term-do-line-wrapping=20nil))=20(if=20(term-handling-pager)=20(progn=20= (if=20(>=20...=200)=20(setq=20term-terminal-undecoded-bytes=20...)=20(if=20= ...=20...=20...=20...)=20(goto-char=20...))=20(make-local-variable=20= 'term-pager-old-filter)=20(setq=20term-pager-old-filter=20= (process-filter=20proc))=20(set-process-filter=20proc=20= term-pager-filter)=20(setq=20i=20str-length))=20(setq=20i=20ctl-end)))))=20= (when=20(>=3D=20(term-current-row)=20term-height)=20= (term-handle-deferred-scroll))=20(set-marker=20(process-mark=20proc)=20= (point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20...=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20...)=20(and=20...=20...)=20(and=20...=20...))=20= (when=20term-scroll-snap-to-bottom=20(goto-char=20term-home-marker)=20= (recenter=200))=20(goto-char=20(process-mark=20proc))=20(if=20(not=20= ...)=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20...=20...)=20(or=20= term-scroll-snap-to-bottom=20...))=20(save-excursion=20(goto-char=20...)=20= (recenter=20-1)))))=20(not=20(eq=20win=20last-win))))=20(when=20(>=20= term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil))=0A=20=20(unwind-protect=20(progn=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= ...))=20(ctl-params-end=20(and=20funny=20...))=20(ctl-end=20(if=20funny=20= ...=20...=20...=20...)))=20(when=20(>=20funny=20i)=20(when=20= term-do-line-wrapping=20(term-down=201=20t)=20(term-move-to-column=200)=20= (setq=20term-do-line-wrapping=20nil))=20(setq=20decoded-substring=20= (decode-coding-string=20...=20locale-coding-system=20t))=20(when=20(=3D=20= funny=20str-length)=20(let=20...=20...=20...))=20(let=20(...=20...=20= columns)=20(unless=20term-suppress-hard-newline=20...)=20(insert=20= decoded-substring)=20(setq=20term-current-column=20...=20columns=20...)=20= (when=20...=20...)=20(when=20term-insert-mode=20...)=20= (put-text-property=20old-point=20...=20...=20term-current-face))=20(when=20= (eq=20...=20term-width)=20(term-move-columns=20-1)=20(setq=20= term-do-line-wrapping=20...))=20(setq=20term-current-column=20nil)=20= (setq=20i=20funny))=20(pcase-exhaustive=20(and=20(<=3D=20ctl-end=20= str-length)=20(aref=20str=20i))=20(9=20(let=20...=20...))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20...=20...))=20(8=20= (term-move-columns=20-1))=20(7=20(beep=20t))=20(26=20(funcall=20= term-command-function=20...))=20(27=20(pcase=20...=20...=20...=20...=20= ...=20...=20...=20...))=20((or=200=2014=2015=20...)=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20(point))=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20(if=20...=20...=20...=20= ...)=20(make-local-variable=20...)=20(setq=20term-pager-old-filter=20= ...)=20(set-process-filter=20proc=20term-pager-filter)=20(setq=20i=20= str-length))=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20= (term-current-row)=20term-height)=20(term-handle-deferred-scroll))=20= (set-marker=20(process-mark=20proc)=20(point))=20(when=20(stringp=20= decoded-substring)=20(term-watch-for-password-prompt=20= decoded-substring))=20(when=20save-point=20(goto-char=20save-point)=20= (set-marker=20save-point=20nil))=20(when=20(and=20term-pending-frame=20= (eq=20(window-buffer=20selected)=20(current-buffer)))=20= (term-display-line=20(car=20term-pending-frame)=20(cdr=20= term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20win=20= selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20...=20...=20...=20...=20...)=20(when=20= term-scroll-snap-to-bottom=20...=20...)=20(goto-char=20...)=20(if=20...=20= ...))=20(when=20(and=20term-scroll-show-maximum-output=20...=20...)=20= (save-excursion=20...=20...))))=20(not=20(eq=20win=20last-win))))=20= (when=20(>=20term-buffer-maximum-size=200)=20(save-excursion=20= (goto-char=20(process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil))=20(internal--after-save-selected-window=20= save-selected-window--state))=0A=20=20(save-current-buffer=20= (unwind-protect=20(progn=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20...)=20= (ctl-params-end=20...)=20(ctl-end=20...))=20(when=20(>=20funny=20i)=20= (when=20term-do-line-wrapping=20...=20...=20...)=20(setq=20= decoded-substring=20...)=20(when=20...=20...)=20(let=20...=20...=20...=20= ...=20...=20...=20...)=20(when=20...=20...=20...)=20(setq=20= term-current-column=20nil)=20(setq=20i=20funny))=20(pcase-exhaustive=20= (and=20...=20...)=20(9=20...)=20(13=20...=20...)=20(10=20...)=20(8=20= ...)=20(7=20...)=20(26=20...)=20(27=20...)=20(...=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20...)=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20...=20...=20...=20...=20= ...)=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20(term-current-row)=20= term-height)=20(term-handle-deferred-scroll))=20(set-marker=20= (process-mark=20proc)=20(point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20(...)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20...=20...=20...=20= ...)=20(when=20...=20...)))=20(not=20(eq=20win=20last-win))))=20(when=20= (>=20term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20...)))=20(forward-line=20(-=20= term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil))=20= (internal--after-save-selected-window=20save-selected-window--state)))=0A= =20=20(let=20((save-selected-window--state=20= (internal--before-save-selected-window)))=20(save-current-buffer=20= (unwind-protect=20(progn=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20...=20...)=20= (term-in-line-mode))=20(narrow-to-region=20(point-min)=20(process-mark=20= proc)))=20(when=20term-log-buffer=20(princ=20str=20term-log-buffer))=20= (when=20term-terminal-undecoded-bytes=20(setq=20str=20(concat=20= term-terminal-undecoded-bytes=20str))=20(setq=20str-length=20(length=20= str))=20(setq=20term-terminal-undecoded-bytes=20nil))=20(while=20(<=20i=20= str-length)=20(setq=20funny=20(string-match=20term-control-seq-regexp=20= str=20i))=20(let=20(...=20...=20...)=20(when=20...=20...=20...=20...=20= ...=20...=20...=20...)=20(pcase-exhaustive=20...=20...=20...=20...=20...=20= ...=20...=20...=20...)=20(unless=20...=20...)=20(if=20...=20...=20= ...))))=20(when=20(>=3D=20(term-current-row)=20term-height)=20= (term-handle-deferred-scroll))=20(set-marker=20(process-mark=20proc)=20= (point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= ...=20...)=20(let=20...=20...=20...=20...=20...=20...))=20(not=20(eq=20= win=20last-win))))=20(when=20(>=20term-buffer-maximum-size=200)=20= (save-excursion=20(goto-char=20(process-mark=20...))=20(forward-line=20= (-=20term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil))=20= (internal--after-save-selected-window=20save-selected-window--state))))=0A= =20=20(save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= (match-string=201=20str)))=20(ctl-params-end=20(and=20funny=20(match-end=20= 1)))=20(ctl-end=20(if=20funny=20(match-end=200)=20(setq=20funny=20...)=20= (if=20funny=20...=20...)=20(1+=20str-length))))=20(when=20(>=20funny=20= i)=20(when=20term-do-line-wrapping=20(term-down=201=20t)=20= (term-move-to-column=200)=20(setq=20term-do-line-wrapping=20nil))=20= (setq=20decoded-substring=20(decode-coding-string=20(substring=20str=20i=20= funny)=20locale-coding-system=20t))=20(when=20(=3D=20funny=20str-length)=20= (let=20(...=20...)=20(while=20...=20...)=20(when=20...=20...=20...=20...=20= ...)))=20(let=20((old-column=20...)=20(old-point=20...)=20columns)=20= (unless=20term-suppress-hard-newline=20(while=20...=20...=20...=20...=20= ...=20...=20...=20...))=20(insert=20decoded-substring)=20(setq=20= term-current-column=20(current-column)=20columns=20(-=20= term-current-column=20old-column))=20(when=20(not=20...)=20(let=20...=20= ...=20...=20...))=20(when=20term-insert-mode=20(let=20...=20...=20...=20= ...))=20(put-text-property=20old-point=20(point)=20'font-lock-face=20= term-current-face))=20(when=20(eq=20(term-current-column)=20term-width)=20= (term-move-columns=20-1)=20(setq=20term-do-line-wrapping=20(point)))=20= (setq=20term-current-column=20nil)=20(setq=20i=20funny))=20= (pcase-exhaustive=20(and=20(<=3D=20ctl-end=20str-length)=20(aref=20str=20= i))=20(9=20(let=20(...)=20(term-move-to-column=20...)))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20(and=20term-kill-echo-list=20= ...)=20(term-down=201=20t)))=20(8=20(term-move-columns=20-1))=20(7=20= (beep=20t))=20(26=20(funcall=20term-command-function=20= (decode-coding-string=20...=20locale-coding-system=20t)))=20(27=20(pcase=20= (aref=20str=20...)=20(91=20...)=20(68=20...=20...)=20(77=20...)=20(55=20= ...=20...)=20(56=20...)=20(99=20...)=20(65=20...)))=20((or=200=2014=2015=20= 'nil)=20nil))=20(unless=20(eq=20term-do-line-wrapping=20(point))=20(setq=20= term-do-line-wrapping=20nil))=20(if=20(term-handling-pager)=20(progn=20= (if=20(>=20...=200)=20(setq=20term-terminal-undecoded-bytes=20...)=20(if=20= ...=20...=20...=20...)=20(goto-char=20...))=20(make-local-variable=20= 'term-pager-old-filter)=20(setq=20term-pager-old-filter=20= (process-filter=20proc))=20(set-process-filter=20proc=20= term-pager-filter)=20(setq=20i=20str-length))=20(setq=20i=20ctl-end)))))=20= (when=20(>=3D=20(term-current-row)=20term-height)=20= (term-handle-deferred-scroll))=20(set-marker=20(process-mark=20proc)=20= (point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20...=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20...)=20(and=20...=20...)=20(and=20...=20...))=20= (when=20term-scroll-snap-to-bottom=20(goto-char=20term-home-marker)=20= (recenter=200))=20(goto-char=20(process-mark=20proc))=20(if=20(not=20= ...)=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20...=20...)=20(or=20= term-scroll-snap-to-bottom=20...))=20(save-excursion=20(goto-char=20...)=20= (recenter=20-1)))))=20(not=20(eq=20win=20last-win))))=20(when=20(>=20= term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil))=0A=20=20(let*=20((i=200)=20funny=20decoded-substring=20save-point=20= save-marker=20win=20(inhibit-read-only=20t)=20(buffer-undo-list=20t)=20= (selected=20(selected-window))=20last-win=20(str-length=20(length=20= str)))=20(save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= ...))=20(ctl-params-end=20(and=20funny=20...))=20(ctl-end=20(if=20funny=20= ...=20...=20...=20...)))=20(when=20(>=20funny=20i)=20(when=20= term-do-line-wrapping=20(term-down=201=20t)=20(term-move-to-column=200)=20= (setq=20term-do-line-wrapping=20nil))=20(setq=20decoded-substring=20= (decode-coding-string=20...=20locale-coding-system=20t))=20(when=20(=3D=20= funny=20str-length)=20(let=20...=20...=20...))=20(let=20(...=20...=20= columns)=20(unless=20term-suppress-hard-newline=20...)=20(insert=20= decoded-substring)=20(setq=20term-current-column=20...=20columns=20...)=20= (when=20...=20...)=20(when=20term-insert-mode=20...)=20= (put-text-property=20old-point=20...=20...=20term-current-face))=20(when=20= (eq=20...=20term-width)=20(term-move-columns=20-1)=20(setq=20= term-do-line-wrapping=20...))=20(setq=20term-current-column=20nil)=20= (setq=20i=20funny))=20(pcase-exhaustive=20(and=20(<=3D=20ctl-end=20= str-length)=20(aref=20str=20i))=20(9=20(let=20...=20...))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20...=20...))=20(8=20= (term-move-columns=20-1))=20(7=20(beep=20t))=20(26=20(funcall=20= term-command-function=20...))=20(27=20(pcase=20...=20...=20...=20...=20= ...=20...=20...=20...))=20((or=200=2014=2015=20...)=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20(point))=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20(if=20...=20...=20...=20= ...)=20(make-local-variable=20...)=20(setq=20term-pager-old-filter=20= ...)=20(set-process-filter=20proc=20term-pager-filter)=20(setq=20i=20= str-length))=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20= (term-current-row)=20term-height)=20(term-handle-deferred-scroll))=20= (set-marker=20(process-mark=20proc)=20(point))=20(when=20(stringp=20= decoded-substring)=20(term-watch-for-password-prompt=20= decoded-substring))=20(when=20save-point=20(goto-char=20save-point)=20= (set-marker=20save-point=20nil))=20(when=20(and=20term-pending-frame=20= (eq=20(window-buffer=20selected)=20(current-buffer)))=20= (term-display-line=20(car=20term-pending-frame)=20(cdr=20= term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20win=20= selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20...=20...=20...=20...=20...)=20(when=20= term-scroll-snap-to-bottom=20...=20...)=20(goto-char=20...)=20(if=20...=20= ...))=20(when=20(and=20term-scroll-show-maximum-output=20...=20...)=20= (save-excursion=20...=20...))))=20(not=20(eq=20win=20last-win))))=20= (when=20(>=20term-buffer-maximum-size=200)=20(save-excursion=20= (goto-char=20(process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil)))=0A=20=20(save-current-buffer=20(set-buffer=20(process-buffer=20= proc))=20(let*=20((i=200)=20funny=20decoded-substring=20save-point=20= save-marker=20win=20(inhibit-read-only=20t)=20(buffer-undo-list=20t)=20= (selected=20(selected-window))=20last-win=20(str-length=20(length=20= str)))=20(save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20...)=20= (ctl-params-end=20...)=20(ctl-end=20...))=20(when=20(>=20funny=20i)=20= (when=20term-do-line-wrapping=20...=20...=20...)=20(setq=20= decoded-substring=20...)=20(when=20...=20...)=20(let=20...=20...=20...=20= ...=20...=20...=20...)=20(when=20...=20...=20...)=20(setq=20= term-current-column=20nil)=20(setq=20i=20funny))=20(pcase-exhaustive=20= (and=20...=20...)=20(9=20...)=20(13=20...=20...)=20(10=20...)=20(8=20= ...)=20(7=20...)=20(26=20...)=20(27=20...)=20(...=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20...)=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20...=20...=20...=20...=20= ...)=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20(term-current-row)=20= term-height)=20(term-handle-deferred-scroll))=20(set-marker=20= (process-mark=20proc)=20(point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20(...)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20...=20...=20...=20= ...)=20(when=20...=20...)))=20(not=20(eq=20win=20last-win))))=20(when=20= (>=20term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20...)))=20(forward-line=20(-=20= term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil)))=20(when=20= (get-buffer-window=20(current-buffer))=20(redisplay)))=0A=20=20= (with-current-buffer=20(process-buffer=20proc)=20(let*=20((i=200)=20= funny=20decoded-substring=20save-point=20save-marker=20win=20= (inhibit-read-only=20t)=20(buffer-undo-list=20t)=20(selected=20= (selected-window))=20last-win=20(str-length=20(length=20str)))=20= (save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20...)=20= (ctl-params-end=20...)=20(ctl-end=20...))=20(when=20(>=20funny=20i)=20= (when=20term-do-line-wrapping=20...=20...=20...)=20(setq=20= decoded-substring=20...)=20(when=20...=20...)=20(let=20...=20...=20...=20= ...=20...=20...=20...)=20(when=20...=20...=20...)=20(setq=20= term-current-column=20nil)=20(setq=20i=20funny))=20(pcase-exhaustive=20= (and=20...=20...)=20(9=20...)=20(13=20...=20...)=20(10=20...)=20(8=20= ...)=20(7=20...)=20(26=20...)=20(27=20...)=20(...=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20...)=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20...=20...=20...=20...=20= ...)=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20(term-current-row)=20= term-height)=20(term-handle-deferred-scroll))=20(set-marker=20= (process-mark=20proc)=20(point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20(...)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20...=20...=20...=20= ...)=20(when=20...=20...)))=20(not=20(eq=20win=20last-win))))=20(when=20= (>=20term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20...)))=20(forward-line=20(-=20= term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil)))=20(when=20= (get-buffer-window=20(current-buffer))=20(redisplay)))=0A=20=20= term-emulate-terminal(#=20"something\15\n")=0A=20=20= read-from-minibuffer("Find=20file:=20"=20nil=20(keymap=20(9=20.=20= selectrum-insert-current-candidate)=20(10=20.=20= selectrum-submit-exact-input)=20(C-M-backspace=20.=20backward-kill-sexp)=20= (27=20keymap=20(115=20keymap=20(114=20.=20= selectrum-prescient-toggle-regexp)=20(112=20.=20= selectrum-prescient-toggle-prefix)=20(108=20.=20= selectrum-prescient-toggle-literal)=20(105=20.=20= selectrum-prescient-toggle-initialism)=20(102=20.=20= selectrum-prescient-toggle-fuzzy)=20(97=20.=20= selectrum-prescient-toggle-anchored))=20(67108991=20.=20= backward-kill-sexp))=20(remap=20keymap=20= (previous-matching-history-element=20.=20selectrum-select-from-history)=20= (kill-ring-save=20.=20selectrum-kill-ring-save)=20(end-of-buffer=20.=20= selectrum-goto-end)=20(beginning-of-buffer=20.=20= selectrum-goto-beginning)=20(minibuffer-beginning-of-buffer=20.=20= selectrum-goto-beginning)=20(scroll-up-command=20.=20= selectrum-next-page)=20(scroll-down-command=20.=20= selectrum-previous-page)=20(exit-minibuffer=20.=20= selectrum-select-current-candidate)=20(next-line-or-history-element=20.=20= selectrum-next-candidate)=20(previous-line-or-history-element=20.=20= selectrum-previous-candidate)=20(next-line=20.=20= selectrum-next-candidate)=20(previous-line=20.=20= selectrum-previous-candidate)=20(minibuffer-keyboard-quit=20.=20= abort-recursive-edit)=20(keyboard-quit=20.=20abort-recursive-edit))=20= keymap=20(remap=20keymap=20(previous-matching-history-element=20.=20= selectrum-select-from-history))=20(menu-bar=20keymap=20(minibuf=20= "Minibuf"=20keymap=20(previous=20menu-item=20"Previous=20History=20Item"=20= previous-history-element=20:help=20"Put=20previous=20minibuffer=20= history=20element=20in=20the=20min...")=20(next=20menu-item=20"Next=20= History=20Item"=20next-history-element=20:help=20"Put=20next=20= minibuffer=20history=20element=20in=20the=20minibuf...")=20= (isearch-backward=20menu-item=20"Isearch=20History=20Backward"=20= isearch-backward=20:help=20"Incrementally=20search=20minibuffer=20= history=20backward")=20(isearch-forward=20menu-item=20"Isearch=20History=20= Forward"=20isearch-forward=20:help=20"Incrementally=20search=20= minibuffer=20history=20forward")=20(return=20menu-item=20"Enter"=20= exit-minibuffer=20:key-sequence=20"\15"=20:help=20"Terminate=20input=20= and=20exit=20minibuffer")=20(quit=20menu-item=20"Quit"=20= abort-recursive-edit=20:help=20"Abort=20input=20and=20exit=20= minibuffer")=20"Minibuf"))=20(10=20.=20exit-minibuffer)=20(13=20.=20= exit-minibuffer)=20(7=20.=20minibuffer-keyboard-quit)=20(C-tab=20.=20= file-cache-minibuffer-complete)=20(9=20.=20self-insert-command)=20= (XF86Back=20.=20previous-history-element)=20(up=20.=20= previous-line-or-history-element)=20(prior=20.=20= previous-history-element)=20(XF86Forward=20.=20next-history-element)=20= (down=20.=20next-line-or-history-element)=20(next=20.=20= next-history-element)=20(27=20keymap=20(111=20.=20embark-act)=20(60=20.=20= minibuffer-beginning-of-buffer)=20(114=20.=20= previous-matching-history-element)=20(115=20.=20= next-matching-history-element)=20(112=20.=20previous-history-element)=20= (110=20.=20next-history-element)))=20nil=20file-name-history)=0A=20=20= selectrum-read("Find=20file:=20"=20#f(compiled-function=20(input)=20= #)=20:default-candidate=20"~/tmp/"=20= :initial-input=20"~/tmp/"=20:history=20file-name-history=20= :require-match=20nil=20:may-modify-candidates=20t=20= :minibuffer-completion-table=20read-file-name-internal=20= :minibuffer-completion-predicate=20file-exists-p)=0A=20=20= selectrum--completing-read-file-name("Find=20file:=20"=20= read-file-name-internal=20file-exists-p=20confirm-after-completion=20= "~/tmp/"=20file-name-history=20"~/tmp/"=20nil)=0A=20=20= apply(selectrum--completing-read-file-name=20("Find=20file:=20"=20= read-file-name-internal=20file-exists-p=20confirm-after-completion=20= "~/tmp/"=20file-name-history=20"~/tmp/"=20nil))=0A=20=20= #f(compiled-function=20(&rest=20args)=20#)("Find=20file:=20"=20read-file-name-internal=20= file-exists-p=20confirm-after-completion=20"~/tmp/"=20file-name-history=20= "~/tmp/"=20nil)=0A=20=20completing-read("Find=20file:=20"=20= read-file-name-internal=20file-exists-p=20confirm-after-completion=20= "~/tmp/"=20file-name-history=20"~/tmp/")=0A=20=20= read-file-name-default("Find=20file:=20"=20nil=20"/Users/spd/tmp/"=20= confirm-after-completion=20nil=20nil)=0A=20=20= selectrum-read-file-name("Find=20file:=20"=20nil=20"/Users/spd/tmp/"=20= confirm-after-completion=20nil=20nil)=0A=20=20read-file-name("Find=20= file:=20"=20nil=20"/Users/spd/tmp/"=20confirm-after-completion)=0A=20=20= find-file-read-args("Find=20file:=20"=20confirm-after-completion)=0A=20=20= byte-code("\300\301\302=20\"\207"=20[find-file-read-args=20"Find=20file:=20= "=20confirm-nonexistent-file-or-buffer]=203)=0A=20=20= call-interactively(find-file=20nil=20nil)=0A=20=20= command-execute(find-file)=0A=0A=0A=0A>>>>=20term-emulate-window=20after=20= selection=0Aselected=20frame:=20#=0A= selected=20window:=20#=0Aselected=20= window=20buffer:=20*something*=0A=20=20backtrace()=0A=20=20(let=20= ((standard-output=20(get-buffer-create=20"*redisplay-minibuffer-log*")))=20= (princ=20(format=20">>>>=20%s\n"=20msg))=20(princ=20(format=20"selected=20= frame:=20%s\n"=20(selected-frame)))=20(princ=20(format=20"selected=20= window:=20%s\n"=20(selected-window)))=20(princ=20(format=20"selected=20= window=20buffer:=20%s\n"=20(window-buffer=20(selected-window))))=20= (backtrace)=20(princ=20"\n\n\n"))=0A=20=20= my/redisplay-minibuffer-log("term-emulate-window=20after=20selection")=0A= =20=20(let=20((scroll=20term-scroll-to-bottom-on-output))=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20(or=20(=3D=20= (point)=20save-marker)=20(eq=20scroll=20t)=20(eq=20scroll=20'all)=20(and=20= (eq=20selected=20win)=20(or=20(eq=20scroll=20'this)=20(not=20= save-point)))=20(and=20(eq=20scroll=20'others)=20(not=20(eq=20selected=20= win))))=20(when=20term-scroll-snap-to-bottom=20(goto-char=20= term-home-marker)=20(recenter=200))=20(goto-char=20(process-mark=20= proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20win))=20= (recenter=20-1)))=20(when=20(and=20term-scroll-show-maximum-output=20(>=3D= =20(point)=20(process-mark=20proc))=20(or=20term-scroll-snap-to-bottom=20= (not=20(pos-visible-in-window-p=20(point-max)=20win))))=20= (save-excursion=20(goto-char=20(point-max))=20(recenter=20-1))))=0A=20=20= (progn=20(let=20((scroll=20term-scroll-to-bottom-on-output))=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20(or=20(=3D=20= (point)=20save-marker)=20(eq=20scroll=20t)=20(eq=20scroll=20'all)=20(and=20= (eq=20selected=20win)=20(or=20(eq=20scroll=20'this)=20(not=20= save-point)))=20(and=20(eq=20scroll=20'others)=20(not=20(eq=20selected=20= win))))=20(when=20term-scroll-snap-to-bottom=20(goto-char=20= term-home-marker)=20(recenter=200))=20(goto-char=20(process-mark=20= proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20win))=20= (recenter=20-1)))=20(when=20(and=20term-scroll-show-maximum-output=20(>=3D= =20(point)=20(process-mark=20proc))=20(or=20term-scroll-snap-to-bottom=20= (not=20(pos-visible-in-window-p=20(point-max)=20win))))=20= (save-excursion=20(goto-char=20(point-max))=20(recenter=20-1)))))=0A=20=20= (if=20(eq=20(window-buffer=20win)=20(process-buffer=20proc))=20(progn=20= (let=20((scroll=20term-scroll-to-bottom-on-output))=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20(or=20(=3D=20= (point)=20save-marker)=20(eq=20scroll=20t)=20(eq=20scroll=20'all)=20(and=20= (eq=20selected=20win)=20(or=20(eq=20scroll=20...)=20(not=20save-point)))=20= (and=20(eq=20scroll=20'others)=20(not=20(eq=20selected=20win))))=20(when=20= term-scroll-snap-to-bottom=20(goto-char=20term-home-marker)=20(recenter=20= 0))=20(goto-char=20(process-mark=20proc))=20(if=20(not=20= (pos-visible-in-window-p=20(point)=20win))=20(recenter=20-1)))=20(when=20= (and=20term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20...=20win))))=20(save-excursion=20(goto-char=20= (point-max))=20(recenter=20-1))))))=0A=20=20(when=20(eq=20(window-buffer=20= win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20(point)=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20'all)=20(and=20(eq=20selected=20win)=20(or=20(eq=20= scroll=20'this)=20(not=20save-point)))=20(and=20(eq=20scroll=20'others)=20= (not=20(eq=20selected=20win))))=20(when=20term-scroll-snap-to-bottom=20= (goto-char=20term-home-marker)=20(recenter=200))=20(goto-char=20= (process-mark=20proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20= win))=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20(point-max)=20win))))=20(save-excursion=20= (goto-char=20(point-max))=20(recenter=20-1)))))=0A=20=20(progn=20(setq=20= win=20(next-window=20win=20nil=20t))=20(when=20(eq=20(window-buffer=20= win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20(point)=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20'all)=20(and=20(eq=20selected=20win)=20(or=20(eq=20= scroll=20...)=20(not=20save-point)))=20(and=20(eq=20scroll=20'others)=20= (not=20(eq=20selected=20win))))=20(when=20term-scroll-snap-to-bottom=20= (goto-char=20term-home-marker)=20(recenter=200))=20(goto-char=20= (process-mark=20proc))=20(if=20(not=20(pos-visible-in-window-p=20(point)=20= win))=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20(point)=20(process-mark=20= proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= (pos-visible-in-window-p=20...=20win))))=20(save-excursion=20(goto-char=20= (point-max))=20(recenter=20-1)))))=20(not=20(eq=20win=20last-win)))=0A=20= =20(while=20(progn=20(setq=20win=20(next-window=20win=20nil=20t))=20= (when=20(eq=20(window-buffer=20win)=20(process-buffer=20proc))=20(let=20= ((scroll=20term-scroll-to-bottom-on-output))=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20(or=20(=3D=20= (point)=20save-marker)=20(eq=20scroll=20t)=20(eq=20scroll=20'all)=20(and=20= (eq=20selected=20win)=20(or=20...=20...))=20(and=20(eq=20scroll=20...)=20= (not=20...)))=20(when=20term-scroll-snap-to-bottom=20(goto-char=20= term-home-marker)=20(recenter=200))=20(goto-char=20(process-mark=20= proc))=20(if=20(not=20(pos-visible-in-window-p=20...=20win))=20(recenter=20= -1)))=20(when=20(and=20term-scroll-show-maximum-output=20(>=3D=20(point)=20= (process-mark=20proc))=20(or=20term-scroll-snap-to-bottom=20(not=20= ...)))=20(save-excursion=20(goto-char=20(point-max))=20(recenter=20= -1)))))=20(not=20(eq=20win=20last-win))))=0A=20=20(progn=20(when=20= (marker-buffer=20term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= (match-string=201=20str)))=20(ctl-params-end=20(and=20funny=20(match-end=20= 1)))=20(ctl-end=20(if=20funny=20(match-end=200)=20(setq=20funny=20...)=20= (if=20funny=20...=20...)=20(1+=20str-length))))=20(when=20(>=20funny=20= i)=20(when=20term-do-line-wrapping=20(term-down=201=20t)=20= (term-move-to-column=200)=20(setq=20term-do-line-wrapping=20nil))=20= (setq=20decoded-substring=20(decode-coding-string=20(substring=20str=20i=20= funny)=20locale-coding-system=20t))=20(when=20(=3D=20funny=20str-length)=20= (let=20(...=20...)=20(while=20...=20...)=20(when=20...=20...=20...=20...=20= ...)))=20(let=20((old-column=20...)=20(old-point=20...)=20columns)=20= (unless=20term-suppress-hard-newline=20(while=20...=20...=20...=20...=20= ...=20...=20...=20...))=20(insert=20decoded-substring)=20(setq=20= term-current-column=20(current-column)=20columns=20(-=20= term-current-column=20old-column))=20(when=20(not=20...)=20(let=20...=20= ...=20...=20...))=20(when=20term-insert-mode=20(let=20...=20...=20...=20= ...))=20(put-text-property=20old-point=20(point)=20'font-lock-face=20= term-current-face))=20(when=20(eq=20(term-current-column)=20term-width)=20= (term-move-columns=20-1)=20(setq=20term-do-line-wrapping=20(point)))=20= (setq=20term-current-column=20nil)=20(setq=20i=20funny))=20= (pcase-exhaustive=20(and=20(<=3D=20ctl-end=20str-length)=20(aref=20str=20= i))=20(9=20(let=20(...)=20(term-move-to-column=20...)))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20(and=20term-kill-echo-list=20= ...)=20(term-down=201=20t)))=20(8=20(term-move-columns=20-1))=20(7=20= (beep=20t))=20(26=20(funcall=20term-command-function=20= (decode-coding-string=20...=20locale-coding-system=20t)))=20(27=20(pcase=20= (aref=20str=20...)=20(91=20...)=20(68=20...=20...)=20(77=20...)=20(55=20= ...=20...)=20(56=20...)=20(99=20...)=20(65=20...)))=20((or=200=2014=2015=20= 'nil)=20nil))=20(unless=20(eq=20term-do-line-wrapping=20(point))=20(setq=20= term-do-line-wrapping=20nil))=20(if=20(term-handling-pager)=20(progn=20= (if=20(>=20...=200)=20(setq=20term-terminal-undecoded-bytes=20...)=20(if=20= ...=20...=20...=20...)=20(goto-char=20...))=20(make-local-variable=20= 'term-pager-old-filter)=20(setq=20term-pager-old-filter=20= (process-filter=20proc))=20(set-process-filter=20proc=20= term-pager-filter)=20(setq=20i=20str-length))=20(setq=20i=20ctl-end)))))=20= (when=20(>=3D=20(term-current-row)=20term-height)=20= (term-handle-deferred-scroll))=20(set-marker=20(process-mark=20proc)=20= (point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20...=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20...)=20(and=20...=20...)=20(and=20...=20...))=20= (when=20term-scroll-snap-to-bottom=20(goto-char=20term-home-marker)=20= (recenter=200))=20(goto-char=20(process-mark=20proc))=20(if=20(not=20= ...)=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20...=20...)=20(or=20= term-scroll-snap-to-bottom=20...))=20(save-excursion=20(goto-char=20...)=20= (recenter=20-1)))))=20(not=20(eq=20win=20last-win))))=20(when=20(>=20= term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil))=0A=20=20(unwind-protect=20(progn=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= ...))=20(ctl-params-end=20(and=20funny=20...))=20(ctl-end=20(if=20funny=20= ...=20...=20...=20...)))=20(when=20(>=20funny=20i)=20(when=20= term-do-line-wrapping=20(term-down=201=20t)=20(term-move-to-column=200)=20= (setq=20term-do-line-wrapping=20nil))=20(setq=20decoded-substring=20= (decode-coding-string=20...=20locale-coding-system=20t))=20(when=20(=3D=20= funny=20str-length)=20(let=20...=20...=20...))=20(let=20(...=20...=20= columns)=20(unless=20term-suppress-hard-newline=20...)=20(insert=20= decoded-substring)=20(setq=20term-current-column=20...=20columns=20...)=20= (when=20...=20...)=20(when=20term-insert-mode=20...)=20= (put-text-property=20old-point=20...=20...=20term-current-face))=20(when=20= (eq=20...=20term-width)=20(term-move-columns=20-1)=20(setq=20= term-do-line-wrapping=20...))=20(setq=20term-current-column=20nil)=20= (setq=20i=20funny))=20(pcase-exhaustive=20(and=20(<=3D=20ctl-end=20= str-length)=20(aref=20str=20i))=20(9=20(let=20...=20...))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20...=20...))=20(8=20= (term-move-columns=20-1))=20(7=20(beep=20t))=20(26=20(funcall=20= term-command-function=20...))=20(27=20(pcase=20...=20...=20...=20...=20= ...=20...=20...=20...))=20((or=200=2014=2015=20...)=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20(point))=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20(if=20...=20...=20...=20= ...)=20(make-local-variable=20...)=20(setq=20term-pager-old-filter=20= ...)=20(set-process-filter=20proc=20term-pager-filter)=20(setq=20i=20= str-length))=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20= (term-current-row)=20term-height)=20(term-handle-deferred-scroll))=20= (set-marker=20(process-mark=20proc)=20(point))=20(when=20(stringp=20= decoded-substring)=20(term-watch-for-password-prompt=20= decoded-substring))=20(when=20save-point=20(goto-char=20save-point)=20= (set-marker=20save-point=20nil))=20(when=20(and=20term-pending-frame=20= (eq=20(window-buffer=20selected)=20(current-buffer)))=20= (term-display-line=20(car=20term-pending-frame)=20(cdr=20= term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20win=20= selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20...=20...=20...=20...=20...)=20(when=20= term-scroll-snap-to-bottom=20...=20...)=20(goto-char=20...)=20(if=20...=20= ...))=20(when=20(and=20term-scroll-show-maximum-output=20...=20...)=20= (save-excursion=20...=20...))))=20(not=20(eq=20win=20last-win))))=20= (when=20(>=20term-buffer-maximum-size=200)=20(save-excursion=20= (goto-char=20(process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil))=20(internal--after-save-selected-window=20= save-selected-window--state))=0A=20=20(save-current-buffer=20= (unwind-protect=20(progn=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20...)=20= (ctl-params-end=20...)=20(ctl-end=20...))=20(when=20(>=20funny=20i)=20= (when=20term-do-line-wrapping=20...=20...=20...)=20(setq=20= decoded-substring=20...)=20(when=20...=20...)=20(let=20...=20...=20...=20= ...=20...=20...=20...)=20(when=20...=20...=20...)=20(setq=20= term-current-column=20nil)=20(setq=20i=20funny))=20(pcase-exhaustive=20= (and=20...=20...)=20(9=20...)=20(13=20...=20...)=20(10=20...)=20(8=20= ...)=20(7=20...)=20(26=20...)=20(27=20...)=20(...=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20...)=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20...=20...=20...=20...=20= ...)=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20(term-current-row)=20= term-height)=20(term-handle-deferred-scroll))=20(set-marker=20= (process-mark=20proc)=20(point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20(...)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20...=20...=20...=20= ...)=20(when=20...=20...)))=20(not=20(eq=20win=20last-win))))=20(when=20= (>=20term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20...)))=20(forward-line=20(-=20= term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil))=20= (internal--after-save-selected-window=20save-selected-window--state)))=0A= =20=20(let=20((save-selected-window--state=20= (internal--before-save-selected-window)))=20(save-current-buffer=20= (unwind-protect=20(progn=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20...=20...)=20= (term-in-line-mode))=20(narrow-to-region=20(point-min)=20(process-mark=20= proc)))=20(when=20term-log-buffer=20(princ=20str=20term-log-buffer))=20= (when=20term-terminal-undecoded-bytes=20(setq=20str=20(concat=20= term-terminal-undecoded-bytes=20str))=20(setq=20str-length=20(length=20= str))=20(setq=20term-terminal-undecoded-bytes=20nil))=20(while=20(<=20i=20= str-length)=20(setq=20funny=20(string-match=20term-control-seq-regexp=20= str=20i))=20(let=20(...=20...=20...)=20(when=20...=20...=20...=20...=20= ...=20...=20...=20...)=20(pcase-exhaustive=20...=20...=20...=20...=20...=20= ...=20...=20...=20...)=20(unless=20...=20...)=20(if=20...=20...=20= ...))))=20(when=20(>=3D=20(term-current-row)=20term-height)=20= (term-handle-deferred-scroll))=20(set-marker=20(process-mark=20proc)=20= (point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= ...=20...)=20(let=20...=20...=20...=20...=20...=20...))=20(not=20(eq=20= win=20last-win))))=20(when=20(>=20term-buffer-maximum-size=200)=20= (save-excursion=20(goto-char=20(process-mark=20...))=20(forward-line=20= (-=20term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil))=20= (internal--after-save-selected-window=20save-selected-window--state))))=0A= =20=20(save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= (match-string=201=20str)))=20(ctl-params-end=20(and=20funny=20(match-end=20= 1)))=20(ctl-end=20(if=20funny=20(match-end=200)=20(setq=20funny=20...)=20= (if=20funny=20...=20...)=20(1+=20str-length))))=20(when=20(>=20funny=20= i)=20(when=20term-do-line-wrapping=20(term-down=201=20t)=20= (term-move-to-column=200)=20(setq=20term-do-line-wrapping=20nil))=20= (setq=20decoded-substring=20(decode-coding-string=20(substring=20str=20i=20= funny)=20locale-coding-system=20t))=20(when=20(=3D=20funny=20str-length)=20= (let=20(...=20...)=20(while=20...=20...)=20(when=20...=20...=20...=20...=20= ...)))=20(let=20((old-column=20...)=20(old-point=20...)=20columns)=20= (unless=20term-suppress-hard-newline=20(while=20...=20...=20...=20...=20= ...=20...=20...=20...))=20(insert=20decoded-substring)=20(setq=20= term-current-column=20(current-column)=20columns=20(-=20= term-current-column=20old-column))=20(when=20(not=20...)=20(let=20...=20= ...=20...=20...))=20(when=20term-insert-mode=20(let=20...=20...=20...=20= ...))=20(put-text-property=20old-point=20(point)=20'font-lock-face=20= term-current-face))=20(when=20(eq=20(term-current-column)=20term-width)=20= (term-move-columns=20-1)=20(setq=20term-do-line-wrapping=20(point)))=20= (setq=20term-current-column=20nil)=20(setq=20i=20funny))=20= (pcase-exhaustive=20(and=20(<=3D=20ctl-end=20str-length)=20(aref=20str=20= i))=20(9=20(let=20(...)=20(term-move-to-column=20...)))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20(and=20term-kill-echo-list=20= ...)=20(term-down=201=20t)))=20(8=20(term-move-columns=20-1))=20(7=20= (beep=20t))=20(26=20(funcall=20term-command-function=20= (decode-coding-string=20...=20locale-coding-system=20t)))=20(27=20(pcase=20= (aref=20str=20...)=20(91=20...)=20(68=20...=20...)=20(77=20...)=20(55=20= ...=20...)=20(56=20...)=20(99=20...)=20(65=20...)))=20((or=200=2014=2015=20= 'nil)=20nil))=20(unless=20(eq=20term-do-line-wrapping=20(point))=20(setq=20= term-do-line-wrapping=20nil))=20(if=20(term-handling-pager)=20(progn=20= (if=20(>=20...=200)=20(setq=20term-terminal-undecoded-bytes=20...)=20(if=20= ...=20...=20...=20...)=20(goto-char=20...))=20(make-local-variable=20= 'term-pager-old-filter)=20(setq=20term-pager-old-filter=20= (process-filter=20proc))=20(set-process-filter=20proc=20= term-pager-filter)=20(setq=20i=20str-length))=20(setq=20i=20ctl-end)))))=20= (when=20(>=3D=20(term-current-row)=20term-height)=20= (term-handle-deferred-scroll))=20(set-marker=20(process-mark=20proc)=20= (point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20(=3D=20...=20save-marker)=20(eq=20scroll=20= t)=20(eq=20scroll=20...)=20(and=20...=20...)=20(and=20...=20...))=20= (when=20term-scroll-snap-to-bottom=20(goto-char=20term-home-marker)=20= (recenter=200))=20(goto-char=20(process-mark=20proc))=20(if=20(not=20= ...)=20(recenter=20-1)))=20(when=20(and=20= term-scroll-show-maximum-output=20(>=3D=20...=20...)=20(or=20= term-scroll-snap-to-bottom=20...))=20(save-excursion=20(goto-char=20...)=20= (recenter=20-1)))))=20(not=20(eq=20win=20last-win))))=20(when=20(>=20= term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil))=0A=20=20(let*=20((i=200)=20funny=20decoded-substring=20save-point=20= save-marker=20win=20(inhibit-read-only=20t)=20(buffer-undo-list=20t)=20= (selected=20(selected-window))=20last-win=20(str-length=20(length=20= str)))=20(save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20(and=20funny=20= ...))=20(ctl-params-end=20(and=20funny=20...))=20(ctl-end=20(if=20funny=20= ...=20...=20...=20...)))=20(when=20(>=20funny=20i)=20(when=20= term-do-line-wrapping=20(term-down=201=20t)=20(term-move-to-column=200)=20= (setq=20term-do-line-wrapping=20nil))=20(setq=20decoded-substring=20= (decode-coding-string=20...=20locale-coding-system=20t))=20(when=20(=3D=20= funny=20str-length)=20(let=20...=20...=20...))=20(let=20(...=20...=20= columns)=20(unless=20term-suppress-hard-newline=20...)=20(insert=20= decoded-substring)=20(setq=20term-current-column=20...=20columns=20...)=20= (when=20...=20...)=20(when=20term-insert-mode=20...)=20= (put-text-property=20old-point=20...=20...=20term-current-face))=20(when=20= (eq=20...=20term-width)=20(term-move-columns=20-1)=20(setq=20= term-do-line-wrapping=20...))=20(setq=20term-current-column=20nil)=20= (setq=20i=20funny))=20(pcase-exhaustive=20(and=20(<=3D=20ctl-end=20= str-length)=20(aref=20str=20i))=20(9=20(let=20...=20...))=20(13=20= (term-vertical-motion=200)=20(setq=20term-current-column=20= term-start-line-column))=20(10=20(unless=20...=20...))=20(8=20= (term-move-columns=20-1))=20(7=20(beep=20t))=20(26=20(funcall=20= term-command-function=20...))=20(27=20(pcase=20...=20...=20...=20...=20= ...=20...=20...=20...))=20((or=200=2014=2015=20...)=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20(point))=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20(if=20...=20...=20...=20= ...)=20(make-local-variable=20...)=20(setq=20term-pager-old-filter=20= ...)=20(set-process-filter=20proc=20term-pager-filter)=20(setq=20i=20= str-length))=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20= (term-current-row)=20term-height)=20(term-handle-deferred-scroll))=20= (set-marker=20(process-mark=20proc)=20(point))=20(when=20(stringp=20= decoded-substring)=20(term-watch-for-password-prompt=20= decoded-substring))=20(when=20save-point=20(goto-char=20save-point)=20= (set-marker=20save-point=20nil))=20(when=20(and=20term-pending-frame=20= (eq=20(window-buffer=20selected)=20(current-buffer)))=20= (term-display-line=20(car=20term-pending-frame)=20(cdr=20= term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20win=20= selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20((scroll=20= term-scroll-to-bottom-on-output))=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20before=20selection")=20(select-window=20win)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20after=20= selection")=20(when=20(or=20...=20...=20...=20...=20...)=20(when=20= term-scroll-snap-to-bottom=20...=20...)=20(goto-char=20...)=20(if=20...=20= ...))=20(when=20(and=20term-scroll-show-maximum-output=20...=20...)=20= (save-excursion=20...=20...))))=20(not=20(eq=20win=20last-win))))=20= (when=20(>=20term-buffer-maximum-size=200)=20(save-excursion=20= (goto-char=20(process-mark=20(get-buffer-process=20(current-buffer))))=20= (forward-line=20(-=20term-buffer-maximum-size))=20(beginning-of-line)=20= (delete-region=20(point-min)=20(point))))=20(set-marker=20save-marker=20= nil)))=0A=20=20(save-current-buffer=20(set-buffer=20(process-buffer=20= proc))=20(let*=20((i=200)=20funny=20decoded-substring=20save-point=20= save-marker=20win=20(inhibit-read-only=20t)=20(buffer-undo-list=20t)=20= (selected=20(selected-window))=20last-win=20(str-length=20(length=20= str)))=20(save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20...)=20= (ctl-params-end=20...)=20(ctl-end=20...))=20(when=20(>=20funny=20i)=20= (when=20term-do-line-wrapping=20...=20...=20...)=20(setq=20= decoded-substring=20...)=20(when=20...=20...)=20(let=20...=20...=20...=20= ...=20...=20...=20...)=20(when=20...=20...=20...)=20(setq=20= term-current-column=20nil)=20(setq=20i=20funny))=20(pcase-exhaustive=20= (and=20...=20...)=20(9=20...)=20(13=20...=20...)=20(10=20...)=20(8=20= ...)=20(7=20...)=20(26=20...)=20(27=20...)=20(...=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20...)=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20...=20...=20...=20...=20= ...)=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20(term-current-row)=20= term-height)=20(term-handle-deferred-scroll))=20(set-marker=20= (process-mark=20proc)=20(point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20(...)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20...=20...=20...=20= ...)=20(when=20...=20...)))=20(not=20(eq=20win=20last-win))))=20(when=20= (>=20term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20...)))=20(forward-line=20(-=20= term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil)))=20(when=20= (get-buffer-window=20(current-buffer))=20(redisplay)))=0A=20=20= (with-current-buffer=20(process-buffer=20proc)=20(let*=20((i=200)=20= funny=20decoded-substring=20save-point=20save-marker=20win=20= (inhibit-read-only=20t)=20(buffer-undo-list=20t)=20(selected=20= (selected-window))=20last-win=20(str-length=20(length=20str)))=20= (save-selected-window=20(when=20(marker-buffer=20= term-pending-delete-marker)=20(delete-region=20= term-pending-delete-marker=20(process-mark=20proc))=20(set-marker=20= term-pending-delete-marker=20nil))=20(when=20(/=3D=20(point)=20= (process-mark=20proc))=20(setq=20save-point=20(point-marker)))=20(setf=20= term-vertical-motion=20(if=20(eq=20(window-buffer)=20(current-buffer))=20= 'vertical-motion=20'term-buffer-vertical-motion))=20(setq=20save-marker=20= (copy-marker=20(process-mark=20proc)))=20(goto-char=20(process-mark=20= proc))=20(save-restriction=20(when=20(and=20(>=20(point-max)=20= (process-mark=20proc))=20(term-in-line-mode))=20(narrow-to-region=20= (point-min)=20(process-mark=20proc)))=20(when=20term-log-buffer=20(princ=20= str=20term-log-buffer))=20(when=20term-terminal-undecoded-bytes=20(setq=20= str=20(concat=20term-terminal-undecoded-bytes=20str))=20(setq=20= str-length=20(length=20str))=20(setq=20term-terminal-undecoded-bytes=20= nil))=20(while=20(<=20i=20str-length)=20(setq=20funny=20(string-match=20= term-control-seq-regexp=20str=20i))=20(let=20((ctl-params=20...)=20= (ctl-params-end=20...)=20(ctl-end=20...))=20(when=20(>=20funny=20i)=20= (when=20term-do-line-wrapping=20...=20...=20...)=20(setq=20= decoded-substring=20...)=20(when=20...=20...)=20(let=20...=20...=20...=20= ...=20...=20...=20...)=20(when=20...=20...=20...)=20(setq=20= term-current-column=20nil)=20(setq=20i=20funny))=20(pcase-exhaustive=20= (and=20...=20...)=20(9=20...)=20(13=20...=20...)=20(10=20...)=20(8=20= ...)=20(7=20...)=20(26=20...)=20(27=20...)=20(...=20nil))=20(unless=20= (eq=20term-do-line-wrapping=20...)=20(setq=20term-do-line-wrapping=20= nil))=20(if=20(term-handling-pager)=20(progn=20...=20...=20...=20...=20= ...)=20(setq=20i=20ctl-end)))))=20(when=20(>=3D=20(term-current-row)=20= term-height)=20(term-handle-deferred-scroll))=20(set-marker=20= (process-mark=20proc)=20(point))=20(when=20(stringp=20decoded-substring)=20= (term-watch-for-password-prompt=20decoded-substring))=20(when=20= save-point=20(goto-char=20save-point)=20(set-marker=20save-point=20nil))=20= (when=20(and=20term-pending-frame=20(eq=20(window-buffer=20selected)=20= (current-buffer)))=20(term-display-line=20(car=20term-pending-frame)=20= (cdr=20term-pending-frame))=20(setq=20term-pending-frame=20nil))=20(setq=20= win=20selected)=20(while=20(window-minibuffer-p=20win)=20(setq=20win=20= (next-window=20win=20nil=20t)))=20(setq=20last-win=20win)=20(while=20= (progn=20(setq=20win=20(next-window=20win=20nil=20t))=20(when=20(eq=20= (window-buffer=20win)=20(process-buffer=20proc))=20(let=20(...)=20= (my/redisplay-minibuffer-log=20"term-emulate-window=20before=20= selection")=20(select-window=20win)=20(my/redisplay-minibuffer-log=20= "term-emulate-window=20after=20selection")=20(when=20...=20...=20...=20= ...)=20(when=20...=20...)))=20(not=20(eq=20win=20last-win))))=20(when=20= (>=20term-buffer-maximum-size=200)=20(save-excursion=20(goto-char=20= (process-mark=20(get-buffer-process=20...)))=20(forward-line=20(-=20= term-buffer-maximum-size))=20(beginning-of-line)=20(delete-region=20= (point-min)=20(point))))=20(set-marker=20save-marker=20nil)))=20(when=20= (get-buffer-window=20(current-buffer))=20(redisplay)))=0A=20=20= term-emulate-terminal(#=20"something\15\n")=0A=20=20= read-from-minibuffer("Find=20file:=20"=20nil=20(keymap=20(9=20.=20= selectrum-insert-current-candidate)=20(10=20.=20= selectrum-submit-exact-input)=20(C-M-backspace=20.=20backward-kill-sexp)=20= (27=20keymap=20(115=20keymap=20(114=20.=20= selectrum-prescient-toggle-regexp)=20(112=20.=20= selectrum-prescient-toggle-prefix)=20(108=20.=20= selectrum-prescient-toggle-literal)=20(105=20.=20= selectrum-prescient-toggle-initialism)=20(102=20.=20= selectrum-prescient-toggle-fuzzy)=20(97=20.=20= selectrum-prescient-toggle-anchored))=20(67108991=20.=20= backward-kill-sexp))=20(remap=20keymap=20= (previous-matching-history-element=20.=20selectrum-select-from-history)=20= (kill-ring-save=20.=20selectrum-kill-ring-save)=20(end-of-buffer=20.=20= selectrum-goto-end)=20(beginning-of-buffer=20.=20= selectrum-goto-beginning)=20(minibuffer-beginning-of-buffer=20.=20= selectrum-goto-beginning)=20(scroll-up-command=20.=20= selectrum-next-page)=20(scroll-down-command=20.=20= selectrum-previous-page)=20(exit-minibuffer=20.=20= selectrum-select-current-candidate)=20(next-line-or-history-element=20.=20= selectrum-next-candidate)=20(previous-line-or-history-element=20.=20= selectrum-previous-candidate)=20(next-line=20.=20= selectrum-next-candidate)=20(previous-line=20.=20= selectrum-previous-candidate)=20(minibuffer-keyboard-quit=20.=20= abort-recursive-edit)=20(keyboard-quit=20.=20abort-recursive-edit))=20= keymap=20(remap=20keymap=20(previous-matching-history-element=20.=20= selectrum-select-from-history))=20(menu-bar=20keymap=20(minibuf=20= "Minibuf"=20keymap=20(previous=20menu-item=20"Previous=20History=20Item"=20= previous-history-element=20:help=20"Put=20previous=20minibuffer=20= history=20element=20in=20the=20min...")=20(next=20menu-item=20"Next=20= History=20Item"=20next-history-element=20:help=20"Put=20next=20= minibuffer=20history=20element=20in=20the=20minibuf...")=20= (isearch-backward=20menu-item=20"Isearch=20History=20Backward"=20= isearch-backward=20:help=20"Incrementally=20search=20minibuffer=20= history=20backward")=20(isearch-forward=20menu-item=20"Isearch=20History=20= Forward"=20isearch-forward=20:help=20"Incrementally=20search=20= minibuffer=20history=20forward")=20(return=20menu-item=20"Enter"=20= exit-minibuffer=20:key-sequence=20"\15"=20:help=20"Terminate=20input=20= and=20exit=20minibuffer")=20(quit=20menu-item=20"Quit"=20= abort-recursive-edit=20:help=20"Abort=20input=20and=20exit=20= minibuffer")=20"Minibuf"))=20(10=20.=20exit-minibuffer)=20(13=20.=20= exit-minibuffer)=20(7=20.=20minibuffer-keyboard-quit)=20(C-tab=20.=20= file-cache-minibuffer-complete)=20(9=20.=20self-insert-command)=20= (XF86Back=20.=20previous-history-element)=20(up=20.=20= previous-line-or-history-element)=20(prior=20.=20= previous-history-element)=20(XF86Forward=20.=20next-history-element)=20= (down=20.=20next-line-or-history-element)=20(next=20.=20= next-history-element)=20(27=20keymap=20(111=20.=20embark-act)=20(60=20.=20= minibuffer-beginning-of-buffer)=20(114=20.=20= previous-matching-history-element)=20(115=20.=20= next-matching-history-element)=20(112=20.=20previous-history-element)=20= (110=20.=20next-history-element)))=20nil=20file-name-history)=0A=20=20= selectrum-read("Find=20file:=20"=20#f(compiled-function=20(input)=20= #)=20:default-candidate=20"~/tmp/"=20= :initial-input=20"~/tmp/"=20:history=20file-name-history=20= :require-match=20nil=20:may-modify-candidates=20t=20= :minibuffer-completion-table=20read-file-name-internal=20= :minibuffer-completion-predicate=20file-exists-p)=0A=20=20= selectrum--completing-read-file-name("Find=20file:=20"=20= read-file-name-internal=20file-exists-p=20confirm-after-completion=20= "~/tmp/"=20file-name-history=20"~/tmp/"=20nil)=0A=20=20= apply(selectrum--completing-read-file-name=20("Find=20file:=20"=20= read-file-name-internal=20file-exists-p=20confirm-after-completion=20= "~/tmp/"=20file-name-history=20"~/tmp/"=20nil))=0A=20=20= #f(compiled-function=20(&rest=20args)=20#)("Find=20file:=20"=20read-file-name-internal=20= file-exists-p=20confirm-after-completion=20"~/tmp/"=20file-name-history=20= "~/tmp/"=20nil)=0A=20=20completing-read("Find=20file:=20"=20= read-file-name-internal=20file-exists-p=20confirm-after-completion=20= "~/tmp/"=20file-name-history=20"~/tmp/")=0A=20=20= read-file-name-default("Find=20file:=20"=20nil=20"/Users/spd/tmp/"=20= confirm-after-completion=20nil=20nil)=0A=20=20= selectrum-read-file-name("Find=20file:=20"=20nil=20"/Users/spd/tmp/"=20= confirm-after-completion=20nil=20nil)=0A=20=20read-file-name("Find=20= file:=20"=20nil=20"/Users/spd/tmp/"=20confirm-after-completion)=0A=20=20= find-file-read-args("Find=20file:=20"=20confirm-after-completion)=0A=20=20= byte-code("\300\301\302=20\"\207"=20[find-file-read-args=20"Find=20file:=20= "=20confirm-nonexistent-file-or-buffer]=203)=0A=20=20= call-interactively(find-file=20nil=20nil)=0A=20=20= command-execute(find-file)=0A= --Apple-Mail=_1AF963F5-C33E-4E33-98B0-1E23A573EC35 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8

On Dec 2, 2020, at 1:24 PM, Sean Devlin <spd@toadstyle.org> = wrote:

Hi Martin,

Thanks for all the helpful info!

On = Dec 2, 2020, at 2:52 AM, martin rudalics <rudalics@gmx.at> = wrote:

I= forgot to say that _all_ normal mini window resizing goes through
'window--resize-root-window-vertically' in window.el. =  So it will
probably suffice to instrument just that = function (in an already running
Emacs only, else you have = to rebuild because window.el is preloaded) and
don't have = to tinker with C code at all.

Imprecise again: The above covers only the automatic resizing = triggered
by redisplay (which is what we are interested = in).  Manual resizing the
minibuffer window is done = in 'window--resize-mini-window' (also in
window.el) so if = such manual resizing may happen in between you have to
instrument that as well.

I see, I=E2=80=99ll take a look = at these functions. Thanks!


martin

= --Apple-Mail=_1AF963F5-C33E-4E33-98B0-1E23A573EC35-- --Apple-Mail=_DA755593-6DB7-496C-9F93-F9FB575B5D31--