From unknown Sun Jul 27 08:51:05 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#74511 <74511@debbugs.gnu.org> To: bug#74511 <74511@debbugs.gnu.org> Subject: Status: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' Reply-To: bug#74511 <74511@debbugs.gnu.org> Date: Sun, 27 Jul 2025 15:51:05 +0000 retitle 74511 31.0.50; `dictionary-search-interface' overrides the user's c= ustomization of `dictionary-read-word-function' reassign 74511 emacs submitter 74511 Steven Allen severity 74511 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 24 13:56:26 2024 Received: (at submit) by debbugs.gnu.org; 24 Nov 2024 18:56:26 +0000 Received: from localhost ([127.0.0.1]:36046 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFHmS-0005JQ-DE for submit@debbugs.gnu.org; Sun, 24 Nov 2024 13:56:26 -0500 Received: from lists.gnu.org ([209.51.188.17]:59406) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFHmP-0005JG-1B for submit@debbugs.gnu.org; Sun, 24 Nov 2024 13:56: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 1tFHmN-0005wr-0m for bug-gnu-emacs@gnu.org; Sun, 24 Nov 2024 13:56:19 -0500 Received: from fout-a6-smtp.messagingengine.com ([103.168.172.149]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tFHmH-0008Eb-NY for bug-gnu-emacs@gnu.org; Sun, 24 Nov 2024 13:56:18 -0500 Received: from phl-compute-12.internal (phl-compute-12.phl.internal [10.202.2.52]) by mailfout.phl.internal (Postfix) with ESMTP id 639C313801E2 for ; Sun, 24 Nov 2024 13:56:11 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-12.internal (MEProxy); Sun, 24 Nov 2024 13:56:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm3; t=1732474571; x=1732560971; bh=0DKVc1OhMO3ZKH+OU0TlerfoRNySxKMR +vm3hN1j8AU=; b=n/nyIcD+4TloWid3Gnd8t4R2arPW5MuzjQ0kSn5zmXrBdVCQ ZdSv+okdZZMFk39iqVwqK+zQqPgEeo9g6snIISWNMUmVnGOyTl1VlvS26soYBbyk tyVuUnSFN8bGELyVldwx4gO5xjea+Z7G8bwIYb8yd5bcbXrUii/KjlVzF2j6kf+O c3aPagucCYDOM7snGxz2dDCu6z4pIHNPMxAAGrz0t7E7vPOmlPF5z+LBAi8lBI4g I35/4v1JMyp7DdGXI/4WUcfNgG81M/ficyz1iRuqR/ddG9wxzbS2jxw1dVAoQ5y2 FfwBtZ0Qs+F9pJ3AHP6mVnB1rPpyjbh0J72tkw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc: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=fm1; t=1732474571; x= 1732560971; bh=0DKVc1OhMO3ZKH+OU0TlerfoRNySxKMR+vm3hN1j8AU=; b=J Vuz6+l7sxJ6CbehxlQj+SI6JaH5SQNBX4nt6cTFY/kipkpZ4l9h+7OLVJmusXTsg 6ku+HTO0IKK5/ezMlBJrnj2xOjxjdQH+BNIEVf8SVP8GPU66yk0W3PPBZWjyn27M +1TByA9jjmZcyn/OTp08mvx8sIXBjMo1fHBJSiXBks0s2a4jc2qBi1PbN1ghbYZa LxggEoCa/RxG8wasxXQe2+fanriy1BOjhVeOSIjq8SmcEn8tOHpZuoEy02ERIu4X w48XOc4fP1V0x9Xp+N/2IpS8POfMxRpEUIH9ESxEqldDnOwxHDpE9auT6p/IvK7S CFMJesYLoH3zW0LvgYmBQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrgeefgdduudejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffuff fkgggtsehttdertddttddtnecuhfhrohhmpefuthgvvhgvnhcutehllhgvnhcuoehsthgv vhgvnhesshhtvggsrghlihgvnhdrtghomheqnecuggftrfgrthhtvghrnhepfeektddutd ethfegkeettdeggeejgedvudethefhtefhveelfeevhefhhfdvffejnecuvehluhhsthgv rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshhtvghvvghnsehsthgvsg grlhhivghnrdgtohhmpdhnsggprhgtphhtthhopedupdhmohguvgepshhmthhpohhuthdp rhgtphhtthhopegsuhhgqdhgnhhuqdgvmhgrtghssehgnhhurdhorhhg X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Sun, 24 Nov 2024 13:56:10 -0500 (EST) From: Steven Allen To: bug-gnu-emacs@gnu.org Subject: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' X-Debbugs-Cc: Date: Sun, 24 Nov 2024 10:56:08 -0800 Message-ID: <878qt8pik7.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=103.168.172.149; envelope-from=steven@stebalien.com; helo=fout-a6-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) If the user customizes `dictionary-read-word-function' then loads the dictionary package, the value of `dictionary-read-word-function' will be overridden when `dictionary-search-interface' is loaded. To reproduce: 1. Run emacs with `emacs -Q`. 2. Open a scratch buffer and evaluate the following: (setopt dictionary-read-word-function 'dictionary-completing-read-word) (require 'dictionary) (message "%S" dictionary-read-word-function) I'd expect `dictionary-read-word-function' to be `dictionary-completing-read-word' but instead it gets reset back to the default, `dictionary-read-dictionary-default'. I can work around this by calling `setopt' after loading the `dictionary' package, but ideally that wouldn't be necessary. In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.18.2) of 2024-11-24 built on Laptop Repository revision: cf3ea44eb56364190ea9f2b905f74902c49de416 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101014 System Description: Arch Linux Configured using: 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games --with-modules --without-m17n-flt --without-selinux --without-pop --without-gconf --disable-gc-mark-trace --enable-link-time-optimization --with-native-compilation=yes --with-xinput2 --with-x-toolkit=no --without-toolkit-scroll-bars --without-xft --without-xaw3d --without-gsettings --with-cairo-xcb --with-sound=no --with-tree-sitter --without-gpm --without-compress-install '--program-transform-name=s/\([ec]tags\)/\1.emacs/' 'CFLAGS=-march=native -mtune=native -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fomit-frame-pointer -fno-math-errno -fno-trapping-math -fno-math-errno -fno-trapping-math -flto=auto' 'LDFLAGS=-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: windmove-mode: t rainbow-mode: t rainbow-delimiters-mode: t notmuch-bookmarks-mode: t global-atomic-chrome-edit-mode: t iwd-agent-mode: t i3bar-mode: t ednc-mode: t exwm-xsettings-mode: t exwm-background-mode: t exwm-systemtray-mode: t exwm-randr-mode: t ligature-mode: t ws-butler-mode: t auto-compile-on-load-mode: t auto-compile-on-save-mode: t auto-compile-mode: t save-place-mode: t savehist-mode: t openwith-mode: t org-super-agenda-mode: t global-org-modern-mode: t goto-address-prog-mode: t eat-eshell-mode: t bug-reference-prog-mode: t magit-todos-mode: t global-git-commit-mode: t magit-auto-revert-mode: t server-mode: t recentf-mode: t global-treesit-auto-mode: t editorconfig-mode: t yas-global-mode: t yas-minor-mode: t async-bytecomp-package-mode: t sudo-edit-indicator-mode: t global-auto-revert-mode: t vertico-mode: t corfu-popupinfo-mode: t global-corfu-mode: t corfu-mode: t minibuffer-depth-indicate-mode: t minibuffer-electric-default-mode: t isearch-mb-mode: t pixel-scroll-precision-mode: t global-hl-todo-mode: t hl-todo-mode: t all-the-icons-completion-mode: t marginalia-mode: t visual-replace-global-mode: t global-jinx-mode: t evil-goggles-mode: t global-evil-surround-mode: t evil-surround-mode: t global-evil-collection-unimpaired-mode: t evil-collection-unimpaired-mode: t evil-mode: t evil-local-mode: t desktop-environment-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t prettify-symbols-mode: t tab-bar-history-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t window-divider-mode: t minibuffer-regexp-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/steb/.cache/emacs/elpa/protobuf-mode-20240823.1417/protobuf-mode hides /usr/share/emacs/site-lisp/protobuf-mode /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch hides /usr/share/emacs/site-lisp/notmuch /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-wash hides /usr/share/emacs/site-lisp/notmuch-wash /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-tree hides /usr/share/emacs/site-lisp/notmuch-tree /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-tag hides /usr/share/emacs/site-lisp/notmuch-tag /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-show hides /usr/share/emacs/site-lisp/notmuch-show /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-query hides /usr/share/emacs/site-lisp/notmuch-query /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-print hides /usr/share/emacs/site-lisp/notmuch-print /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-parser hides /usr/share/emacs/site-lisp/notmuch-parser /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-mua hides /usr/share/emacs/site-lisp/notmuch-mua /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-message hides /usr/share/emacs/site-lisp/notmuch-message /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-maildir-fcc hides /usr/share/emacs/site-lisp/notmuch-maildir-fcc /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-lib hides /usr/share/emacs/site-lisp/notmuch-lib /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-jump hides /usr/share/emacs/site-lisp/notmuch-jump /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-hello hides /usr/share/emacs/site-lisp/notmuch-hello /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-draft hides /usr/share/emacs/site-lisp/notmuch-draft /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-crypto hides /usr/share/emacs/site-lisp/notmuch-crypto /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-compat hides /usr/share/emacs/site-lisp/notmuch-compat /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-company hides /usr/share/emacs/site-lisp/notmuch-company /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/notmuch-address hides /usr/share/emacs/site-lisp/notmuch-address /home/steb/.cache/emacs/elpa/notmuch-20240816.2039/coolj hides /usr/share/emacs/site-lisp/coolj /home/steb/.cache/emacs/elpa/filechooser-0.2.1/filechooser hides /usr/share/emacs/site-lisp/filechooser /home/steb/.cache/emacs/elpa/filechooser-0.2.1/filechooser-autoloads hides /usr/share/emacs/site-lisp/filechooser-autoloads /home/steb/.cache/emacs/elpa/transient-20241122.1928/transient hides /usr/share/emacs/31.0.50/lisp/transient /home/steb/.cache/emacs/elpa/modus-themes-4.6.0/theme-loaddefs hides /usr/share/emacs/31.0.50/lisp/theme-loaddefs /home/steb/.cache/emacs/elpa/org-9.7.16/ox hides /usr/share/emacs/31.0.50/lisp/org/ox /home/steb/.cache/emacs/elpa/org-9.7.16/ox-texinfo hides /usr/share/emacs/31.0.50/lisp/org/ox-texinfo /home/steb/.cache/emacs/elpa/org-9.7.16/ox-publish hides /usr/share/emacs/31.0.50/lisp/org/ox-publish /home/steb/.cache/emacs/elpa/org-9.7.16/ox-org hides /usr/share/emacs/31.0.50/lisp/org/ox-org /home/steb/.cache/emacs/elpa/org-9.7.16/ox-odt hides /usr/share/emacs/31.0.50/lisp/org/ox-odt /home/steb/.cache/emacs/elpa/org-9.7.16/ox-md hides /usr/share/emacs/31.0.50/lisp/org/ox-md /home/steb/.cache/emacs/elpa/org-9.7.16/ox-man hides /usr/share/emacs/31.0.50/lisp/org/ox-man /home/steb/.cache/emacs/elpa/org-9.7.16/ox-latex hides /usr/share/emacs/31.0.50/lisp/org/ox-latex /home/steb/.cache/emacs/elpa/org-9.7.16/ox-koma-letter hides /usr/share/emacs/31.0.50/lisp/org/ox-koma-letter /home/steb/.cache/emacs/elpa/org-9.7.16/ox-icalendar hides /usr/share/emacs/31.0.50/lisp/org/ox-icalendar /home/steb/.cache/emacs/elpa/org-9.7.16/ox-html hides /usr/share/emacs/31.0.50/lisp/org/ox-html /home/steb/.cache/emacs/elpa/org-9.7.16/ox-beamer hides /usr/share/emacs/31.0.50/lisp/org/ox-beamer /home/steb/.cache/emacs/elpa/org-9.7.16/ox-ascii hides /usr/share/emacs/31.0.50/lisp/org/ox-ascii /home/steb/.cache/emacs/elpa/org-9.7.16/org hides /usr/share/emacs/31.0.50/lisp/org/org /home/steb/.cache/emacs/elpa/org-9.7.16/org-version hides /usr/share/emacs/31.0.50/lisp/org/org-version /home/steb/.cache/emacs/elpa/org-9.7.16/org-timer hides /usr/share/emacs/31.0.50/lisp/org/org-timer /home/steb/.cache/emacs/elpa/org-9.7.16/org-tempo hides /usr/share/emacs/31.0.50/lisp/org/org-tempo /home/steb/.cache/emacs/elpa/org-9.7.16/org-table hides /usr/share/emacs/31.0.50/lisp/org/org-table /home/steb/.cache/emacs/elpa/org-9.7.16/org-src hides /usr/share/emacs/31.0.50/lisp/org/org-src /home/steb/.cache/emacs/elpa/org-9.7.16/org-refile hides /usr/share/emacs/31.0.50/lisp/org/org-refile /home/steb/.cache/emacs/elpa/org-9.7.16/org-protocol hides /usr/share/emacs/31.0.50/lisp/org/org-protocol /home/steb/.cache/emacs/elpa/org-9.7.16/org-plot hides /usr/share/emacs/31.0.50/lisp/org/org-plot /home/steb/.cache/emacs/elpa/org-9.7.16/org-persist hides /usr/share/emacs/31.0.50/lisp/org/org-persist /home/steb/.cache/emacs/elpa/org-9.7.16/org-pcomplete hides /usr/share/emacs/31.0.50/lisp/org/org-pcomplete /home/steb/.cache/emacs/elpa/org-9.7.16/org-num hides /usr/share/emacs/31.0.50/lisp/org/org-num /home/steb/.cache/emacs/elpa/org-9.7.16/org-mouse hides /usr/share/emacs/31.0.50/lisp/org/org-mouse /home/steb/.cache/emacs/elpa/org-9.7.16/org-mobile hides /usr/share/emacs/31.0.50/lisp/org/org-mobile /home/steb/.cache/emacs/elpa/org-9.7.16/org-macs hides /usr/share/emacs/31.0.50/lisp/org/org-macs /home/steb/.cache/emacs/elpa/org-9.7.16/org-macro hides /usr/share/emacs/31.0.50/lisp/org/org-macro /home/steb/.cache/emacs/elpa/org-9.7.16/org-loaddefs hides /usr/share/emacs/31.0.50/lisp/org/org-loaddefs /home/steb/.cache/emacs/elpa/org-9.7.16/org-list hides /usr/share/emacs/31.0.50/lisp/org/org-list /home/steb/.cache/emacs/elpa/org-9.7.16/org-lint hides /usr/share/emacs/31.0.50/lisp/org/org-lint /home/steb/.cache/emacs/elpa/org-9.7.16/org-keys hides /usr/share/emacs/31.0.50/lisp/org/org-keys /home/steb/.cache/emacs/elpa/org-9.7.16/org-inlinetask hides /usr/share/emacs/31.0.50/lisp/org/org-inlinetask /home/steb/.cache/emacs/elpa/org-9.7.16/org-indent hides /usr/share/emacs/31.0.50/lisp/org/org-indent /home/steb/.cache/emacs/elpa/org-9.7.16/org-id hides /usr/share/emacs/31.0.50/lisp/org/org-id /home/steb/.cache/emacs/elpa/org-9.7.16/org-habit hides /usr/share/emacs/31.0.50/lisp/org/org-habit /home/steb/.cache/emacs/elpa/org-9.7.16/org-goto hides /usr/share/emacs/31.0.50/lisp/org/org-goto /home/steb/.cache/emacs/elpa/org-9.7.16/org-footnote hides /usr/share/emacs/31.0.50/lisp/org/org-footnote /home/steb/.cache/emacs/elpa/org-9.7.16/org-fold hides /usr/share/emacs/31.0.50/lisp/org/org-fold /home/steb/.cache/emacs/elpa/org-9.7.16/org-fold-core hides /usr/share/emacs/31.0.50/lisp/org/org-fold-core /home/steb/.cache/emacs/elpa/org-9.7.16/org-feed hides /usr/share/emacs/31.0.50/lisp/org/org-feed /home/steb/.cache/emacs/elpa/org-9.7.16/org-faces hides /usr/share/emacs/31.0.50/lisp/org/org-faces /home/steb/.cache/emacs/elpa/org-9.7.16/org-entities hides /usr/share/emacs/31.0.50/lisp/org/org-entities /home/steb/.cache/emacs/elpa/org-9.7.16/org-element hides /usr/share/emacs/31.0.50/lisp/org/org-element /home/steb/.cache/emacs/elpa/org-9.7.16/org-element-ast hides /usr/share/emacs/31.0.50/lisp/org/org-element-ast /home/steb/.cache/emacs/elpa/org-9.7.16/org-duration hides /usr/share/emacs/31.0.50/lisp/org/org-duration /home/steb/.cache/emacs/elpa/org-9.7.16/org-datetree hides /usr/share/emacs/31.0.50/lisp/org/org-datetree /home/steb/.cache/emacs/elpa/org-9.7.16/org-cycle hides /usr/share/emacs/31.0.50/lisp/org/org-cycle /home/steb/.cache/emacs/elpa/org-9.7.16/org-ctags hides /usr/share/emacs/31.0.50/lisp/org/org-ctags /home/steb/.cache/emacs/elpa/org-9.7.16/org-crypt hides /usr/share/emacs/31.0.50/lisp/org/org-crypt /home/steb/.cache/emacs/elpa/org-9.7.16/org-compat hides /usr/share/emacs/31.0.50/lisp/org/org-compat /home/steb/.cache/emacs/elpa/org-9.7.16/org-colview hides /usr/share/emacs/31.0.50/lisp/org/org-colview /home/steb/.cache/emacs/elpa/org-9.7.16/org-clock hides /usr/share/emacs/31.0.50/lisp/org/org-clock /home/steb/.cache/emacs/elpa/org-9.7.16/org-capture hides /usr/share/emacs/31.0.50/lisp/org/org-capture /home/steb/.cache/emacs/elpa/org-9.7.16/org-attach hides /usr/share/emacs/31.0.50/lisp/org/org-attach /home/steb/.cache/emacs/elpa/org-9.7.16/org-attach-git hides /usr/share/emacs/31.0.50/lisp/org/org-attach-git /home/steb/.cache/emacs/elpa/org-9.7.16/org-archive hides /usr/share/emacs/31.0.50/lisp/org/org-archive /home/steb/.cache/emacs/elpa/org-9.7.16/org-agenda hides /usr/share/emacs/31.0.50/lisp/org/org-agenda /home/steb/.cache/emacs/elpa/org-9.7.16/ol hides /usr/share/emacs/31.0.50/lisp/org/ol /home/steb/.cache/emacs/elpa/org-9.7.16/ol-w3m hides /usr/share/emacs/31.0.50/lisp/org/ol-w3m /home/steb/.cache/emacs/elpa/org-9.7.16/ol-rmail hides /usr/share/emacs/31.0.50/lisp/org/ol-rmail /home/steb/.cache/emacs/elpa/org-9.7.16/ol-mhe hides /usr/share/emacs/31.0.50/lisp/org/ol-mhe /home/steb/.cache/emacs/elpa/org-9.7.16/ol-man hides /usr/share/emacs/31.0.50/lisp/org/ol-man /home/steb/.cache/emacs/elpa/org-9.7.16/ol-irc hides /usr/share/emacs/31.0.50/lisp/org/ol-irc /home/steb/.cache/emacs/elpa/org-9.7.16/ol-info hides /usr/share/emacs/31.0.50/lisp/org/ol-info /home/steb/.cache/emacs/elpa/org-9.7.16/ol-gnus hides /usr/share/emacs/31.0.50/lisp/org/ol-gnus /home/steb/.cache/emacs/elpa/org-9.7.16/ol-eww hides /usr/share/emacs/31.0.50/lisp/org/ol-eww /home/steb/.cache/emacs/elpa/org-9.7.16/ol-eshell hides /usr/share/emacs/31.0.50/lisp/org/ol-eshell /home/steb/.cache/emacs/elpa/org-9.7.16/ol-doi hides /usr/share/emacs/31.0.50/lisp/org/ol-doi /home/steb/.cache/emacs/elpa/org-9.7.16/ol-docview hides /usr/share/emacs/31.0.50/lisp/org/ol-docview /home/steb/.cache/emacs/elpa/org-9.7.16/ol-bibtex hides /usr/share/emacs/31.0.50/lisp/org/ol-bibtex /home/steb/.cache/emacs/elpa/org-9.7.16/ol-bbdb hides /usr/share/emacs/31.0.50/lisp/org/ol-bbdb /home/steb/.cache/emacs/elpa/org-9.7.16/oc hides /usr/share/emacs/31.0.50/lisp/org/oc /home/steb/.cache/emacs/elpa/org-9.7.16/oc-natbib hides /usr/share/emacs/31.0.50/lisp/org/oc-natbib /home/steb/.cache/emacs/elpa/org-9.7.16/oc-csl hides /usr/share/emacs/31.0.50/lisp/org/oc-csl /home/steb/.cache/emacs/elpa/org-9.7.16/oc-bibtex hides /usr/share/emacs/31.0.50/lisp/org/oc-bibtex /home/steb/.cache/emacs/elpa/org-9.7.16/oc-biblatex hides /usr/share/emacs/31.0.50/lisp/org/oc-biblatex /home/steb/.cache/emacs/elpa/org-9.7.16/oc-basic hides /usr/share/emacs/31.0.50/lisp/org/oc-basic /home/steb/.cache/emacs/elpa/org-9.7.16/ob hides /usr/share/emacs/31.0.50/lisp/org/ob /home/steb/.cache/emacs/elpa/org-9.7.16/ob-tangle hides /usr/share/emacs/31.0.50/lisp/org/ob-tangle /home/steb/.cache/emacs/elpa/org-9.7.16/ob-table hides /usr/share/emacs/31.0.50/lisp/org/ob-table /home/steb/.cache/emacs/elpa/org-9.7.16/ob-sqlite hides /usr/share/emacs/31.0.50/lisp/org/ob-sqlite /home/steb/.cache/emacs/elpa/org-9.7.16/ob-sql hides /usr/share/emacs/31.0.50/lisp/org/ob-sql /home/steb/.cache/emacs/elpa/org-9.7.16/ob-shell hides /usr/share/emacs/31.0.50/lisp/org/ob-shell /home/steb/.cache/emacs/elpa/org-9.7.16/ob-sed hides /usr/share/emacs/31.0.50/lisp/org/ob-sed /home/steb/.cache/emacs/elpa/org-9.7.16/ob-screen hides /usr/share/emacs/31.0.50/lisp/org/ob-screen /home/steb/.cache/emacs/elpa/org-9.7.16/ob-scheme hides /usr/share/emacs/31.0.50/lisp/org/ob-scheme /home/steb/.cache/emacs/elpa/org-9.7.16/ob-sass hides /usr/share/emacs/31.0.50/lisp/org/ob-sass /home/steb/.cache/emacs/elpa/org-9.7.16/ob-ruby hides /usr/share/emacs/31.0.50/lisp/org/ob-ruby /home/steb/.cache/emacs/elpa/org-9.7.16/ob-ref hides /usr/share/emacs/31.0.50/lisp/org/ob-ref /home/steb/.cache/emacs/elpa/org-9.7.16/ob-python hides /usr/share/emacs/31.0.50/lisp/org/ob-python /home/steb/.cache/emacs/elpa/org-9.7.16/ob-processing hides /usr/share/emacs/31.0.50/lisp/org/ob-processing /home/steb/.cache/emacs/elpa/org-9.7.16/ob-plantuml hides /usr/share/emacs/31.0.50/lisp/org/ob-plantuml /home/steb/.cache/emacs/elpa/org-9.7.16/ob-perl hides /usr/share/emacs/31.0.50/lisp/org/ob-perl /home/steb/.cache/emacs/elpa/org-9.7.16/ob-org hides /usr/share/emacs/31.0.50/lisp/org/ob-org /home/steb/.cache/emacs/elpa/org-9.7.16/ob-octave hides /usr/share/emacs/31.0.50/lisp/org/ob-octave /home/steb/.cache/emacs/elpa/org-9.7.16/ob-ocaml hides /usr/share/emacs/31.0.50/lisp/org/ob-ocaml /home/steb/.cache/emacs/elpa/org-9.7.16/ob-maxima hides /usr/share/emacs/31.0.50/lisp/org/ob-maxima /home/steb/.cache/emacs/elpa/org-9.7.16/ob-matlab hides /usr/share/emacs/31.0.50/lisp/org/ob-matlab /home/steb/.cache/emacs/elpa/org-9.7.16/ob-makefile hides /usr/share/emacs/31.0.50/lisp/org/ob-makefile /home/steb/.cache/emacs/elpa/org-9.7.16/ob-lua hides /usr/share/emacs/31.0.50/lisp/org/ob-lua /home/steb/.cache/emacs/elpa/org-9.7.16/ob-lob hides /usr/share/emacs/31.0.50/lisp/org/ob-lob /home/steb/.cache/emacs/elpa/org-9.7.16/ob-lisp hides /usr/share/emacs/31.0.50/lisp/org/ob-lisp /home/steb/.cache/emacs/elpa/org-9.7.16/ob-lilypond hides /usr/share/emacs/31.0.50/lisp/org/ob-lilypond /home/steb/.cache/emacs/elpa/org-9.7.16/ob-latex hides /usr/share/emacs/31.0.50/lisp/org/ob-latex /home/steb/.cache/emacs/elpa/org-9.7.16/ob-julia hides /usr/share/emacs/31.0.50/lisp/org/ob-julia /home/steb/.cache/emacs/elpa/org-9.7.16/ob-js hides /usr/share/emacs/31.0.50/lisp/org/ob-js /home/steb/.cache/emacs/elpa/org-9.7.16/ob-java hides /usr/share/emacs/31.0.50/lisp/org/ob-java /home/steb/.cache/emacs/elpa/org-9.7.16/ob-haskell hides /usr/share/emacs/31.0.50/lisp/org/ob-haskell /home/steb/.cache/emacs/elpa/org-9.7.16/ob-groovy hides /usr/share/emacs/31.0.50/lisp/org/ob-groovy /home/steb/.cache/emacs/elpa/org-9.7.16/ob-gnuplot hides /usr/share/emacs/31.0.50/lisp/org/ob-gnuplot /home/steb/.cache/emacs/elpa/org-9.7.16/ob-fortran hides /usr/share/emacs/31.0.50/lisp/org/ob-fortran /home/steb/.cache/emacs/elpa/org-9.7.16/ob-forth hides /usr/share/emacs/31.0.50/lisp/org/ob-forth /home/steb/.cache/emacs/elpa/org-9.7.16/ob-exp hides /usr/share/emacs/31.0.50/lisp/org/ob-exp /home/steb/.cache/emacs/elpa/org-9.7.16/ob-eval hides /usr/share/emacs/31.0.50/lisp/org/ob-eval /home/steb/.cache/emacs/elpa/org-9.7.16/ob-eshell hides /usr/share/emacs/31.0.50/lisp/org/ob-eshell /home/steb/.cache/emacs/elpa/org-9.7.16/ob-emacs-lisp hides /usr/share/emacs/31.0.50/lisp/org/ob-emacs-lisp /home/steb/.cache/emacs/elpa/org-9.7.16/ob-dot hides /usr/share/emacs/31.0.50/lisp/org/ob-dot /home/steb/.cache/emacs/elpa/org-9.7.16/ob-ditaa hides /usr/share/emacs/31.0.50/lisp/org/ob-ditaa /home/steb/.cache/emacs/elpa/org-9.7.16/ob-css hides /usr/share/emacs/31.0.50/lisp/org/ob-css /home/steb/.cache/emacs/elpa/org-9.7.16/ob-core hides /usr/share/emacs/31.0.50/lisp/org/ob-core /home/steb/.cache/emacs/elpa/org-9.7.16/ob-comint hides /usr/share/emacs/31.0.50/lisp/org/ob-comint /home/steb/.cache/emacs/elpa/org-9.7.16/ob-clojure hides /usr/share/emacs/31.0.50/lisp/org/ob-clojure /home/steb/.cache/emacs/elpa/org-9.7.16/ob-calc hides /usr/share/emacs/31.0.50/lisp/org/ob-calc /home/steb/.cache/emacs/elpa/org-9.7.16/ob-awk hides /usr/share/emacs/31.0.50/lisp/org/ob-awk /home/steb/.cache/emacs/elpa/org-9.7.16/ob-R hides /usr/share/emacs/31.0.50/lisp/org/ob-R /home/steb/.cache/emacs/elpa/org-9.7.16/ob-C hides /usr/share/emacs/31.0.50/lisp/org/ob-C Features: (shadow sort mail-extr misearch multi-isearch emacsbug bash-completion buffer-move consult-org network-stream evil-collection-dictionary dictionary dictionary-connection consult-xref etags fileloop tabify info-colors evil-collection-helpful helpful cc-langs trace cl-print evil-collection-edebug edebug info-look evil-collection-elisp-refs elisp-refs yaml-ts-mode windmove help-fns radix-tree tramp-cmds comint-mime vtable mathjax c++-ts-mode c-ts-mode conf-mode js cc-mode cc-fonts cc-guess cc-menus cc-cmds flymake-ruff dired-k all-the-icons-dired dired-filter dired-hacks-utils dired-aux dired-x image-file image-converter go-ts-mode checkdoc package-lint-flymake package-lint evil-collection-finder finder lisp-mnt rainbow-mode vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs evil-collection-log-view log-view emacsql-sqlite-builtin sqlite rainbow-delimiters vc rust-ts-mode c-ts-common eshell-syntax-highlighting em-elecslash em-glob em-extpipe em-basic em-alias textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check shr pixel-fill kinsoku url-file mule-util vertico-repeat app-launcher evil-collection-vc-git vc-git vc-dispatcher evil-collection-consult consult magit-bookmark org-bookmark-heading notmuch-bookmarks evil-collection-bookmark bookmark pinentry evil-collection-atomic-chrome atomic-chrome websocket bindat iwd i3bar ednc filechooser dbus exwm-xsettings xcb-xsettings exwm-background exwm-systemtray xcb-systemtray xcb-xembed exwm-randr xcb-randr exwm exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug cus-start posframe visual-wrap face-remap visual-fill-column ligature evil-org corg org-appear ws-butler oc-basic bibtex ol-man ol-info ol-docview evil-collection-doc-view doc-view jka-compr evil-collection-image image-mode exif auto-compile show-font saveplace tramp-cache time-stamp savehist ready-player openwith org-super-agenda ts ht org-habit org-crypt org-protocol ox-typst oc-typst ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar evil-org-agenda org-agenda ox-html table ox-ascii ox-publish ox org-attach org-element org-persist org-id org-refile org-element-ast inline avl-tree ob-http ob-http-mode org-modern ob-dot ob-latex ob-python evil-collection-python python ob-gnuplot ob-calc calc-store calc-trail calc-ext evil-collection-calc calc calc-loaddefs calc-macs ob-shell evil-collection-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src evil-collection-sh-script sh-script smie executable ob-comint org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs org-compat org-version org-macs notmuch-addr evil-collection-notmuch notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser notmuch-wash coolj goto-addr icalendar diary-lib diary-loaddefs evil-collection-calendar cal-menu calendar cal-loaddefs notmuch-tag notmuch-lib notmuch-compat mm-view mml-smime smime dig eshell-prompt-extras em-dirs em-ls em-prompt em-hist em-unix em-pred esh-mode esh-var evil-collection-eat eat evil-collection-term term disp-table ehelp eshell esh-cmd generator esh-ext esh-proc esh-opt esh-io esh-arg esh-module esh-module-loaddefs esh-util forge-search 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 glab forge-github ghub-graphql treepy gsexp ghub url-http url-gw nsm url-auth gnutls forge-notify forge-revnote forge-pullreq forge-issue forge-topic yaml eieio-custom bug-reference forge-post evil-collection-markdown-mode markdown-mode edit-indirect evil-collection-outline noutline outline forge-repo forge forge-core forge-db closql emacsql-sqlite-common emacsql-sqlite emacsql emacsql-compiler eieio-base evil-collection-magit-todos magit-todos pcre2el rxt advice re-builder evil-collection-grep grep evil-collection-magit magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull 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 evil-collection-magit-repos magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode git-commit evil-collection-log-edit log-edit message sendmail yank-media puny evil-collection-dired dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 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 evil-collection-with-editor with-editor server magit-mode transient benchmark magit-git magit-base evil-collection-magit-section magit-section cursor-sensor crm tramp-sh recentf tree-widget treesit-auto evil-collection-eglot eglot external-completion jsonrpc evil-collection-xref xref evil-collection-flymake flymake diff diff-mode track-changes evil-collection-ert ert ewoc evil-collection-debug debug backtrace evil-collection-compile compile text-property-search evil-collection-imenu imenu editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch yasnippet async-bytecomp async sudo-edit tramp trampver tramp-integration files-x tramp-message tramp-compat shell pcomplete evil-collection-comint comint ansi-osc parse-time iso8601 time-date format-spec ansi-color tramp-loaddefs autorevert filenotify project vertico corfu-popupinfo evil-collection-corfu corfu orderless mb-depth minibuf-eldef isearch-mb pixel-scroll cua-base hl-todo all-the-icons-completion all-the-icons all-the-icons-faces all-the-icons-data-material-icons all-the-icons-data-fluentui-system-icons all-the-icons-data-fontawesome-4 all-the-icons-data-weather-icons all-the-icons-data-vscode-codicons all-the-icons-data-octicons all-the-icons-data-mfixx all-the-icons-data-file-icons all-the-icons-data-devopicons all-the-icons-data-alltheicons svg dom xml marginalia let-alist modus-vivendi-tritanopia-theme modus-vivendi-deuteranopia-theme modus-vivendi-tinted-theme modus-vivendi-theme modus-operandi-tritanopia-theme modus-operandi-deuteranopia-theme modus-operandi-tinted-theme modus-operandi-theme modus-themes visual-replace ispell jinx evil-goggles pulse color evil-textobj-tree-sitter evil-textobj-tree-sitter-thing-at-point evil-textobj-tree-sitter-core treesit evil-args evil-surround evil-collection-unimpaired evil-collection-tabulated-list evil-collection-tab-bar evil-collection-simple evil-collection-replace evil-collection-process-menu evil-collection-package-menu evil-collection-kmacro evil-collection-info evil-collection-indent evil-collection-help evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom evil-collection-buff-menu evil-collection annalist 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-run evil-common thingatpt rect evil-vars ring edmacro kmacro general easy-mmode pcase f dash s mode-local find-func no-littering compat use-package-ensure finder-inf notmuch-version info all-the-icons-completion-autoloads all-the-icons-dired-autoloads all-the-icons-ibuffer-autoloads all-the-icons-autoloads app-launcher-autoloads aria2-autoloads atomic-chrome-autoloads auto-compile-autoloads bash-completion-autoloads bluetooth-autoloads buffer-move-autoloads calibre-autoloads cape-autoloads casual-autoloads clojure-mode-autoloads comint-mime-autoloads consult-eglot-autoloads consult-project-extra-autoloads corfu-autoloads corg-autoloads csv-mode-autoloads dape-autoloads devdocs-autoloads dired-filter-autoloads dired-hacks-utils-autoloads dired-k-autoloads discomfort-autoloads debase-autoloads disk-usage-autoloads eat-autoloads edit-indirect-autoloads ednc-autoloads eff-autoloads ellama-autoloads embark-consult-autoloads consult-autoloads embark-autoloads ement-autoloads eshell-prompt-extras-autoloads eshell-syntax-highlighting-autoloads evil-args-autoloads evil-collection-autoloads annalist-autoloads evil-goggles-autoloads evil-nerd-commenter-autoloads evil-org-autoloads evil-surround-autoloads evil-textobj-tree-sitter-autoloads evm-mode-autoloads expand-region-autoloads exwm-autoloads filechooser-autoloads flymake-ruff-autoloads forge-search-autoloads general-autoloads git-link-autoloads git-modes-autoloads gnuplot-autoloads graphviz-dot-mode-autoloads helpful-autoloads elisp-refs-autoloads htmlize-autoloads i3bar-autoloads igist-autoloads info-colors-autoloads isearch-mb-autoloads iwd-autoloads iwindow-autoloads jinx-autoloads journalctl-autoloads kotlin-mode-autoloads kubernetes-evil-autoloads evil-autoloads goto-chg-autoloads kubernetes-autoloads ligature-autoloads link-hint-autoloads avy-autoloads llm-autoloads magit-popup-autoloads magit-todos-autoloads hl-todo-autoloads f-autoloads marginalia-autoloads mastodon-autoloads mathjax-autoloads meow-autoloads microdata-autoloads modus-themes-autoloads named-pipe-autoloads nftables-mode-autoloads no-littering-autoloads notmuch-addr-autoloads notmuch-transient-autoloads nov-autoloads esxml-autoloads kv-autoloads ob-http-autoloads ol-notmuch-autoloads notmuch-autoloads openwith-autoloads orderless-autoloads org-appear-autoloads org-bookmark-heading-autoloads org-download-autoloads async-autoloads org-modern-autoloads org-super-agenda-autoloads ht-autoloads orgit-forge-autoloads orgit-autoloads forge-autoloads markdown-mode-autoloads magit-autoloads ghub-autoloads closql-autoloads emacsql-autoloads ox-typst-autoloads org-autoloads package-lint-flymake-autoloads package-lint-autoloads password-store-autoloads pcre2el-autoloads pdf-tools-autoloads persist-autoloads pinentry-autoloads pkgbuild-mode-autoloads playerctl-autoloads plz-event-source-autoloads plz-media-type-autoloads plz-autoloads posframe-autoloads proced-narrow-autoloads protobuf-mode-autoloads pulseaudio-control-autoloads qrencode-autoloads rainbow-delimiters-autoloads rainbow-mode-autoloads ready-player-autoloads request-autoloads rg-autoloads rmsbolt-autoloads rust-playground-autoloads show-font-autoloads solidity-mode-autoloads spinner-autoloads ssh-config-mode-autoloads sudo-edit-autoloads svg-lib-autoloads syncthing-autoloads systemctl-autoloads systemd-autoloads tablist-autoloads taxy-magit-section-autoloads taxy-autoloads magit-section-autoloads tmr-autoloads tp-autoloads transient-autoloads treepy-autoloads treesit-auto-autoloads ts-autoloads s-autoloads dash-autoloads tzc-autoloads udev-mode-autoloads vala-mode-autoloads cc-styles cc-align cc-engine cc-vars cc-defs varuga-autoloads vertico-autoloads vimrc-mode-autoloads visual-fill-column-autoloads visual-replace-autoloads vundo-autoloads wat-ts-mode-autoloads watch-autoloads web-mode-autoloads websocket-autoloads wgrep-autoloads whisper-autoloads with-editor-autoloads ws-butler-autoloads xelb-autoloads yaml-autoloads yasnippet-autoloads use-package-core comp comp-cstr cl-extra help-mode comp-common warnings rx xdg package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting font-render-setting cairo xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 2198029 1447228) (symbols 48 99946 0) (strings 32 470053 86149) (string-bytes 1 14455863) (vectors 16 219687) (vector-slots 8 3071945 706738) (floats 8 1125 7046) (intervals 56 23155 7350) (buffers 992 51)) From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 24 14:04:18 2024 Received: (at 74511) by debbugs.gnu.org; 24 Nov 2024 19:04:18 +0000 Received: from localhost ([127.0.0.1]:36058 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFHu6-0005f3-15 for submit@debbugs.gnu.org; Sun, 24 Nov 2024 14:04:18 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43102) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFHu3-0005ep-R4 for 74511@debbugs.gnu.org; Sun, 24 Nov 2024 14:04:16 -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 1tFHtx-0000c4-Cc; Sun, 24 Nov 2024 14:04:09 -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=g7Ua5+J/P/gEB+PkQce9G8rcZWYHjTzhStjqfneD+Jc=; b=r4bdEoJKAME/ KsrZUzX/4PrXC58YDDFizEP0/1iWLw0VTasfBn2yZ990WI5pVafihX0JUOveBsDzaOR/7pYRE2CyJ Xj1LvDntUVDF4h8wlmJL7Z2PFu/e+Td0ip7WJmhMKzghwLfwsRTWIO7u/AEjL/EO1Z34c/QCo0Jqd eGTcgXdbiiKEBfTF4FybC3VsrzQ1Sdwn2og9gUsLYSB21QU9fUpMnBNHJONKrLf6CgIiE4elucJAH TpAXGBrVQFugEjacExmkTmTuE8k8BDby2eKxiKD1ZasPvhQrexYCBytbabj6w/VDfDHLMw/N2F2pK 7bT9jsqxL7tWo10LEDHzrw==; Date: Sun, 24 Nov 2024 21:03:50 +0200 Message-Id: <86sergihd5.fsf@gnu.org> From: Eli Zaretskii To: Steven Allen In-Reply-To: <878qt8pik7.fsf@stebalien.com> (bug-gnu-emacs@gnu.org) Subject: Re: bug#74511: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' References: <878qt8pik7.fsf@stebalien.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74511 Cc: 74511@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: Sun, 24 Nov 2024 10:56:08 -0800 > From: Steven Allen via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > > If the user customizes `dictionary-read-word-function' then loads the > dictionary package, the value of `dictionary-read-word-function' will be > overridden when `dictionary-search-interface' is loaded. To reproduce: > > 1. Run emacs with `emacs -Q`. > 2. Open a scratch buffer and evaluate the following: > > (setopt dictionary-read-word-function 'dictionary-completing-read-word) > (require 'dictionary) > (message "%S" dictionary-read-word-function) > > I'd expect `dictionary-read-word-function' to be > `dictionary-completing-read-word' but instead it gets reset back to the > default, `dictionary-read-dictionary-default'. I can work around this by > calling `setopt' after loading the `dictionary' package, but ideally > that wouldn't be necessary. You are supposed to customize dictionary-search-interface if you want this mode of operation. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 24 15:36:10 2024 Received: (at 74511) by debbugs.gnu.org; 24 Nov 2024 20:36:10 +0000 Received: from localhost ([127.0.0.1]:36247 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFJKz-0001t6-Rw for submit@debbugs.gnu.org; Sun, 24 Nov 2024 15:36:10 -0500 Received: from fout-a7-smtp.messagingengine.com ([103.168.172.150]:55711) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFJKx-0001sq-Gt for 74511@debbugs.gnu.org; Sun, 24 Nov 2024 15:36:08 -0500 Received: from phl-compute-09.internal (phl-compute-09.phl.internal [10.202.2.49]) by mailfout.phl.internal (Postfix) with ESMTP id 6DB3213800F0; Sun, 24 Nov 2024 15:36:02 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-09.internal (MEProxy); Sun, 24 Nov 2024 15:36:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm3; t=1732480562; x= 1732566962; bh=M+mdUe9FIAXFhKrIvti26hEgX2nr8/EZaySnwppLV04=; b=s w7ju7wUXsSvBueOSC0jptFf/HNwSIOm1NzmGc2Te8IN0GbSjvl7vHGtlnn6En9tQ Hpyk/350ktsW4D2GWTQhMrJg/uyy5XXn1AxHec1cTxIrU/2ZbJY1IoM7DNl9izpa eZR3JRmSeejCVE+qkEcFs+tiUI4t+FAJgA+kb2j/xGamAmhB+T6mTTJSak1O5oRJ arGneeokBwa/YQg5QsYDBrx6A3J4kn+qqsWkDiB062S3ZGho/4Qaf4Ki+AH3f1n0 JO7fCWgpdttZsgnAxGUlVqMCaE5Anf9Z0RFcGASBEvl/uKjWnBy7qvRkH/Ljqtpk ilexYS3znnne96QzJ7zmA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1732480562; x=1732566962; bh=M+mdUe9FIAXFhKrIvti26hEgX2nr8/EZayS nwppLV04=; b=GTwv1V5xcs0UzBcH6lko0aWvn82J6ZM1IJuSZ3wmienU7w19Gwm SC2HtLrekPmC1MGda2y08ErkOYou9x5IOizXCzjM8hUn2lzvujHgZ67VpzCxhThb l/Nt/3JNQTeEHZpoE/LMeaLHfHATTFao8rNxlq6cslQhNzv8TpyI7fMtTge53jTD lIYfuglaErqwJrn+SOWSpILc2oMoseXdx+lR2aZeU6gD4lRamIEGfbtUNXfoZ3jO EjNtcmCb07pkryu0+HtYdt9s0jhzQwf3jGCYpXUrWVIGTLikHTMCdIGV3nO1E/EA EQVfZo6QbiYq+0fSgkhIx+Ca46jOeXBl6oA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrgeefgddufeekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhephffvvefujghffffkgggtsehttdertddttddtnecu hfhrohhmpefuthgvvhgvnhcutehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnh drtghomheqnecuggftrfgrthhtvghrnhepvdekheekgeelheehgefgudelkeethffhgfeu ffetkeegtddvfeduuddttdejjedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg hmpehmrghilhhfrhhomhepshhtvghvvghnsehsthgvsggrlhhivghnrdgtohhmpdhnsggp rhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegvlhhiiiesgh hnuhdrohhrghdprhgtphhtthhopeejgeehudduseguvggssghughhsrdhgnhhurdhorhhg X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 24 Nov 2024 15:36:01 -0500 (EST) From: Steven Allen To: Eli Zaretskii Subject: Re: bug#74511: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' In-Reply-To: <86sergihd5.fsf@gnu.org> References: <878qt8pik7.fsf@stebalien.com> <86sergihd5.fsf@gnu.org> Date: Sun, 24 Nov 2024 12:36:00 -0800 Message-ID: <875xocpdxr.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 74511 Cc: 74511@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: >> Date: Sun, 24 Nov 2024 10:56:08 -0800 >> From: Steven Allen via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" >> >> >> If the user customizes `dictionary-read-word-function' then loads the >> dictionary package, the value of `dictionary-read-word-function' will be >> overridden when `dictionary-search-interface' is loaded. To reproduce: >> >> 1. Run emacs with `emacs -Q`. >> 2. Open a scratch buffer and evaluate the following: >> >> (setopt dictionary-read-word-function 'dictionary-completing-read-word) >> (require 'dictionary) >> (message "%S" dictionary-read-word-function) >> >> I'd expect `dictionary-read-word-function' to be >> `dictionary-completing-read-word' but instead it gets reset back to the >> default, `dictionary-read-dictionary-default'. I can work around this by >> calling `setopt' after loading the `dictionary' package, but ideally >> that wouldn't be necessary. > > You are supposed to customize dictionary-search-interface if you want > this mode of operation. In addition to dictionary-search-interface, there are three separately customizable variables: - dictionary-display-definition-function - dictionary-read-word-function - dictionary-read-dictionary-function I'd expect dictionary-search-interface to override the defaults for these variables, but I wouldn't expect it to completely clobber any user customizations of said variables. If these variables cannot be customized, I'd expect them to be "defvar" not "defcustom". Although that would be rather unfortunate because, while I want to enable minibuffer completion for words/dictionaries, I'd also like to use the real dictionary mode (not the help buffer). Adding ":initialize 'custom-initialize-changed" to dictionary-search-interface would make it possible to specify either dictionary-search-interface or any of the other variables (but not both at the same time). From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 25 07:05:32 2024 Received: (at 74511) by debbugs.gnu.org; 25 Nov 2024 12:05:33 +0000 Received: from localhost ([127.0.0.1]:38197 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFXqO-000443-GU for submit@debbugs.gnu.org; Mon, 25 Nov 2024 07:05:32 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44252) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFXqM-00043l-8v for 74511@debbugs.gnu.org; Mon, 25 Nov 2024 07:05:30 -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 1tFXqD-0008OI-Bh; Mon, 25 Nov 2024 07:05:23 -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=xRJFrl/jzl+Q5m+DV877iES+tMZ4TsDaFwwykfxHpU0=; b=ZKAB8uFDoFFE mnnOpQr+2RDKNG+MKsfYhJ9lrt/86Jg7ntdM0KCE31Y98Aohg0okl3TqsYi6prCMff+FuKOVl7DQn oIP7IzIllgdSx8nA+LYIlrXobxx+j9ADAgnJPm2A0MsqUWWhNdjoNodJFmHFD/gk24hP19SuGpR7O KHM8Cpir2oFXDGaFaHP1RuGXZoFK+0cJ6AiHWCUacqZRI9rzEAS4V7Qf8Q13kHk7Bi4scMl+M5mIZ ad6hQr9E2gHcWHpJZjKBIpR54snV/08XktrDg/TNIJgMIxf6Fr3Cu+Eruw6x8Fc1enfzJyNq9qQlD F3QO0PHnJqBbD5R/AN+Zpg==; Date: Mon, 25 Nov 2024 14:04:47 +0200 Message-Id: <86plmjiko0.fsf@gnu.org> From: Eli Zaretskii To: Steven Allen , Eshel Yaron In-Reply-To: <875xocpdxr.fsf@stebalien.com> (message from Steven Allen on Sun, 24 Nov 2024 12:36:00 -0800) Subject: Re: bug#74511: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' References: <878qt8pik7.fsf@stebalien.com> <86sergihd5.fsf@gnu.org> <875xocpdxr.fsf@stebalien.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74511 Cc: 74511@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 (---) > From: Steven Allen > Cc: 74511@debbugs.gnu.org > Date: Sun, 24 Nov 2024 12:36:00 -0800 > > Eli Zaretskii writes: > > >> Date: Sun, 24 Nov 2024 10:56:08 -0800 > >> From: Steven Allen via "Bug reports for GNU Emacs, > >> the Swiss army knife of text editors" > >> > >> > >> If the user customizes `dictionary-read-word-function' then loads the > >> dictionary package, the value of `dictionary-read-word-function' will be > >> overridden when `dictionary-search-interface' is loaded. To reproduce: > >> > >> 1. Run emacs with `emacs -Q`. > >> 2. Open a scratch buffer and evaluate the following: > >> > >> (setopt dictionary-read-word-function 'dictionary-completing-read-word) > >> (require 'dictionary) > >> (message "%S" dictionary-read-word-function) > >> > >> I'd expect `dictionary-read-word-function' to be > >> `dictionary-completing-read-word' but instead it gets reset back to the > >> default, `dictionary-read-dictionary-default'. I can work around this by > >> calling `setopt' after loading the `dictionary' package, but ideally > >> that wouldn't be necessary. > > > > You are supposed to customize dictionary-search-interface if you want > > this mode of operation. > > In addition to dictionary-search-interface, there are three separately > customizable variables: > > - dictionary-display-definition-function > - dictionary-read-word-function > - dictionary-read-dictionary-function > > I'd expect dictionary-search-interface to override the defaults for > these variables, but I wouldn't expect it to completely clobber any user > customizations of said variables. > > If these variables cannot be customized, I'd expect them to be "defvar" > not "defcustom". Although that would be rather unfortunate because, > while I want to enable minibuffer completion for words/dictionaries, I'd > also like to use the real dictionary mode (not the help buffer). > > Adding ":initialize 'custom-initialize-changed" to > dictionary-search-interface would make it possible to specify either > dictionary-search-interface or any of the other variables (but not both > at the same time). Eshel, would you please look into this? IMO, we should at least improve the documentation to clarify these subtleties. Bonus points for allowing users to customize the other options without clobbering them when the package is loaded or dictionary-search-interface is customized. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 25 13:17:10 2024 Received: (at 74511) by debbugs.gnu.org; 25 Nov 2024 18:17:10 +0000 Received: from localhost ([127.0.0.1]:40491 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFde2-00054Q-4L for submit@debbugs.gnu.org; Mon, 25 Nov 2024 13:17:10 -0500 Received: from mail.eshelyaron.com ([107.175.124.16]:37762 helo=eshelyaron.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFddz-00054E-3g for 74511@debbugs.gnu.org; Mon, 25 Nov 2024 13:17:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com; s=mail; t=1732558626; bh=u7APQbfW7Fld1HKpqYyAtDgCdMzbsdw+OqFaepVZecs=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=gI9ZmgY/mF0DLrwb1G1tlt1FQ41uS/5++7SMefPwW0puNg1j70EXPgLfdoMXYqpND s7eSnKbb5sj/GnEbeDumbqz9juPz56c6o5/WsRPRwMDAMVPqqernqsWToVbPUHvhCB AuprQ0PrXeDd0zz/WXpYrJLt7zJ30MV9R8POTLhxGJSh6ROhXeiQOfnhxtE5U/8pqy 1lksWZX5+xO/jNCjUeOGN4maWptV2+h3UFapeRC4ZbwUYAbrbghSdtLPlyiIPonnTX J+EgfZ/K0sjNpCNhJb7f1VttMivRIpxgzc51tDZeiIjGuDWn52RHpIVnYBH7xBntuq 6KfA21B/OEb+w== From: Eshel Yaron To: Eli Zaretskii Subject: Re: bug#74511: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' In-Reply-To: <86plmjiko0.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 25 Nov 2024 14:04:47 +0200") References: <878qt8pik7.fsf@stebalien.com> <86sergihd5.fsf@gnu.org> <875xocpdxr.fsf@stebalien.com> <86plmjiko0.fsf@gnu.org> Date: Mon, 25 Nov 2024 19:17:04 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 74511 Cc: Steven Allen , 74511@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, Eli Zaretskii writes: >> From: Steven Allen >> Cc: 74511@debbugs.gnu.org >> Date: Sun, 24 Nov 2024 12:36:00 -0800 >> >> Eli Zaretskii writes: >> >> >> Date: Sun, 24 Nov 2024 10:56:08 -0800 >> >> From: Steven Allen via "Bug reports for GNU Emacs, >> >> the Swiss army knife of text editors" >> >> >> >> >> >> If the user customizes `dictionary-read-word-function' then loads the >> >> dictionary package, the value of `dictionary-read-word-function' will be >> >> overridden when `dictionary-search-interface' is loaded. To reproduce: >> >> >> >> 1. Run emacs with `emacs -Q`. >> >> 2. Open a scratch buffer and evaluate the following: >> >> >> >> (setopt dictionary-read-word-function 'dictionary-completing-read-word) >> >> (require 'dictionary) >> >> (message "%S" dictionary-read-word-function) >> >> >> >> I'd expect `dictionary-read-word-function' to be >> >> `dictionary-completing-read-word' but instead it gets reset back to the >> >> default, `dictionary-read-dictionary-default'. I can work around this by >> >> calling `setopt' after loading the `dictionary' package, but ideally >> >> that wouldn't be necessary. >> > >> > You are supposed to customize dictionary-search-interface if you want >> > this mode of operation. >> >> In addition to dictionary-search-interface, there are three separately >> customizable variables: >> >> - dictionary-display-definition-function >> - dictionary-read-word-function >> - dictionary-read-dictionary-function >> >> I'd expect dictionary-search-interface to override the defaults for >> these variables, but I wouldn't expect it to completely clobber any user >> customizations of said variables. >> >> If these variables cannot be customized, I'd expect them to be "defvar" >> not "defcustom". Although that would be rather unfortunate because, >> while I want to enable minibuffer completion for words/dictionaries, I'd >> also like to use the real dictionary mode (not the help buffer). >> >> Adding ":initialize 'custom-initialize-changed" to >> dictionary-search-interface would make it possible to specify either >> dictionary-search-interface or any of the other variables (but not both >> at the same time). > > Eshel, would you please look into this? IMO, we should at least > improve the documentation to clarify these subtleties. Bonus points > for allowing users to customize the other options without clobbering > them when the package is loaded or dictionary-search-interface is > customized. Thank you Steven, for reporting this issue, and Eli, for pinging me. The patch below tries to do both: - it adds a few words to the docstring of dictionary-search-interface which explain that this option can only be meaningfully set after loading dictionary.el, and - it avoids clobbering existing settings for the other options during initialization. It still overrides existing settings for the other options if you set dictionary-search-interface after dictionary.el, because that's the intended behavior when customizing this option. WDYT? diff --git a/lisp/net/dictionary.el b/lisp/net/dictionary.el index 58c2e9771ba..0f9daa2d07d 100644 --- a/lisp/net/dictionary.el +++ b/lisp/net/dictionary.el @@ -301,21 +301,30 @@ dictionary-search-interface When set to `help', `dictionary-search' displays definitions in a *Help* buffer, and provides completion for word selection based on dictionary matches. -Otherwise, `dictionary-search' displays definitions in a *Dictionary* buffer." +Otherwise, `dictionary-search' displays definitions in a *Dictionary* buffer. + +This option only takes affect when you customize it after loading the +`dictionary' library, so you may want to use `with-eval-after-load' to +set it in your Emacs initialization file." :type '(choice (const :tag "Dictionary buffer" nil) (const :tag "Help buffer" help)) :set (lambda (symbol value) - (let ((vals (pcase value - ('help '(dictionary-display-definition-in-help-buffer - dictionary-completing-read-word - dictionary-completing-read-dictionary)) - (_ '(nil - dictionary-read-word-default - dictionary-read-dictionary-default))))) - (seq-setq (dictionary-display-definition-function - dictionary-read-word-function - dictionary-read-dictionary-function) - vals)) + ;; If the symbol of this option is not bound, then we are + ;; initializing it, and the user hasn't set it in init.el. + ;; Avoid overriding individual customization of other options + ;; in this case. + (when (boundp symbol) + (let ((vals (pcase value + ('help '(dictionary-display-definition-in-help-buffer + dictionary-completing-read-word + dictionary-completing-read-dictionary)) + (_ '(nil + dictionary-read-word-default + dictionary-read-dictionary-default))))) + (seq-setq (dictionary-display-definition-function + dictionary-read-word-function + dictionary-read-dictionary-function) + vals))) (set-default-toplevel-value symbol value)) :version "30.1") From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 25 14:27:53 2024 Received: (at 74511) by debbugs.gnu.org; 25 Nov 2024 19:27:53 +0000 Received: from localhost ([127.0.0.1]:40872 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFekS-0008ML-DY for submit@debbugs.gnu.org; Mon, 25 Nov 2024 14:27:53 -0500 Received: from fout-a5-smtp.messagingengine.com ([103.168.172.148]:59407) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFekM-0008Lp-VC for 74511@debbugs.gnu.org; Mon, 25 Nov 2024 14:27:47 -0500 Received: from phl-compute-05.internal (phl-compute-05.phl.internal [10.202.2.45]) by mailfout.phl.internal (Postfix) with ESMTP id CE0531380650; Mon, 25 Nov 2024 14:27:41 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-05.internal (MEProxy); Mon, 25 Nov 2024 14:27:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm3; t=1732562861; x= 1732649261; bh=/hKgBHOgHHeNBSdM0KJY509GR9dvxTfIhZo2gU56f0A=; b=H NojuB0nbHL2tNYcrXBPrmwPFZQaQiVkMAl3SEcHq/VouiRuHUx+F44UPiQBGfHxg J4iNOBOvhQcljOLFLKPvhwa1TzdjfjDoZ8QppcogDR3tdquTfi8SgVnaWaZPm6kF iA3oIYE/RteCV4mpvifwT24NW7fscri4WYkliKYYyrFuHnu3HSB7vlhw0kQhQumN Z0L9+VJQIDOdx0M7EgVqbh0avhKoEouGfjlluhma1XzFFjI0Zi4evWIlJzdEZ/kW 3WOHzzoVLqMuJf2mfj9fj2p40xmg8nbrjwVV9viclEW046kavmg0be+Zl+nrhCoN ad28lI5xPm/K4sdA5syAQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1732562861; x=1732649261; bh=/hKgBHOgHHeNBSdM0KJY509GR9dvxTfIhZo 2gU56f0A=; b=aRv5lEjL6fMlXhL694NZOWjibXjQync109hd6S2PsHeO0O4orpO Xm8gv1gkREYFzYUSnLqNgi4juxX+BdzyYn5CsccUpo6e7/4Vlfa+fVHnJ0vHCJ8J h6imWJTw8/qsVxNIY1SeSBcABgYlOaJXasukb2mZf7e6YbZs/pRkpn8UDqsuQp+y v5gveWp8EdpT+Hmn34cmiL4IbYDWoV+2LIHpdhhggRDmIDR3mS/gYYZLaUYDs9iw hdIehC1K/6uC5b3J2EJw9TDNVtYbivjZGwS37dmIFhFyDvOCAb1hKFzjTO6BeVgp gfDX04xAqXBOLzjd4A2jlRUzmTDc5BmWhKA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrgeehgdduvdefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhephffvvefujghffffkgggtsehttdertddttddtnecu hfhrohhmpefuthgvvhgvnhcutehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnh drtghomheqnecuggftrfgrthhtvghrnhepvdekheekgeelheehgefgudelkeethffhgfeu ffetkeegtddvfeduuddttdejjedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg hmpehmrghilhhfrhhomhepshhtvghvvghnsehsthgvsggrlhhivghnrdgtohhmpdhnsggp rhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmvgesvghshh gvlhihrghrohhnrdgtohhmpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhrtghp thhtohepjeegheduudesuggvsggsuhhgshdrghhnuhdrohhrgh X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 25 Nov 2024 14:27:40 -0500 (EST) From: Steven Allen To: Eshel Yaron , Eli Zaretskii Subject: Re: bug#74511: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' In-Reply-To: References: <878qt8pik7.fsf@stebalien.com> <86sergihd5.fsf@gnu.org> <875xocpdxr.fsf@stebalien.com> <86plmjiko0.fsf@gnu.org> Date: Mon, 25 Nov 2024 11:27:39 -0800 Message-ID: <878qt73yhg.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 74511 Cc: 74511@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eshel Yaron writes: > Hi, > > Eli Zaretskii writes: > >>> From: Steven Allen >>> Cc: 74511@debbugs.gnu.org >>> Date: Sun, 24 Nov 2024 12:36:00 -0800 >>> >>> Eli Zaretskii writes: >>> >>> >> Date: Sun, 24 Nov 2024 10:56:08 -0800 >>> >> From: Steven Allen via "Bug reports for GNU Emacs, >>> >> the Swiss army knife of text editors" >>> >> >>> >> >>> >> If the user customizes `dictionary-read-word-function' then loads the >>> >> dictionary package, the value of `dictionary-read-word-function' will be >>> >> overridden when `dictionary-search-interface' is loaded. To reproduce: >>> >> >>> >> 1. Run emacs with `emacs -Q`. >>> >> 2. Open a scratch buffer and evaluate the following: >>> >> >>> >> (setopt dictionary-read-word-function 'dictionary-completing-read-word) >>> >> (require 'dictionary) >>> >> (message "%S" dictionary-read-word-function) >>> >> >>> >> I'd expect `dictionary-read-word-function' to be >>> >> `dictionary-completing-read-word' but instead it gets reset back to the >>> >> default, `dictionary-read-dictionary-default'. I can work around this by >>> >> calling `setopt' after loading the `dictionary' package, but ideally >>> >> that wouldn't be necessary. >>> > >>> > You are supposed to customize dictionary-search-interface if you want >>> > this mode of operation. >>> >>> In addition to dictionary-search-interface, there are three separately >>> customizable variables: >>> >>> - dictionary-display-definition-function >>> - dictionary-read-word-function >>> - dictionary-read-dictionary-function >>> >>> I'd expect dictionary-search-interface to override the defaults for >>> these variables, but I wouldn't expect it to completely clobber any user >>> customizations of said variables. >>> >>> If these variables cannot be customized, I'd expect them to be "defvar" >>> not "defcustom". Although that would be rather unfortunate because, >>> while I want to enable minibuffer completion for words/dictionaries, I'd >>> also like to use the real dictionary mode (not the help buffer). >>> >>> Adding ":initialize 'custom-initialize-changed" to >>> dictionary-search-interface would make it possible to specify either >>> dictionary-search-interface or any of the other variables (but not both >>> at the same time). >> >> Eshel, would you please look into this? IMO, we should at least >> improve the documentation to clarify these subtleties. Bonus points >> for allowing users to customize the other options without clobbering >> them when the package is loaded or dictionary-search-interface is >> customized. > > Thank you Steven, for reporting this issue, and Eli, for pinging me. > > The patch below tries to do both: > > - it adds a few words to the docstring of dictionary-search-interface > which explain that this option can only be meaningfully set after > loading dictionary.el, and > - it avoids clobbering existing settings for the other options during > initialization. It still overrides existing settings for the other > options if you set dictionary-search-interface after dictionary.el, > because that's the intended behavior when customizing this option. > > WDYT? > Is adding the following to `dictionary-search-interface' not sufficient? :initialize 'custom-initialize-changed That would apply the `dictionary-search-interface' setting if and only if specified by the user while still alowing the user to, e.g., use the customize interface. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 25 16:28:04 2024 Received: (at 74511) by debbugs.gnu.org; 25 Nov 2024 21:28:04 +0000 Received: from localhost ([127.0.0.1]:41861 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFgcl-0005j6-Q4 for submit@debbugs.gnu.org; Mon, 25 Nov 2024 16:28:04 -0500 Received: from mail.eshelyaron.com ([107.175.124.16]:37306 helo=eshelyaron.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFgcj-0005iR-1q for 74511@debbugs.gnu.org; Mon, 25 Nov 2024 16:28:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com; s=mail; t=1732570080; bh=xwByXogHbY4aT2Pd7hAAtN05sWKNSyJwCWvs64N+OI0=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=S6qJg8UrmUbvwOxI/8bqld/fiDpz3BPQYTPBicVNahYJ/4B35+KH2oFy5Y98W2yFX gcXKuGPI71arhuy5Wmz6T/MyEPDrCQDctDBZujTqQnhQxDbAHupqJ8OIx6IoOSakfm 1ywAOHzFeA70pMr/hdJJYfSRLikNDwBi2vasvX/DZkXRQXXIuL8FfqzyaXIP9DIgcJ 5XRGGAiH+bGKvp3+/vvYQSZ5B8SvNcqpc2L4vu9D9RGfn3v9QtMiwAdxLLh8qPMlVx B+G74ahAkTJGM8iR0ZwiE4cJMyzrkc3WlVihWzDkxsdD8WkjKmfxlpUl1PbtDWcSDM Yd3qZXygcR/RQ== From: Eshel Yaron To: Steven Allen Subject: Re: bug#74511: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' In-Reply-To: <878qt73yhg.fsf@stebalien.com> (Steven Allen's message of "Mon, 25 Nov 2024 11:27:39 -0800") References: <878qt8pik7.fsf@stebalien.com> <86sergihd5.fsf@gnu.org> <875xocpdxr.fsf@stebalien.com> <86plmjiko0.fsf@gnu.org> <878qt73yhg.fsf@stebalien.com> Date: Mon, 25 Nov 2024 22:27:57 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 74511 Cc: Eli Zaretskii , 74511@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Steven Allen writes: > Eshel Yaron writes: > >> >> The patch below tries to do both: >> >> - it adds a few words to the docstring of dictionary-search-interface >> which explain that this option can only be meaningfully set after >> loading dictionary.el, and >> - it avoids clobbering existing settings for the other options during >> initialization. It still overrides existing settings for the other >> options if you set dictionary-search-interface after dictionary.el, >> because that's the intended behavior when customizing this option. >> >> WDYT? >> > > Is adding the following to `dictionary-search-interface' not sufficient? > > :initialize 'custom-initialize-changed > > That would apply the `dictionary-search-interface' setting if and only > if specified by the user while still alowing the user to, e.g., use the > customize interface. Ah yes, seems even better than my patch since it also makes it possible to set dictionary-search-interface before loading dictionary.el, thanks! Eli, does this seem OK for the release branch? diff --git a/lisp/net/dictionary.el b/lisp/net/dictionary.el index 58c2e9771ba..42fb8c57b40 100644 --- a/lisp/net/dictionary.el +++ b/lisp/net/dictionary.el @@ -317,6 +317,7 @@ dictionary-search-interface dictionary-read-dictionary-function) vals)) (set-default-toplevel-value symbol value)) + :initialize #'custom-initialize-changed :version "30.1") (defface dictionary-word-definition-face From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 26 07:59:44 2024 Received: (at 74511) by debbugs.gnu.org; 26 Nov 2024 12:59:44 +0000 Received: from localhost ([127.0.0.1]:48073 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFvAO-0000uM-68 for submit@debbugs.gnu.org; Tue, 26 Nov 2024 07:59:44 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48932) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tFvAL-0000u8-AM for 74511@debbugs.gnu.org; Tue, 26 Nov 2024 07:59:42 -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 1tFvAF-0007sJ-Lz; Tue, 26 Nov 2024 07:59:35 -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=JUUHJMhec/uXnb2OF3jTykgN+OC1rFguaWPC8rsz+pM=; b=WQh11UGpyRpz xXYf1z17LSiKPslKm3zyHRmeaP88nRLbo9CaA1ZOkrzpvowt6qBJn2E/jEUupYN3a5G3YCrj9kkka eefgF7xth/bBVvI3+FeKYBBX2K+TCyL52IYG5I98QirHJFHFaBOvtrJw0YRYZHltSSUZCz5i8G8dM F26FY/wZ3isepMkBi1/zk58EiK38whVpaRbXvIYw9jbgKp3e7+Y/Gizf1+nCBa5V26N53CFzHfgao yYcBel6ng56sm/NH2p6tQJyNnAACrcd+JMhYeqrXmlj7FVibUQTxQgESbfy5Vli7FQKfV5P+eOV6u s72mbZ22o8zLIjnxZWa+1Q==; Date: Tue, 26 Nov 2024 14:59:11 +0200 Message-Id: <86r06ygnhc.fsf@gnu.org> From: Eli Zaretskii To: Eshel Yaron In-Reply-To: (message from Eshel Yaron on Mon, 25 Nov 2024 22:27:57 +0100) Subject: Re: bug#74511: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' References: <878qt8pik7.fsf@stebalien.com> <86sergihd5.fsf@gnu.org> <875xocpdxr.fsf@stebalien.com> <86plmjiko0.fsf@gnu.org> <878qt73yhg.fsf@stebalien.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74511 Cc: steven@stebalien.com, 74511@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 (---) > From: Eshel Yaron > Cc: Eli Zaretskii , 74511@debbugs.gnu.org > Date: Mon, 25 Nov 2024 22:27:57 +0100 > > Steven Allen writes: > > > Eshel Yaron writes: > > > >> > >> The patch below tries to do both: > >> > >> - it adds a few words to the docstring of dictionary-search-interface > >> which explain that this option can only be meaningfully set after > >> loading dictionary.el, and > >> - it avoids clobbering existing settings for the other options during > >> initialization. It still overrides existing settings for the other > >> options if you set dictionary-search-interface after dictionary.el, > >> because that's the intended behavior when customizing this option. > >> > >> WDYT? > >> > > > > Is adding the following to `dictionary-search-interface' not sufficient? > > > > :initialize 'custom-initialize-changed > > > > That would apply the `dictionary-search-interface' setting if and only > > if specified by the user while still alowing the user to, e.g., use the > > customize interface. > > Ah yes, seems even better than my patch since it also makes it possible > to set dictionary-search-interface before loading dictionary.el, thanks! > > Eli, does this seem OK for the release branch? > > diff --git a/lisp/net/dictionary.el b/lisp/net/dictionary.el > index 58c2e9771ba..42fb8c57b40 100644 > --- a/lisp/net/dictionary.el > +++ b/lisp/net/dictionary.el > @@ -317,6 +317,7 @@ dictionary-search-interface > dictionary-read-dictionary-function) > vals)) > (set-default-toplevel-value symbol value)) > + :initialize #'custom-initialize-changed > :version "30.1") Don't you mean custom-initialize-set? If I'm missing something, please describe what will happen in the various scenarios when dictionary-search-interface and the other related options are customized, whether by setq or via Custom, and when they are not customized the first time dictionary.el is loaded. When we understand all the effects of this, we can reason whether the change is safe for the emacs-30 branch (which it better be, since these options were introduced in Emacs 30, AFAIR). Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 29 01:30:41 2024 Received: (at 74511) by debbugs.gnu.org; 29 Nov 2024 06:30:41 +0000 Received: from localhost ([127.0.0.1]:40678 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tGuWW-0004cZ-Gj for submit@debbugs.gnu.org; Fri, 29 Nov 2024 01:30:40 -0500 Received: from mail.eshelyaron.com ([107.175.124.16]:51704 helo=eshelyaron.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tGuWT-0004cP-TA for 74511@debbugs.gnu.org; Fri, 29 Nov 2024 01:30:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com; s=mail; t=1732861837; bh=7F/Pu939JIB2HQvVK46sR6uHSd4lIu+osdh1f+zeafE=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=FHRTTJCydLjBNiejf/Ccv08OqyV4l3Qqvsfll5hf88n8gajoK4GFeZxaEUyzpSnm4 dcETDlWiAP3LU15E/PWSiOR0+/mDdNSx2b7KtTPsCN6wPBBiaqJbaVC7Z9tnNNnCil 3cggPmxZpYuwGLOERezRMWlwiV/bMMwauoGih5DylgTsopaHRe3/dZ/OxNHspLDw3R e3Ti0k0X4uY318rEnQHXSwFtdqdkNdEx7l/xyBzm6qm/E+nmPBnx3tElbk2tbfY7aV m5OIvdltuGXZVTQ+iiAlmRFHjiSMHqbNVfrgYRUGFcXAWMlxuWoR2IXKUm6oOhngnN HEhST5m6g/MfA== From: Eshel Yaron To: Eli Zaretskii Subject: Re: bug#74511: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' In-Reply-To: <86r06ygnhc.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 26 Nov 2024 14:59:11 +0200") References: <878qt8pik7.fsf@stebalien.com> <86sergihd5.fsf@gnu.org> <875xocpdxr.fsf@stebalien.com> <86plmjiko0.fsf@gnu.org> <878qt73yhg.fsf@stebalien.com> <86r06ygnhc.fsf@gnu.org> Date: Fri, 29 Nov 2024 07:30:35 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 74511 Cc: steven@stebalien.com, 74511@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, Eli Zaretskii writes: >> From: Eshel Yaron >> Cc: Eli Zaretskii , 74511@debbugs.gnu.org >> Date: Mon, 25 Nov 2024 22:27:57 +0100 >> >> Steven Allen writes: >> >> > Is adding the following to `dictionary-search-interface' not sufficient? >> > >> > :initialize 'custom-initialize-changed >> > >> > That would apply the `dictionary-search-interface' setting if and only >> > if specified by the user while still alowing the user to, e.g., use the >> > customize interface. >> >> Ah yes, seems even better than my patch since it also makes it possible >> to set dictionary-search-interface before loading dictionary.el, thanks! >> >> Eli, does this seem OK for the release branch? >> >> diff --git a/lisp/net/dictionary.el b/lisp/net/dictionary.el >> index 58c2e9771ba..42fb8c57b40 100644 >> --- a/lisp/net/dictionary.el >> +++ b/lisp/net/dictionary.el >> @@ -317,6 +317,7 @@ dictionary-search-interface >> dictionary-read-dictionary-function) >> vals)) >> (set-default-toplevel-value symbol value)) >> + :initialize #'custom-initialize-changed >> :version "30.1") > > Don't you mean custom-initialize-set? No, I don't: custom-initialize-set calls the :set function if the symbol does not have a default-toplevel-value, which is when the option is initialized while loading dictionary.el. So using this :initialize function does not fix the recipe Steve provided in the original post. > If I'm missing something, please describe what will happen in the > various scenarios when dictionary-search-interface and the other > related options are customized, whether by setq or via Custom, and > when they are not customized the first time dictionary.el is loaded. > When we understand all the effects of this, we can reason whether the > change is safe for the emacs-30 branch (which it better be, since > these options were introduced in Emacs 30, AFAIR). With custom-initialize-changed we get the following: - If you customize the other options but not dictionary-search-interface before loading dictionary.el, then your settings persist (they are not overridden) after loading dictionary.el. If you later customize dictionary-search-interface, then it affects does the other options, as expected. - If you do customize dictionary-search-interface before loading dictionary.el, then it does set the other options when you load dictionary.el, whether or not you've also set the other options (so it doesn't make sense to customize both dictionary-search-interface and the other options, you either customize dictionary-search-interface or individual options). So AFAICT it's safe in the sense that it facilitates use cases that currently do not work (customizing the other options before loading dictionary.el) without prohibiting any existing use case. Best, Eshel From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 06:02:16 2024 Received: (at 74511) by debbugs.gnu.org; 30 Nov 2024 11:02:16 +0000 Received: from localhost ([127.0.0.1]:45685 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tHLEu-00021X-Fh for submit@debbugs.gnu.org; Sat, 30 Nov 2024 06:02:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41550) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tHLEt-00021C-5d for 74511@debbugs.gnu.org; Sat, 30 Nov 2024 06:02:15 -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 1tHLEn-0004V8-7E; Sat, 30 Nov 2024 06:02:09 -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=1o7071RORLr6YHJILky4fjHUuKzQ1KW5rVH0UqKn4os=; b=LwFMRVThjsBb N3EQh/GA5+FbTRPr+y+D+ZVr6P6KWf9/YWVQPAyj5bHnMCdv58g0Ut2IzbwaPUATqbkl5lH99qIbC hG1OO1S85QDZMojyTDbgt7ijYEGzw5SMTnHxiM97O/lqjMmS5E4MJPPaWJ3Jo8OrLlsc+MS9sqUBd Vg42V4H/pFlNXi+NftFmgc7uEq/K9VhqBSHLeY1aYcStO7308BEkk0zwz/Suxhnnhuu7Mz6NFyN/B CXugFbaNKX7UTmqi96cm96kgOTvhugRRuUmlcm7B8haUl/d3DOCgwuWH2oghg/CNMKFRo/KYJc0No gs1FJkO0qfeOVnJraHMPoA==; Date: Sat, 30 Nov 2024 13:02:04 +0200 Message-Id: <8634j97zo3.fsf@gnu.org> From: Eli Zaretskii To: Eshel Yaron In-Reply-To: (message from Eshel Yaron on Fri, 29 Nov 2024 07:30:35 +0100) Subject: Re: bug#74511: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' References: <878qt8pik7.fsf@stebalien.com> <86sergihd5.fsf@gnu.org> <875xocpdxr.fsf@stebalien.com> <86plmjiko0.fsf@gnu.org> <878qt73yhg.fsf@stebalien.com> <86r06ygnhc.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74511 Cc: steven@stebalien.com, 74511@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 (---) > From: Eshel Yaron > Cc: steven@stebalien.com, 74511@debbugs.gnu.org > Date: Fri, 29 Nov 2024 07:30:35 +0100 > > With custom-initialize-changed we get the following: > > - If you customize the other options but not dictionary-search-interface > before loading dictionary.el, then your settings persist (they are not > overridden) after loading dictionary.el. If you later customize > dictionary-search-interface, then it affects does the other options, > as expected. > - If you do customize dictionary-search-interface before loading > dictionary.el, then it does set the other options when you load > dictionary.el, whether or not you've also set the other options (so it > doesn't make sense to customize both dictionary-search-interface and > the other options, you either customize dictionary-search-interface or > individual options). > > So AFAICT it's safe in the sense that it facilitates use cases that > currently do not work (customizing the other options before loading > dictionary.el) without prohibiting any existing use case. Thanks, so please install on the emacs-30 branch. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 07:09:31 2024 Received: (at 74511) by debbugs.gnu.org; 30 Nov 2024 12:09:31 +0000 Received: from localhost ([127.0.0.1]:45824 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tHMHz-0005Q1-1X for submit@debbugs.gnu.org; Sat, 30 Nov 2024 07:09:31 -0500 Received: from mail.eshelyaron.com ([107.175.124.16]:39142 helo=eshelyaron.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tHMHw-0005Pn-Sa; Sat, 30 Nov 2024 07:09:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com; s=mail; t=1732968568; bh=xYWwVDbtCYGSie+CT165Q5O2gsq+HS6Dx0PUeK/Voq8=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=QV3EQrfUsE/brVz5Xb9mEmBeK/VsIzZaC7kYhhlgmgV4jov/ZagagO6OBTPyX6Nbl cKh1wQKUwzdN+R3Ukffr68jxFw4DXkmHqCiK0OVjGPZ+jHKyywzQiQ0w5WTGMYG4rs 8vSD+WtGaGtznKdg7WCfUzSlw9MQd/ETNaSzzAPksF+/VD9gr7+H77sq4eD13Cv3rR +9RWd7QgaTVIXPO2k93bqwRgQAoDNKTFX8Uv7ZcyJiCjQZg81MEbYb5WB+OeuRRyVu t/c2oNx7VUVVPkK3IkYM+HvT4CNJVeyuCHGYGCI/RFrVlt+L0LOIvXelardnCwWrQH Sy0wLIOtqIdiA== From: Eshel Yaron To: Eli Zaretskii Subject: Re: bug#74511: 31.0.50; `dictionary-search-interface' overrides the user's customization of `dictionary-read-word-function' In-Reply-To: <8634j97zo3.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 30 Nov 2024 13:02:04 +0200") References: <878qt8pik7.fsf@stebalien.com> <86sergihd5.fsf@gnu.org> <875xocpdxr.fsf@stebalien.com> <86plmjiko0.fsf@gnu.org> <878qt73yhg.fsf@stebalien.com> <86r06ygnhc.fsf@gnu.org> <8634j97zo3.fsf@gnu.org> Date: Sat, 30 Nov 2024 13:09:25 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 74511 Cc: steven@stebalien.com, 74511@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) close 74511 30.1 quit Eli Zaretskii writes: >> From: Eshel Yaron >> Cc: steven@stebalien.com, 74511@debbugs.gnu.org >> Date: Fri, 29 Nov 2024 07:30:35 +0100 >> >> With custom-initialize-changed we get the following: >> >> - If you customize the other options but not dictionary-search-interface >> before loading dictionary.el, then your settings persist (they are not >> overridden) after loading dictionary.el. If you later customize >> dictionary-search-interface, then it affects does the other options, >> as expected. >> - If you do customize dictionary-search-interface before loading >> dictionary.el, then it does set the other options when you load >> dictionary.el, whether or not you've also set the other options (so it >> doesn't make sense to customize both dictionary-search-interface and >> the other options, you either customize dictionary-search-interface or >> individual options). >> >> So AFAICT it's safe in the sense that it facilitates use cases that >> currently do not work (customizing the other options before loading >> dictionary.el) without prohibiting any existing use case. > > Thanks, so please install on the emacs-30 branch. All right, done in commit 0a753603a53, and closing the bug. From unknown Sun Jul 27 08:51:05 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 28 Dec 2024 12:24:07 +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