From unknown Thu Aug 14 12:25:36 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#74230 <74230@debbugs.gnu.org> To: bug#74230 <74230@debbugs.gnu.org> Subject: Status: 30.0.92; eshell-emit-prompt clobbers text properties Reply-To: bug#74230 <74230@debbugs.gnu.org> Date: Thu, 14 Aug 2025 19:25:36 +0000 retitle 74230 30.0.92; eshell-emit-prompt clobbers text properties reassign 74230 emacs submitter 74230 Ashton Wiersdorf severity 74230 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 06 13:24:25 2024 Received: (at submit) by debbugs.gnu.org; 6 Nov 2024 18:24:25 +0000 Received: from localhost ([127.0.0.1]:45389 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t8khb-0005P3-S7 for submit@debbugs.gnu.org; Wed, 06 Nov 2024 13:24:25 -0500 Received: from lists.gnu.org ([209.51.188.17]:48290) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t8kef-0005KK-3x for submit@debbugs.gnu.org; Wed, 06 Nov 2024 13:21:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t8ked-0001bd-S8 for bug-gnu-emacs@gnu.org; Wed, 06 Nov 2024 13:21:20 -0500 Received: from fhigh-b2-smtp.messagingengine.com ([202.12.124.153]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t8keZ-0002qF-VN for bug-gnu-emacs@gnu.org; Wed, 06 Nov 2024 13:21:19 -0500 Received: from phl-compute-03.internal (phl-compute-03.phl.internal [10.202.2.43]) by mailfhigh.stl.internal (Postfix) with ESMTP id D8917254007F for ; Wed, 6 Nov 2024 13:21:11 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-03.internal (MEProxy); Wed, 06 Nov 2024 13:21:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= wiersdorfmail.net; h=cc:content-transfer-encoding:content-type :content-type:date:date:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to; s=fm2; t= 1730917271; x=1731003671; bh=YicSmdNZHdtWojU6+X/BHD05zZJMWNHRxhS mBDlh8SE=; b=YfNcJXyumIn5ZCT5TZkk7/+POGYLtAB02xXpjl01ZlzqDIrI6Qs 7S2w++nG+YurfX9aGgl3Jmmj9/pvkaYg1HLPsHWZxQQ6iIzLFzwtRgzsAK25yKwp 2IdXFnJLnGSb+ymWGlqVciTdPBSfF8CpYbRoxDA5OUkfMWQXPHlrMTdFdP+7Vvvb VgVzPTQoIcG2CaPu0iXyZmN/5B94c+U/jc3LjhkUQBb9xCuubTWc51oZe7AiA634 XB85uKU7PiW9aszx3c5mZ7kAJ0JX7Qj8v/cvIyQFzWe+YuBURj0t14KcBl6Bu+Jv wZ3Epuzzae7t0b60DMUEJ2Uaos/qzxKhQgw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:message-id:mime-version:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1730917271; x=1731003671; bh=YicSmdNZHdtWojU6+X/BHD05zZJMWNHRxhS mBDlh8SE=; b=nOkW9x5mQqlH4XPm/pHgQUQK50GBdGntXBVC2W2Ctw3mOwRtwH/ SNYy3zZI0+v0aL8EubQV+m1m4zUW3F9fp2fh09Z75f3IXKljvbuVpqHIjCW8dPaV yL6AGFQLcH+u63XRj4upRFDA6n7b71x00YSEI7lBbN285EdsL7lWuWyfG3sDgsyc jnkq5pZvnjUZb/wJARDjrZNim/G4F1o7FJ5yS3bkTxS+DRpHx4+bF3y29lTp+xws 3rK92DkBujLt9ZIs0dkvfjHNV8lVukxn8il5JzObw9zXuAFee17KVg8XJuk621Fk zg6jtmM8sjzJh38cx3h+GFgemeDfyX7xe0Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrtddvgdduuddtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufg ffkfggtgfgsehtqhertddtreejnecuhfhrohhmpeetshhhthhonhcuhghivghrshguohhr fhcuoegrshhhthhonhesfihivghrshguohhrfhhmrghilhdrnhgvtheqnecuggftrfgrth htvghrnhepleeguddttdejheffgfdukeduudevffduudehgfetueffhfffueeffffggfeh leegnecuffhomhgrihhnpehlrghmsggurghlrghnugdrohhrghenucevlhhushhtvghruf hiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrshhhthhonhesfihivghrshgu ohhrfhhmrghilhdrnhgvthdpnhgspghrtghpthhtohepuddpmhhouggvpehsmhhtphhouh htpdhrtghpthhtohepsghughdqghhnuhdqvghmrggtshesghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: i95314641:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Wed, 6 Nov 2024 13:21:11 -0500 (EST) From: Ashton Wiersdorf To: bug-gnu-emacs@gnu.org Subject: 30.0.92; eshell-emit-prompt clobbers text properties User-Agent: mu4e 1.12.7; emacs 30.0.92 Date: Wed, 06 Nov 2024 11:21:01 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=202.12.124.153; envelope-from=ashton@wiersdorfmail.net; helo=fhigh-b2-smtp.messagingengine.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_SBL_A=0.1 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Wed, 06 Nov 2024 13:24:22 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) Hi there, I like configuring my eshell prompt like so: (this has been tested=20 with emacs -Q) (defun fancy-shell () "A pretty shell with git status" (let* ((cwd (abbreviate-file-name (eshell/pwd))) (ref "main") ; usually calls out to magit to get the=20 current refname (stat t) (x-stat eshell-last-command-status) (git-chunk (if ref (format "%s%s%s " (propertize (if stat "[" "(")=20 'font-lock-face (list :foreground (if=20 stat "red" "green"))) (propertize ref 'font-lock-face=20 '(:foreground "yellow")) (propertize (if stat "]" ")")=20 'font-lock-face (list :foreground (if=20 stat "red" "green")))) ""))) (propertize (format "%s %s %s$ " (if (< 0 x-stat) (format (propertize "!%s"=20 'font-lock-face '(:foreground "red")) x-stat) (propertize "=E2=9E=A4" 'font-lock-face (list=20 :foreground (if (< 0 x-stat) "red" "green")))) (propertize cwd 'font-lock-face '(:foreground=20 "#45babf")) git-chunk) 'read-only t 'front-sticky '(font-lock-face read-only) 'rear-nonsticky '(font-lock-face read-only)))) =20=20=20=20 (setopt eshell-prompt-function 'fancy-shell) (setopt eshell-highlight-prompt nil) This worked perfectly in Emacs 29.4. However, in Emacs 30.0.92, I=20 cannot type any text any more. This appears to be an issue with the=20 function `eshell-emit-prompt'. In Emacs 29.4, the function did *not* overwrite the text=20 properties of the prompt `rear-nonsticky (read-only)`. The new version=20 overwrites the rear-nonsticky property so that it is only `(field)`. If I set `eshell-highlight-prompt' to `t', then I get the=20 read-only behavior that I want, but now I cannot get the pleasant component highlighting that `fancy-shell' is meant to provide. You probably know a better solution, but I would like that either=20 the text properties that `eshell-prompt-function' do *not* get=20 clobbered like this, or that `read-only' get added to the `front-sticky' and `rear-nonsticky' text properties, and `read-only' set to `t'. For example, this does what I want: (defun eshell-emit-prompt () "Emit a prompt if eshell is being used interactively." (when (boundp 'ansi-color-context-region) (setq ansi-color-context-region nil)) (run-hooks 'eshell-before-prompt-hook) (if (not eshell-prompt-function) (set-marker eshell-last-output-end (point)) (let ((prompt (funcall eshell-prompt-function))) (add-text-properties 0 (length prompt) (if eshell-highlight-prompt '( read-only t field prompt font-lock-face eshell-prompt front-sticky (read-only field font-lock-face) rear-nonsticky (read-only field font-lock-face)) '( field prompt read-only t ; CHANGE HERE front-sticky (read-only field) ; CHANGE HERE rear-nonsticky (read-only field))) ; CHANGE HERE prompt) (eshell-interactive-filter nil prompt))) (run-hooks 'eshell-after-prompt-hook)) I hope that was helpful; thank you for your time and attention. In GNU Emacs 30.0.92 (build 2, aarch64-apple-darwin24.1.0, NS appkit-2575.20 Version 15.1 (Build 24B83)) of 2024-11-05 built on vulcan.local Windowing system distributor 'Apple', version 10.3.2575 System Description: macOS 15.1 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=3D/opt/homebrew/share/emacs/site-lisp --infodir=3D/opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/info/emacs --prefix=3D/opt/homebrew/Cellar/emacs-plus@30/30.0.92 --with-xml2 --with-gnutls --with-native-compilation=3Daot=20 --without-compress-install --with-dbus --with-imagemagick --with-modules --with-rsvg=20 --with-webp --without-pop --with-xwidgets --with-ns=20 --disable-ns-self-contained 'CFLAGS=3D-O2 -DFD_SETSIZE=3D10000 -DDARWIN_UNLIMITED_SELECT -I/opt/homebrew/opt/gcc/include=20 -I/opt/homebrew/opt/libgccjit/include' 'LDFLAGS=3D-L/opt/homebrew/lib/gcc/14=20 -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include'' Configured features: ACL DBUS GIF GLIB GMP GNUTLS IMAGEMAGICK JPEG LCMS2 LIBXML2=20 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM XWIDGETS ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: jinx-mode: t electric-pair-mode: t hl-line-mode: t magit-todos-mode: t global-git-commit-mode: t global-treesit-auto-mode: t eat-eshell-visual-command-mode: t eat-eshell-mode: t corfu-popupinfo-mode: t corfu-echo-mode: t corfu-history-mode: t global-corfu-mode: t corfu-mode: t marginalia-mode: t vertico-multiform-mode: t vertico-mode: t which-key-mode: t pulsar-global-mode: t pulsar-mode: t mlscroll-mode: t olivetti-mode: t consult-notes-denote-mode: t consult-denote-mode: t denote-rename-buffer-mode: t citar-denote-mode: t citar-embark-mode: t denote-menu-bar-mode: t global-evil-surround-mode: t evil-surround-mode: t global-evil-collection-unimpaired-mode: t evil-collection-unimpaired-mode: t global-origami-mode: t origami-mode: t evil-mode: t evil-local-mode: t gcmh-mode: t puni-mode: t windmove-mode: t winner-mode: t pixel-scroll-precision-mode: t global-auto-revert-mode: t elpaca-use-package-mode: t override-global-mode: t display-time-mode: t savehist-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-mode: t file-name-shadow-mode: t context-menu-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t column-number-mode: t line-number-mode: t visual-line-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t hs-minor-mode: t Load-path shadows: /Users/ashton/.emacs.d/elpaca/builds/auctex/tex-site hides=20 /opt/homebrew/share/emacs/site-lisp/tex-site /Users/ashton/.emacs.d/elpaca/builds/which-key/which-key hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/which-k= ey /Users/ashton/.emacs.d/elpaca/builds/transient/transient hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/transie= nt /Users/ashton/.emacs.d/elpaca/builds/org/ob-comint hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= comint /Users/ashton/.emacs.d/elpaca/builds/org/ob-exp hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= exp /Users/ashton/.emacs.d/elpaca/builds/org/org-ctags hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -ctags /Users/ashton/.emacs.d/elpaca/builds/org/ob-emacs-lisp hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= emacs-lisp /Users/ashton/.emacs.d/elpaca/builds/org/oc hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/oc /Users/ashton/.emacs.d/elpaca/builds/org/ox-texinfo hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= texinfo /Users/ashton/.emacs.d/elpaca/builds/org/ol-irc hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= irc /Users/ashton/.emacs.d/elpaca/builds/org/ol-doi hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= doi /Users/ashton/.emacs.d/elpaca/builds/org/ob hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob /Users/ashton/.emacs.d/elpaca/builds/org/org-refile hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -refile /Users/ashton/.emacs.d/elpaca/builds/org/org-version hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -version /Users/ashton/.emacs.d/elpaca/builds/org/org-num hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -num /Users/ashton/.emacs.d/elpaca/builds/org/ol-mhe hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= mhe /Users/ashton/.emacs.d/elpaca/builds/org/ob-shell hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= shell /Users/ashton/.emacs.d/elpaca/builds/org/org-attach hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -attach /Users/ashton/.emacs.d/elpaca/builds/org/ob-C hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-C /Users/ashton/.emacs.d/elpaca/builds/org/org-macs hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -macs /Users/ashton/.emacs.d/elpaca/builds/org/org-entities hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -entities /Users/ashton/.emacs.d/elpaca/builds/org/ob-dot hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= dot /Users/ashton/.emacs.d/elpaca/builds/org/ob-sql hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= sql /Users/ashton/.emacs.d/elpaca/builds/org/ol-eww hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= eww /Users/ashton/.emacs.d/elpaca/builds/org/org-datetree hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -datetree /Users/ashton/.emacs.d/elpaca/builds/org/org-macro hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -macro /Users/ashton/.emacs.d/elpaca/builds/org/ob-eval hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= eval /Users/ashton/.emacs.d/elpaca/builds/org/ob-haskell hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= haskell /Users/ashton/.emacs.d/elpaca/builds/org/ox-org hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= org /Users/ashton/.emacs.d/elpaca/builds/org/ol-rmail hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= rmail /Users/ashton/.emacs.d/elpaca/builds/org/ob-awk hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= awk /Users/ashton/.emacs.d/elpaca/builds/org/ob-groovy hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= groovy /Users/ashton/.emacs.d/elpaca/builds/org/ox-icalendar hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= icalendar /Users/ashton/.emacs.d/elpaca/builds/org/ob-octave hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= octave /Users/ashton/.emacs.d/elpaca/builds/org/ob-scheme hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= scheme /Users/ashton/.emacs.d/elpaca/builds/org/org-mobile hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -mobile /Users/ashton/.emacs.d/elpaca/builds/org/ob-processing hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= processing /Users/ashton/.emacs.d/elpaca/builds/org/oc-biblatex hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/oc-= biblatex /Users/ashton/.emacs.d/elpaca/builds/org/oc-csl hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/oc-= csl /Users/ashton/.emacs.d/elpaca/builds/org/org-colview hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -colview /Users/ashton/.emacs.d/elpaca/builds/org/ob-R hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-R /Users/ashton/.emacs.d/elpaca/builds/org/org-table hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -table /Users/ashton/.emacs.d/elpaca/builds/org/ox-html hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= html /Users/ashton/.emacs.d/elpaca/builds/org/ob-fortran hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= fortran /Users/ashton/.emacs.d/elpaca/builds/org/ol hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol /Users/ashton/.emacs.d/elpaca/builds/org/ob-plantuml hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= plantuml /Users/ashton/.emacs.d/elpaca/builds/org/ol-docview hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= docview /Users/ashton/.emacs.d/elpaca/builds/org/ob-perl hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= perl /Users/ashton/.emacs.d/elpaca/builds/org/ob-sqlite hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= sqlite /Users/ashton/.emacs.d/elpaca/builds/org/oc-basic hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/oc-= basic /Users/ashton/.emacs.d/elpaca/builds/org/ob-sed hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= sed /Users/ashton/.emacs.d/elpaca/builds/org/org-fold-core hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -fold-core /Users/ashton/.emacs.d/elpaca/builds/org/ob-ditaa hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= ditaa /Users/ashton/.emacs.d/elpaca/builds/org/ob-ruby hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= ruby /Users/ashton/.emacs.d/elpaca/builds/org/oc-bibtex hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/oc-= bibtex /Users/ashton/.emacs.d/elpaca/builds/org/org-habit hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -habit /Users/ashton/.emacs.d/elpaca/builds/org/org-loaddefs hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -loaddefs /Users/ashton/.emacs.d/elpaca/builds/org/ol-gnus hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= gnus /Users/ashton/.emacs.d/elpaca/builds/org/ob-screen hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= screen /Users/ashton/.emacs.d/elpaca/builds/org/org-mouse hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -mouse /Users/ashton/.emacs.d/elpaca/builds/org/ob-css hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= css /Users/ashton/.emacs.d/elpaca/builds/org/org-inlinetask hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -inlinetask /Users/ashton/.emacs.d/elpaca/builds/org/ob-lisp hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= lisp /Users/ashton/.emacs.d/elpaca/builds/org/ol-eshell hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= eshell /Users/ashton/.emacs.d/elpaca/builds/org/org-pcomplete hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -pcomplete /Users/ashton/.emacs.d/elpaca/builds/org/org-lint hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -lint /Users/ashton/.emacs.d/elpaca/builds/org/org-id hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -id /Users/ashton/.emacs.d/elpaca/builds/org/org-capture hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -capture /Users/ashton/.emacs.d/elpaca/builds/org/ob-sass hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= sass /Users/ashton/.emacs.d/elpaca/builds/org/ob-tangle hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= tangle /Users/ashton/.emacs.d/elpaca/builds/org/ob-calc hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= calc /Users/ashton/.emacs.d/elpaca/builds/org/ob-java hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= java /Users/ashton/.emacs.d/elpaca/builds/org/org-compat hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -compat /Users/ashton/.emacs.d/elpaca/builds/org/org-attach-git hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -attach-git /Users/ashton/.emacs.d/elpaca/builds/org/ox-beamer hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= beamer /Users/ashton/.emacs.d/elpaca/builds/org/org-protocol hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -protocol /Users/ashton/.emacs.d/elpaca/builds/org/org-element hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -element /Users/ashton/.emacs.d/elpaca/builds/org/ob-lob hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= lob /Users/ashton/.emacs.d/elpaca/builds/org/org-tempo hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -tempo /Users/ashton/.emacs.d/elpaca/builds/org/ob-python hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= python /Users/ashton/.emacs.d/elpaca/builds/org/ob-latex hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= latex /Users/ashton/.emacs.d/elpaca/builds/org/ol-w3m hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= w3m /Users/ashton/.emacs.d/elpaca/builds/org/org-agenda hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -agenda /Users/ashton/.emacs.d/elpaca/builds/org/org-persist hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -persist /Users/ashton/.emacs.d/elpaca/builds/org/ob-ocaml hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= ocaml /Users/ashton/.emacs.d/elpaca/builds/org/ob-ref hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= ref /Users/ashton/.emacs.d/elpaca/builds/org/org-fold hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -fold /Users/ashton/.emacs.d/elpaca/builds/org/ob-julia hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= julia /Users/ashton/.emacs.d/elpaca/builds/org/ob-lilypond hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= lilypond /Users/ashton/.emacs.d/elpaca/builds/org/ob-table hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= table /Users/ashton/.emacs.d/elpaca/builds/org/ob-clojure hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= clojure /Users/ashton/.emacs.d/elpaca/builds/org/org-indent hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -indent /Users/ashton/.emacs.d/elpaca/builds/org/org-plot hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -plot /Users/ashton/.emacs.d/elpaca/builds/org/ox-latex hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= latex /Users/ashton/.emacs.d/elpaca/builds/org/org-src hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -src /Users/ashton/.emacs.d/elpaca/builds/org/org-duration hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -duration /Users/ashton/.emacs.d/elpaca/builds/org/ob-makefile hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= makefile /Users/ashton/.emacs.d/elpaca/builds/org/ol-info hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= info /Users/ashton/.emacs.d/elpaca/builds/org/org-clock hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -clock /Users/ashton/.emacs.d/elpaca/builds/org/ob-forth hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= forth /Users/ashton/.emacs.d/elpaca/builds/org/ox-odt hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= odt /Users/ashton/.emacs.d/elpaca/builds/org/ol-man hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= man /Users/ashton/.emacs.d/elpaca/builds/org/ox-publish hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= publish /Users/ashton/.emacs.d/elpaca/builds/org/org-archive hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -archive /Users/ashton/.emacs.d/elpaca/builds/org/ob-org hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= org /Users/ashton/.emacs.d/elpaca/builds/org/ob-lua hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= lua /Users/ashton/.emacs.d/elpaca/builds/org/org-keys hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -keys /Users/ashton/.emacs.d/elpaca/builds/org/ob-eshell hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= eshell /Users/ashton/.emacs.d/elpaca/builds/org/org-faces hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -faces /Users/ashton/.emacs.d/elpaca/builds/org/ox-man hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= man /Users/ashton/.emacs.d/elpaca/builds/org/org-list hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -list /Users/ashton/.emacs.d/elpaca/builds/org/ox-md hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= md /Users/ashton/.emacs.d/elpaca/builds/org/org-goto hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -goto /Users/ashton/.emacs.d/elpaca/builds/org/ol-bbdb hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= bbdb /Users/ashton/.emacs.d/elpaca/builds/org/org hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org /Users/ashton/.emacs.d/elpaca/builds/org/ol-bibtex hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ol-= bibtex /Users/ashton/.emacs.d/elpaca/builds/org/ox-koma-letter hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= koma-letter /Users/ashton/.emacs.d/elpaca/builds/org/ox-ascii hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox-= ascii /Users/ashton/.emacs.d/elpaca/builds/org/ob-matlab hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= matlab /Users/ashton/.emacs.d/elpaca/builds/org/ox hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ox /Users/ashton/.emacs.d/elpaca/builds/org/org-timer hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -timer /Users/ashton/.emacs.d/elpaca/builds/org/oc-natbib hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/oc-= natbib /Users/ashton/.emacs.d/elpaca/builds/org/ob-core hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= core /Users/ashton/.emacs.d/elpaca/builds/org/org-feed hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -feed /Users/ashton/.emacs.d/elpaca/builds/org/ob-gnuplot hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= gnuplot /Users/ashton/.emacs.d/elpaca/builds/org/ob-js hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= js /Users/ashton/.emacs.d/elpaca/builds/org/org-element-ast hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -element-ast /Users/ashton/.emacs.d/elpaca/builds/org/org-footnote hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -footnote /Users/ashton/.emacs.d/elpaca/builds/org/ob-maxima hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/ob-= maxima /Users/ashton/.emacs.d/elpaca/builds/org/org-cycle hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -cycle /Users/ashton/.emacs.d/elpaca/builds/org/org-crypt hides=20 /opt/homebrew/Cellar/emacs-plus@30/30.0.92/share/emacs/30.0.92/lisp/org/org= -crypt Features: (shadow sort adaptive-wrap mail-extr emacsbug tempel find-func evil-collection-info info cl-print em-rebind em-smart em-tramp=20 help-fns radix-tree misearch multi-isearch vc-git vc-dispatcher hideshow face-remap jinx elec-pair em-unix em-term em-script em-pred em-ls em-hist em-glob em-extpipe em-cmpl em-dirs em-basic em-banner=20 em-alias evil-collection-eshell em-prompt evil-collection-forge forge-repos forge-tablist hl-line forge-topics forge-commands forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab=20 glab forge-github ghub-graphql treepy gsexp ghub url-http url-gw nsm=20 url-auth let-alist gnutls forge-notify forge-revnote forge-pullreq=20 forge-issue forge-topic yaml eieio-custom bug-reference forge-post=20 markdown-mode edit-indirect noutline outline forge-repo forge forge-core=20 forge-db closql emacsql-sqlite-common emacsql emacsql-compiler eieio-base magit-todos pcre2el rxt advice re-builder hl-todo f async grep evil-collection-magit magit-bookmark magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull=20 magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit package url-handlers magit-repos magit-apply magit-wip magit-log which-func imenu=20 magit-diff smerge-mode diff git-commit log-edit message sendmail yank-media=20 puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045=20 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor server magit-mode=20 benchmark magit-git magit-base magit-section cursor-sensor crm eshell=20 treesit-auto combobulate combobulate-go combobulate-json combobulate-yaml combobulate-css combobulate-js-ts combobulate-python=20 combobulate-html combobulate-toml combobulate-cursor combobulate-query scheme combobulate-ui transient combobulate-display combobulate-ztree combobulate-contrib combobulate-envelope combobulate-manipulation=20 python combobulate-procedure combobulate-navigation combobulate-misc combobulate-setup tempo combobulate-interface combobulate-settings diff-mode track-changes combobulate-rules typescript-mode cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine=20 cc-vars cc-defs compile esh-mode esh-var esh-cmd generator esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-module-loaddefs esh-util=20 eat term/xterm xterm tramp trampver tramp-integration files-x=20 tramp-message tramp-compat xdg parse-time format-spec tramp-loaddefs term=20 disp-table ehelp shell pcomplete comint ansi-osc ansi-color cape kind-icon=20 svg-lib svg dom xml corfu-popupinfo corfu-echo corfu-history corfu=20 orderless symbol-overlay marginalia vertico-multiform vertico which-key avy=20 pulsar pulse color mlscroll olivetti consult-notes-denote consult-notes consult-denote denote-journal-extras denote-rename-buffer=20 citar-denote citar-embark embark-consult embark ffap all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons citar citar-file citar-cache citar-format parsebib bibtex iso8601 time-date=20 browse-url denote xref project consult bookmark text-property-search compat nordic-midnight-theme nordic-night-theme evil-surround evil-collection-unimpaired evil-collection-eldoc=20 evil-collection-dired evil-collection annalist origami origami-parsers cl s dash evil evil-integration evil-maps evil-commands reveal evil-jumps evil-command-window evil-types evil-search evil-ex evil-macros evil-repeat evil-states evil-core comp comp-cstr warnings comp-run comp-common evil-common thingatpt rect evil-vars cus-start=20 diminish gcmh tempel-autoloads git-timemachine-autoloads git-modes-autoloads consult-projectile-autoloads projectile-autoloads forge-autoloads closql-autoloads emacsql-autoloads ghub-autoloads treepy-autoloads markdown-mode-autoloads yaml-autoloads magit-delta-autoloads xterm-color-autoloads blamer-autoloads posframe-autoloads magit-todos-autoloads async-autoloads hl-todo-autoloads pcre2el-autoloads apheleia-autoloads rust-mode-autoloads json-mode-autoloads rx json-snatcher-autoloads web-mode-autoloads csv-mode-autoloads docker-compose-mode-autoloads=20 yaml-mode-autoloads dockerfile-mode-autoloads go-mode-autoloads elixir-mode-autoloads treesit-auto-autoloads combobulate-autoloads=20 consult-flycheck-autoloads eglot-booster-autoloads flycheck-autoloads consult-eglot-autoloads rainbow-mode-autoloads free-keys-autoloads package-lint-autoloads scribble-mode-autoloads lua-mode-autoloads racket-mode-autoloads haskell-mode-autoloads typescript-mode-autoloads=20 julia-repl-autoloads eglot-jl-autoloads julia-mode-autoloads company-coq-autoloads yasnippet-autoloads company-math-autoloads company-autoloads math-symbol-lists-autoloads proof-general-autoloads proof-site proof-autoloads idris-mode-autoloads prop-menu-autoloads=20 slime-autoloads macrostep-autoloads eshell-vterm-autoloads eat-autoloads=20 vterm-autoloads message-view-patch-autoloads magit-autoloads=20 magit-section-autoloads with-editor-autoloads mu4e-views-autoloads=20 xwidgets-reuse-autoloads org-mime-autoloads ebdb-autoloads pcmpl-args-autoloads=20 cape-autoloads kind-icon-autoloads svg-lib-autoloads corfu-autoloads orderless-autoloads all-the-icons-autoloads wgrep-autoloads embark-consult-autoloads embark-autoloads symbol-overlay-autoloads marginalia-autoloads vertico-autoloads puni-autoloads which-key-autoloads ace-window-autoloads avy-autoloads diminish-autoloads pulsar-autoloads mlscroll-autoloads=20 gptel-autoloads transient-autoloads crdt-autoloads malyon-autoloads=20 mastodon-autoloads request-autoloads persist-autoloads hackernews-autoloads=20 nov-autoloads esxml-autoloads kv-autoloads atomic-chrome-autoloads=20 websocket-autoloads lorem-ipsum-autoloads writegood-mode-autoloads jinx-autoloads auctex-autoloads tex-site edit-indirect-autoloads=20 wc-goal-mode-autoloads osx-dictionary-autoloads adaptive-wrap-autoloads writeroom-mode-autoloads visual-fill-column-autoloads=20 olivetti-autoloads deft-autoloads consult-notes-autoloads consult-denote-autoloads consult-autoloads citar-denote-autoloads denote-autoloads citar-autoloads citeproc-autoloads f-autoloads queue-autoloads string-inflection-autoloads parsebib-autoloads pdf-tools-autoloads tablist-autoloads gnuplot-autoloads corg-autoloads org-bulletproof-autoloads org-fragtog-autoloads=20 ox-pandoc-autoloads ht-autoloads ox-hugo-autoloads tomelr-autoloads ox-gfm-autoloads htmlize-autoloads engrave-faces-autoloads ob-racket-autoloads org-loaddefs nordic-night-theme-autoloads evil-org-autoloads evil-surround-autoloads evil-nerd-commenter-autoloads evil-args-autoloads evil-numbers-autoloads=20 evil-collection-autoloads annalist-autoloads evil-autoloads goto-chg-autoloads=20 origami-autoloads s-autoloads dash-autoloads gcmh-autoloads pcase treesit doc-view jka-compr image-mode exif dired dired-loaddefs edmacro kmacro=20 windmove winner pixel-scroll cua-base ring cl-extra help-mode autorevert filenotify cus-edit pp cus-load wid-edit elpaca-use-package=20 use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core elpaca-use-package-autoloads elpaca-log elpaca-ui url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util url-parse auth-source eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt=20 gv bytecomp byte-compile url-vars mailcap cl-seq elpaca=20 elpaca-process cl-loaddefs cl-lib elpaca-autoloads time savehist rmc iso-transl=20 tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks=20 lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode=20 register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core=20 term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian=20 philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai=20 tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak=20 czech european ethiopic indian cyrillic chinese composite emoji-zwj=20 charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray=20 oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face=20 macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable=20 backquote threads xwidget-internal dbusbind kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 1045386 1178825) (symbols 48 49905 20) (strings 32 351480 71515) (string-bytes 1 8452714) (vectors 16=20 87562) (vector-slots 8 1759867 513038) (floats 8 987 15307) (intervals 56 10261 5742) (buffers 992 26)) --=20 Ashton Wiersdorf https://lambdaland.org/ From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 07 13:17:27 2024 Received: (at 74230) by debbugs.gnu.org; 7 Nov 2024 18:17:27 +0000 Received: from localhost ([127.0.0.1]:49528 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t974Q-0004ZI-SN for submit@debbugs.gnu.org; Thu, 07 Nov 2024 13:17:27 -0500 Received: from mail-pl1-f174.google.com ([209.85.214.174]:60847) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t974O-0004Z3-Dt for 74230@debbugs.gnu.org; Thu, 07 Nov 2024 13:17:25 -0500 Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-20cb7139d9dso12951635ad.1 for <74230@debbugs.gnu.org>; Thu, 07 Nov 2024 10:17:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731003378; x=1731608178; darn=debbugs.gnu.org; h=in-reply-to:from:cc:references:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=0C5wktc44nTrFn97GZUcFnTlGJ92HC2+bh6MxSkwk8Q=; b=OgNsjqYZ2LJJh2POxY3NYN8EoRitQD46vYWgcPtQh2QoxaaSD2fFkZAud7WpRv2Gjq ZGGNQj4HTUBYk8VdeAJnF9rk1Ur+Fmf5onK3YumLAXzjx3MX/mrDy0IRNHvq+vh8vxI/ BGzjJmVpHm7a4BhCVsWv9Y1oEWwLd9oym755e0fuGWivYRizfYYWJx1DGDLM18nd6bXN rwsZnKnwYL2AVCdT3M+c6/D0cmNEkY2772xTVrS6Daz18G5LnLKD6qprw0Zs9/8gN8XL uPoqrdWZlFuG9YSwauIAn6iyHoCu/T7AOW2YWaD8LsSEScmx970taHP71q/DggqqkRgY xY8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731003379; x=1731608179; h=in-reply-to:from:cc:references:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=0C5wktc44nTrFn97GZUcFnTlGJ92HC2+bh6MxSkwk8Q=; b=ss0TkZNas+0MQ7z9xpL14RfuYxTWAhBTrNldSvpooGREO9zKkT2FR2ZLQPkDmq1KUV elq9TH73sj4FVAsPXmxz3Hesf31Ic++jEmDucuB53Zor1x9t0vLy5WgYMebvl5ueHe/f r2DriiQyIWN+GrX6a3eObI0iILA9NUuDiOcuVqvqeHNVu5X6FaFVMPwEFRIiuJk4qFjZ 6kwJ5AJI6w235PsK3RAeiwhUFykgi9/bvqPNyl3Ou2/efK0VA78b5rpBeJczo+hlZsKT bw6Dj6hT8jMrDNav4UOvrx3Rj+Tqs16PC8TMirjV3j9qDQIrZGLC5Fua9TKoqcC8NJ1r JtWQ== X-Forwarded-Encrypted: i=1; AJvYcCVc6qEHGMW+8n8Z1rZTygE8oXWh37KCzuICsSKo3W6TXQwfiyb+zGbPXvg/sn+keq8mTj4l1w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzqdPN3yEvDyK53WdepjqrEsb4iCb5JF3RlrTxr9N0uS11PF67i 8ciCVOqbP4m7drkyZfMdLElVfcNoFrwIJail68YKESeLFpKhbkP5 X-Google-Smtp-Source: AGHT+IGG5QNb6wxsBP2Na8CQo4q0XipVr9J4BhAsVhwvokvmoYvutP7M4kB4NH0rbyu1kpf9viEzoA== X-Received: by 2002:a17:903:22c3:b0:20d:284c:8d54 with SMTP id d9443c01a7336-2118235a822mr4459255ad.34.1731003378465; Thu, 07 Nov 2024 10:16:18 -0800 (PST) Received: from [192.168.1.2] (syn-023-240-098-037.res.spectrum.com. [23.240.98.37]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-21177ddf7c7sm15173495ad.101.2024.11.07.10.16.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 07 Nov 2024 10:16:17 -0800 (PST) Content-Type: multipart/mixed; boundary="------------Oulhot80BMCd0DWGF6eyyK1S" Message-ID: <42bd1d73-8faf-b12b-e3c3-06c814d395a4@gmail.com> Date: Thu, 7 Nov 2024 10:16:16 -0800 MIME-Version: 1.0 Subject: Re: bug#74230: 30.0.92; eshell-emit-prompt clobbers text properties Content-Language: en-US To: Ashton Wiersdorf , 74230@debbugs.gnu.org References: From: Jim Porter In-Reply-To: X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 74230 Cc: eliz@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------Oulhot80BMCd0DWGF6eyyK1S Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/6/2024 10:21 AM, Ashton Wiersdorf wrote: > In Emacs 29.4, the function did *not* overwrite the text properties of > the prompt `rear-nonsticky (read-only)`. The new version overwrites the > rear-nonsticky property so that it is only `(field)`. Thanks for noticing this. > If I set `eshell-highlight-prompt' to `t', then I get the read-only > behavior that I want, but now I cannot get the pleasant component > highlighting that `fancy-shell' is meant to provide. If you set the 'face' attribute instead of the 'font-lock-face' attribute, you should get the highlighting you want (that's what I do) while 'eshell-highlight-prompt' is non-nil. Here's a patch to fix this though so that we're more careful about not clobbering stickiness properties. Eli, what do you think about this patch? It fixes a regression from Emacs 29, but the diff is fairly large for so late in the Emacs 30 cycle. Unfortunately, I can't think of a better solution that doesn't just shuffle the bug around to a different spot. On the plus side, this code already has regression tests, and it was easy to add a new one for this case. Personally, I'd be ok with having this be a known bug (there's a workaround for Emacs 30) and fixing it on master. But if you think this change is ok for the release branch, I'd also be ok with installing there; then people don't need to deal with the workaround. --------------Oulhot80BMCd0DWGF6eyyK1S Content-Type: text/plain; charset=UTF-8; name="0001-Don-t-clobber-stickiness-text-properties-when-printi.patch" Content-Disposition: attachment; filename*0="0001-Don-t-clobber-stickiness-text-properties-when-printi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4YjhlNDgzMGY0NWU2OTMyOTAxOGJjODcxMjFlMTJlZTZkZGZiOWQ0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFRodSwgNyBOb3YgMjAyNCAxMDowODozMyAtMDgwMApTdWJqZWN0OiBbUEFU Q0hdIERvbid0IGNsb2JiZXIgc3RpY2tpbmVzcyB0ZXh0IHByb3BlcnRpZXMgd2hlbiBwcmlu dGluZyBFc2hlbGwKIHByb21wdAoKKiBsaXNwL2VzaGVsbC9lbS1wcm9tcHQuZWwgKGVzaGVs bC0tYXBwZW5kLXRleHQtcHJvcGVydHkpOiBOZXcKZnVuY3Rpb24uLi4KKGVzaGVsbC1lbWl0 LXByb21wdCk6IC4uLiB1c2UgaXQuCgoqIHRlc3QvbGlzcC9lc2hlbGwvZW0tcHJvbXB0LXRl c3RzLmVsCihlbS1wcm9tcHQtdGVzdC9maWVsZC1wcm9wZXJ0aWVzL21lcmdlLXN0aWNraW5l c3MpOiBOZXcgdGVzdC4KKGVtLXByb21wdC10ZXN0L2ZpZWxkLXByb3BlcnRpZXMsIGVtLXBy b21wdC10ZXN0L2FmdGVyLWZhaWx1cmUpOiBSZW9yZGVyCnN0aWNraW5lc3MgdmFsdWVzIChi dWcjNzQyMzApLgotLS0KIGxpc3AvZXNoZWxsL2VtLXByb21wdC5lbCAgICAgICAgICAgIHwg MzYgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHRlc3QvbGlzcC9lc2hlbGwvZW0t cHJvbXB0LXRlc3RzLmVsIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogMiBm aWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9saXNwL2VzaGVsbC9lbS1wcm9tcHQuZWwgYi9saXNwL2VzaGVsbC9lbS1wcm9t cHQuZWwKaW5kZXggZGU2MmI1YzdkOTcuLjM3OTcwYWMwYmE1IDEwMDY0NAotLS0gYS9saXNw L2VzaGVsbC9lbS1wcm9tcHQuZWwKKysrIGIvbGlzcC9lc2hlbGwvZW0tcHJvbXB0LmVsCkBA IC0xMTksNiArMTE5LDE5IEBAIGVzaGVsbC1wcm9tcHQtaW5pdGlhbGl6ZQogICAgIChhZGQt aG9vayAnZXNoZWxsLXBvc3QtY29tbWFuZC1ob29rICdlc2hlbGwtZW1pdC1wcm9tcHQgbmls IHQpCiAgICAgKGVzaGVsbC1wcm9tcHQtbW9kZSkpKQogCisoZGVmdW4gZXNoZWxsLS1hcHBl bmQtdGV4dC1wcm9wZXJ0eSAoc3RhcnQgZW5kIHByb3AgdmFsdWUgJm9wdGlvbmFsIG9iamVj dCkKKyAgIkFwcGVuZCB0byBhIHRleHQgcHJvcGVydHkgZnJvbSBTVEFSVCB0byBFTkQuCitQ Uk9QIGlzIHRoZSB0ZXh0IHByb3BlcnR5IHRvIGFwcGVuZCB0bywgYW5kIFZBTFVFIGlzIHRo ZSBsaXN0IG9mCitwcm9wZXJ0eSB2YWx1ZXMgdG8gYXBwZW5kLiAgT0JKRUNUIGlzIHRoZSBv YmplY3QgdG8gcHJvcGVydGl6ZSwgYXMgd2l0aAorYHB1dC10ZXh0LXByb3BlcnR5JyAod2hp Y2ggc2VlKS4iCisgIChsZXQgKG5leHQpCisgICAgKHdoaWxlICg8IHN0YXJ0IGVuZCkKKyAg ICAgIChzZXRxIG5leHQgKG5leHQtc2luZ2xlLXByb3BlcnR5LWNoYW5nZSBzdGFydCBwcm9w IG9iamVjdCBlbmQpKQorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IHN0YXJ0IG5leHQgcHJv cAorICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGdldC10ZXh0LXByb3BlcnR5 IHN0YXJ0IHByb3Agb2JqZWN0KSB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBv YmplY3QpCisgICAgICAoc2V0cSBzdGFydCBuZXh0KSkpKQorCiAoZGVmdW4gZXNoZWxsLWVt aXQtcHJvbXB0ICgpCiAgICJFbWl0IGEgcHJvbXB0IGlmIGVzaGVsbCBpcyBiZWluZyB1c2Vk IGludGVyYWN0aXZlbHkuIgogICAod2hlbiAoYm91bmRwICdhbnNpLWNvbG9yLWNvbnRleHQt cmVnaW9uKQpAQCAtMTI2LDE5ICsxMzksMTYgQEAgZXNoZWxsLWVtaXQtcHJvbXB0CiAgIChy dW4taG9va3MgJ2VzaGVsbC1iZWZvcmUtcHJvbXB0LWhvb2spCiAgIChpZiAobm90IGVzaGVs bC1wcm9tcHQtZnVuY3Rpb24pCiAgICAgICAoc2V0LW1hcmtlciBlc2hlbGwtbGFzdC1vdXRw dXQtZW5kIChwb2ludCkpCi0gICAgKGxldCAoKHByb21wdCAoZnVuY2FsbCBlc2hlbGwtcHJv bXB0LWZ1bmN0aW9uKSkpCi0gICAgICAoYWRkLXRleHQtcHJvcGVydGllcwotICAgICAgIDAg KGxlbmd0aCBwcm9tcHQpCi0gICAgICAgKGlmIGVzaGVsbC1oaWdobGlnaHQtcHJvbXB0Ci0g ICAgICAgICAgICcoIHJlYWQtb25seSB0Ci0gICAgICAgICAgICAgIGZpZWxkIHByb21wdAot ICAgICAgICAgICAgICBmb250LWxvY2stZmFjZSBlc2hlbGwtcHJvbXB0Ci0gICAgICAgICAg ICAgIGZyb250LXN0aWNreSAocmVhZC1vbmx5IGZpZWxkIGZvbnQtbG9jay1mYWNlKQotICAg ICAgICAgICAgICByZWFyLW5vbnN0aWNreSAocmVhZC1vbmx5IGZpZWxkIGZvbnQtbG9jay1m YWNlKSkKLSAgICAgICAgICcoIGZpZWxkIHByb21wdAotICAgICAgICAgICAgZnJvbnQtc3Rp Y2t5IChmaWVsZCkKLSAgICAgICAgICAgIHJlYXItbm9uc3RpY2t5IChmaWVsZCkpKQotICAg ICAgIHByb21wdCkKKyAgICAobGV0KiAoKHByb21wdCAoZnVuY2FsbCBlc2hlbGwtcHJvbXB0 LWZ1bmN0aW9uKSkKKyAgICAgICAgICAgKGxlbiAobGVuZ3RoIHByb21wdCkpCisgICAgICAg ICAgIChzdGlja3ktcHJvcHMgJyhmaWVsZCkpKQorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5 IDAgbGVuICdmaWVsZCAncHJvbXB0IHByb21wdCkKKyAgICAgICh3aGVuIGVzaGVsbC1oaWdo bGlnaHQtcHJvbXB0CisgICAgICAgIChhZGQtdGV4dC1wcm9wZXJ0aWVzCisgICAgICAgICAw IGxlbiAnKHJlYWQtb25seSB0IGZvbnQtbG9jay1mYWNlIGVzaGVsbC1wcm9tcHQpIHByb21w dCkKKyAgICAgICAgKHNldHEgc3RpY2t5LXByb3BzIGAocmVhZC1vbmx5IGZvbnQtbG9jay1m YWNlIC4gLHN0aWNreS1wcm9wcykpKQorICAgICAgKGVzaGVsbC0tYXBwZW5kLXRleHQtcHJv cGVydHkgMCBsZW4gJ2Zyb250LXN0aWNreSBzdGlja3ktcHJvcHMgcHJvbXB0KQorICAgICAg KGVzaGVsbC0tYXBwZW5kLXRleHQtcHJvcGVydHkgMCBsZW4gJ3JlYXItbm9uc3RpY2t5IHN0 aWNreS1wcm9wcyBwcm9tcHQpCiAgICAgICAoZXNoZWxsLWludGVyYWN0aXZlLWZpbHRlciBu aWwgcHJvbXB0KSkpCiAgIChydW4taG9va3MgJ2VzaGVsbC1hZnRlci1wcm9tcHQtaG9vaykp CiAKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lc2hlbGwvZW0tcHJvbXB0LXRlc3RzLmVsIGIv dGVzdC9saXNwL2VzaGVsbC9lbS1wcm9tcHQtdGVzdHMuZWwKaW5kZXggZmJhZGFkZTA2MWYu LjFjNmU4ZTAyMjkzIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvZXNoZWxsL2VtLXByb21wdC10 ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLXByb21wdC10ZXN0cy5lbApAQCAt NTcsOCArNTcsOCBAQCBlbS1wcm9tcHQtdGVzdC9maWVsZC1wcm9wZXJ0aWVzCiAgICAgICAg ICAgICAgICAncmVhZC1vbmx5IHQKICAgICAgICAgICAgICAgICdmaWVsZCAncHJvbXB0CiAg ICAgICAgICAgICAgICAnZm9udC1sb2NrLWZhY2UgJ2VzaGVsbC1wcm9tcHQKLSAgICAgICAg ICAgICAgICdmcm9udC1zdGlja3kgJyhyZWFkLW9ubHkgZmllbGQgZm9udC1sb2NrLWZhY2Up Ci0gICAgICAgICAgICAgICAncmVhci1ub25zdGlja3kgJyhyZWFkLW9ubHkgZmllbGQgZm9u dC1sb2NrLWZhY2UpKSkpCisgICAgICAgICAgICAgICAnZnJvbnQtc3RpY2t5ICcocmVhZC1v bmx5IGZvbnQtbG9jay1mYWNlIGZpZWxkKQorICAgICAgICAgICAgICAgJ3JlYXItbm9uc3Rp Y2t5ICcocmVhZC1vbmx5IGZvbnQtbG9jay1mYWNlIGZpZWxkKSkpKQogICAgICAoc2hvdWxk IChlcXVhbCBsYXN0LWlucHV0ICJlY2hvIGhlbGxvXG4iKSkKICAgICAgKHNob3VsZCAoZXF1 YWwtaW5jbHVkaW5nLXByb3BlcnRpZXMKICAgICAgICAgICAgICAgbGFzdC1vdXRwdXQKQEAg LTg4LDYgKzg4LDMzIEBAIGVtLXByb21wdC10ZXN0L2ZpZWxkLXByb3BlcnRpZXMvbm8taGln aGxpZ2h0CiAgICAgICAgICAgICAgICAgKGFwcGx5ICMncHJvcGVydGl6ZSAiaGVsbG9cbiIK ICAgICAgICAgICAgICAgICAgICAgICAgZXNoZWxsLWNvbW1hbmQtb3V0cHV0LXByb3BlcnRp ZXMpKSkpKSkpCiAKKyhlcnQtZGVmdGVzdCBlbS1wcm9tcHQtdGVzdC9maWVsZC1wcm9wZXJ0 aWVzL21lcmdlLXN0aWNraW5lc3MgKCkKKyAgIkNoZWNrIHRoYXQgc3RpY2tpbmVzcyBwcm9w ZXJ0aWVzIGFyZSBwcm9wZXJseSBtZXJnZWQgb24gRXNoZWxsIHByb21wdHMuIgorICAobGV0 ICgoZXNoZWxsLXByb21wdC1mdW5jdGlvbgorICAgICAgICAgKGxhbWJkYSAoKQorICAgICAg ICAgICAoY29uY2F0IChwcm9wZXJ0aXplIChlc2hlbGwvcHdkKSAnZnJvbnQtc3RpY2t5ICco ZnJvbnQpKQorICAgICAgICAgICAgICAgICAgIChwcm9wZXJ0aXplICIkICIgJ3JlYXItbm9u c3RpY2t5ICcocmVhcikpKSkpKQorICAgICh3aXRoLXRlbXAtZXNoZWxsCisgICAgIChlc2hl bGwtaW5zZXJ0LWNvbW1hbmQgImVjaG8gaGVsbG8iKQorICAgICAobGV0ICgobGFzdC1wcm9t cHQgKGZpZWxkLXN0cmluZyAoMS0gZXNoZWxsLWxhc3QtaW5wdXQtc3RhcnQpKSkpCisgICAg ICAgKHNob3VsZCAoZXF1YWwtaW5jbHVkaW5nLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAg ICBsYXN0LXByb21wdAorICAgICAgICAgICAgICAgIChjb25jYXQKKyAgICAgICAgICAgICAg ICAgKHByb3BlcnRpemUKKyAgICAgICAgICAgICAgICAgIChkaXJlY3RvcnktZmlsZS1uYW1l IGRlZmF1bHQtZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgJ3JlYWQtb25seSB0Cisg ICAgICAgICAgICAgICAgICAnZmllbGQgJ3Byb21wdAorICAgICAgICAgICAgICAgICAgJ2Zv bnQtbG9jay1mYWNlICdlc2hlbGwtcHJvbXB0CisgICAgICAgICAgICAgICAgICAnZnJvbnQt c3RpY2t5ICcoZnJvbnQgcmVhZC1vbmx5IGZvbnQtbG9jay1mYWNlIGZpZWxkKQorICAgICAg ICAgICAgICAgICAgJ3JlYXItbm9uc3RpY2t5ICcocmVhZC1vbmx5IGZvbnQtbG9jay1mYWNl IGZpZWxkKSkKKyAgICAgICAgICAgICAgICAgKHByb3BlcnRpemUKKyAgICAgICAgICAgICAg ICAgICIkICIKKyAgICAgICAgICAgICAgICAgICdyZWFkLW9ubHkgdAorICAgICAgICAgICAg ICAgICAgJ2ZpZWxkICdwcm9tcHQKKyAgICAgICAgICAgICAgICAgICdmb250LWxvY2stZmFj ZSAnZXNoZWxsLXByb21wdAorICAgICAgICAgICAgICAgICAgJ2Zyb250LXN0aWNreSAnKHJl YWQtb25seSBmb250LWxvY2stZmFjZSBmaWVsZCkKKyAgICAgICAgICAgICAgICAgICdyZWFy LW5vbnN0aWNreSAnKHJlYXIgcmVhZC1vbmx5IGZvbnQtbG9jay1mYWNlIGZpZWxkKSkpKSkp KSkpCisKIChlcnQtZGVmdGVzdCBlbS1wcm9tcHQtdGVzdC9hZnRlci1mYWlsdXJlICgpCiAg ICJDaGVjayB0aGF0IGN1cnJlbnQgcHJvbXB0IHNob3dzIHRoZSBleGl0IGNvZGUgb2YgdGhl IGxhc3QgZmFpbGVkIGNvbW1hbmQuIgogICAod2l0aC10ZW1wLWVzaGVsbApAQCAtMTA0LDgg KzEzMSw4IEBAIGVtLXByb21wdC10ZXN0L2FmdGVyLWZhaWx1cmUKICAgICAgICAgICAgICAg ICdyZWFkLW9ubHkgdAogICAgICAgICAgICAgICAgJ2ZpZWxkICdwcm9tcHQKICAgICAgICAg ICAgICAgICdmb250LWxvY2stZmFjZSAnZXNoZWxsLXByb21wdAotICAgICAgICAgICAgICAg J2Zyb250LXN0aWNreSAnKHJlYWQtb25seSBmaWVsZCBmb250LWxvY2stZmFjZSkKLSAgICAg ICAgICAgICAgICdyZWFyLW5vbnN0aWNreSAnKHJlYWQtb25seSBmaWVsZCBmb250LWxvY2st ZmFjZSkpKSkpKSkKKyAgICAgICAgICAgICAgICdmcm9udC1zdGlja3kgJyhyZWFkLW9ubHkg Zm9udC1sb2NrLWZhY2UgZmllbGQpCisgICAgICAgICAgICAgICAncmVhci1ub25zdGlja3kg JyhyZWFkLW9ubHkgZm9udC1sb2NrLWZhY2UgZmllbGQpKSkpKSkpCiAKIAwKIDs7IFByb21w dCBuYXZpZ2F0aW9uCi0tIAoyLjI1LjEKCg== --------------Oulhot80BMCd0DWGF6eyyK1S-- From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 03:52:36 2024 Received: (at 74230) by debbugs.gnu.org; 14 Nov 2024 08:52:36 +0000 Received: from localhost ([127.0.0.1]:44963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBVae-00027q-Br for submit@debbugs.gnu.org; Thu, 14 Nov 2024 03:52:36 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42094) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBVac-00027d-Rn for 74230@debbugs.gnu.org; Thu, 14 Nov 2024 03:52:35 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBVaX-0002sW-HU; Thu, 14 Nov 2024 03:52:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=wdAbCrH3rWvrQzRYHQrjIqWSAgE0Kb2/2EMDIdJfOBg=; b=CMhuYDT7QcOw SJeKXw61vY+vWOznEqJ0+jfXqvzkjlLt0zzkl6g5k/GBHIsV1lBzMX3TsnxfWQUZc09/FiNKCVXH7 O+qgz40GRV1Ncvv6IiIr/O+uoN8w2zxU1XO0cQNuMJNWpKpUGGoHSPGvKTFbhTrfS4DMwUX+BE9i8 NIhtV3hqXhciTlsrbd/v/eSB0xwMhhpDg9V5sQtaDlsHS9V1bAVqhjiNWb51jkMgHfMriSMxDoB65 yNtYxVwNc2qaYyiUhp4Gs0rkvLIyE4IdDzDoqHb7j1piV2Un6aIhNmOsfLXJ4JpizCRVE03JaeObd 0z7hWZBWmil1dBmqveExcg==; Date: Thu, 14 Nov 2024 10:52:21 +0200 Message-Id: <86v7wqjiyi.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: <42bd1d73-8faf-b12b-e3c3-06c814d395a4@gmail.com> (message from Jim Porter on Thu, 7 Nov 2024 10:16:16 -0800) Subject: Re: bug#74230: 30.0.92; eshell-emit-prompt clobbers text properties References: <42bd1d73-8faf-b12b-e3c3-06c814d395a4@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74230 Cc: ashton@wiersdorfmail.net, 74230@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 7 Nov 2024 10:16:16 -0800 > Cc: eliz@gnu.org > From: Jim Porter > > On 11/6/2024 10:21 AM, Ashton Wiersdorf wrote: > > In Emacs 29.4, the function did *not* overwrite the text properties of > > the prompt `rear-nonsticky (read-only)`. The new version overwrites the > > rear-nonsticky property so that it is only `(field)`. > > Thanks for noticing this. > > > If I set `eshell-highlight-prompt' to `t', then I get the read-only > > behavior that I want, but now I cannot get the pleasant component > > highlighting that `fancy-shell' is meant to provide. > > If you set the 'face' attribute instead of the 'font-lock-face' > attribute, you should get the highlighting you want (that's what I do) > while 'eshell-highlight-prompt' is non-nil. > > Here's a patch to fix this though so that we're more careful about not > clobbering stickiness properties. Eli, what do you think about this > patch? It fixes a regression from Emacs 29, but the diff is fairly large > for so late in the Emacs 30 cycle. Unfortunately, I can't think of a > better solution that doesn't just shuffle the bug around to a different > spot. On the plus side, this code already has regression tests, and it > was easy to add a new one for this case. > > Personally, I'd be ok with having this be a known bug (there's a > workaround for Emacs 30) and fixing it on master. But if you think this > change is ok for the release branch, I'd also be ok with installing > there; then people don't need to deal with the workaround. I agree, let's fix this on master. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 13:34:28 2024 Received: (at 74230-done) by debbugs.gnu.org; 14 Nov 2024 18:34:28 +0000 Received: from localhost ([127.0.0.1]:47148 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBefk-00059K-5F for submit@debbugs.gnu.org; Thu, 14 Nov 2024 13:34:28 -0500 Received: from mail-pl1-f174.google.com ([209.85.214.174]:58691) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBefi-000594-2W for 74230-done@debbugs.gnu.org; Thu, 14 Nov 2024 13:34:27 -0500 Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-20c9978a221so11399495ad.1 for <74230-done@debbugs.gnu.org>; Thu, 14 Nov 2024 10:34:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731609200; x=1732214000; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=x1CfSiTIWNgR2Nr1SGnbY9fk/AyJGMtbfYPIopeq0Ns=; b=ioS0VzTe4e5DjNWEPnlI6vin35tLiHrV1xVid3vnNJaf6SVEEsGpo4plyo8U2fIaCr zG+k+u4r7wDFVRrNSWTdr2yEBol6g23yB59vHgciTMHNOlp0bb78blugRLQO5O4lT+G2 KCei0e36+khvr54ZGWYSEbh8LMiwpTV0JgyOoQMLXb2ZyYQQbqt48e1g7jCYr7ZD+i8z bfuOQH4k4Z/ITQcFT1prI321uEnhvPGRg4Hf7MhA1y8VklC0NUcPDvUQIjQsTfnQpgcO mW1ixiX9PXoXoif+rIdAX3sgZ+bRADwW5PtHo66L04FhNgHagqfXEn9yZsAXYChvqUPY ESpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731609200; x=1732214000; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=x1CfSiTIWNgR2Nr1SGnbY9fk/AyJGMtbfYPIopeq0Ns=; b=YNHeKflGMSMHmV/9Y+weC6y2NtNA6ePd+fw7H9vwjYKoep5x5X/UDtyeIzVb7lx3yW BGW7qtruqtW1mtcY8CbZTlaf5UNcMXUQraUDBesIexUgYWkVx6vpx5ULIGx3cS/uxDa4 fWtdPiqStl+lfXxJ+GliUQJV8D2GjZnSGE48Nim94Dx0lwwhd10fXmE3oMS0BA4cPubW v4laYQQJbYDC4Ug90n8kYm0wjXYRVYFbMe59tdPuqUqwFfYNMyLOd6wBxdpkEcRsA3rE 82GmxkWw6hEgzRARwURQKxDYHBXhZug0PviJ7Pw/lsBGIeUCf+g4lq1gkyGEhEP+2NqO rxog== X-Forwarded-Encrypted: i=1; AJvYcCV75uDxo0/SX3YDJ9VDFCU++1Nb2XpTotPMwuQCR+20Narp7H3c7lomiXbJSzoHEepTVRwk8jXieVPL@debbugs.gnu.org X-Gm-Message-State: AOJu0YyBTiphY8uISU1st/xal4lkMuEf9Dm8M6BkYOhKfyJQXRSBwvFx OMYwfKMstrXNL0t+9aYl8DsrrXan0zdbVkciQGi3MGXzHbIGMiwnXIjj1g== X-Google-Smtp-Source: AGHT+IElXgg9e/qscuPEBY6EnwIMDzIQZzIUtSOsnox0EnBoeZ3jjsYhzijZoPJwM8D9nMqj4ci/jQ== X-Received: by 2002:a17:903:41ca:b0:20c:82ea:41bd with SMTP id d9443c01a7336-21183c92bf3mr338967825ad.18.1731609200151; Thu, 14 Nov 2024 10:33:20 -0800 (PST) Received: from [192.168.1.2] (syn-023-240-098-037.res.spectrum.com. [23.240.98.37]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-211c7d1e1b2sm13798495ad.218.2024.11.14.10.33.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 14 Nov 2024 10:33:19 -0800 (PST) Message-ID: <7d40c8e5-64c1-a028-9b2c-f1a82bec469c@gmail.com> Date: Thu, 14 Nov 2024 10:33:18 -0800 MIME-Version: 1.0 Subject: Re: bug#74230: 30.0.92; eshell-emit-prompt clobbers text properties To: Eli Zaretskii References: <42bd1d73-8faf-b12b-e3c3-06c814d395a4@gmail.com> <86v7wqjiyi.fsf@gnu.org> Content-Language: en-US From: Jim Porter In-Reply-To: <86v7wqjiyi.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 74230-done Cc: 74230-done@debbugs.gnu.org, ashton@wiersdorfmail.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/14/2024 12:52 AM, Eli Zaretskii wrote: >> Date: Thu, 7 Nov 2024 10:16:16 -0800 >> Cc: eliz@gnu.org >> From: Jim Porter >> >> Personally, I'd be ok with having this be a known bug (there's a >> workaround for Emacs 30) and fixing it on master. But if you think this >> change is ok for the release branch, I'd also be ok with installing >> there; then people don't need to deal with the workaround. > > I agree, let's fix this on master. Sounds good to me. I've therefore merged my patch to the master branch as df288d2e414, so closing this bug. If we think this issue is important enough to fix for Emacs 30, I suppose we could consider backporting my patch for the (hypothetical) 30.2 release after 30.1 is tagged. Then users could get the fix a bit faster, and we wouldn't be adding last-minute changes to 30.1. I don't have a strong opinion on whether to do this or not though. From unknown Thu Aug 14 12:25:36 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 13 Dec 2024 12:24:09 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator