bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#66578: 30.0.50; ERC 5.6: Retrieve buffer targets sans subscription s


From: J.P.
Subject: bug#66578: 30.0.50; ERC 5.6: Retrieve buffer targets sans subscription status
Date: Mon, 16 Oct 2023 07:18:35 -0700
User-agent: Gnus/5.13 (Gnus v5.13)

Tags: patch

The go-to public function for determining a buffer's target has always
been 'erc-default-target'. However, it doesn't always behave in the most
intuitive manner for those unfamiliar with ERC's inner workings. This by
itself is not a deal breaker, but things get more complicated when you
consider the function's handful of "consumers" in ERC's public API.
Take, for example, the function `erc-server-buffer-p'. When called in a
PARTed channel, it returns t, just like it has since at least ERC 5.3.
What about a more involved dependent function, like `erc-get-buffer'?
Its result is pretty straightforward to predict so long as you ignore
the same glaring "joinedness" blind spot.

I'm proposing we offer a new public function, `erc-target', that simply
returns non-nil in any query or channel buffer, regardless of whether
the client has left or been kicked, and regardless of network
connectivity (logical or otherwise). I'm also proposing that we slowly
replace uses of `erc-default-target' in the code base wherever we can
comfortably demonstrate that doing so is unlikely to break anything. (We
should probably leave a note behind with each replacement mentioning the
old behavior.) Attached is an initial sketch of this idea. Please try it
if you dare.


In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.17.6) of 2023-10-16 built on localhost
Repository revision: c3038bf5e1d79c3dfa83717a5a61ecc86116f04a
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 37 (Workstation Edition)

Configured using:
 'configure --enable-check-lisp-object-type --enable-checking=yes,glyphs
 'CFLAGS=-O0 -g3'
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util text-property-search time-date mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils erc auth-source cl-seq
eieio eieio-core cl-macs password-cache json subr-x map format-spec
cl-loaddefs cl-lib erc-backend erc-networks byte-opt gv bytecomp
byte-compile erc-common erc-compat erc-loaddefs 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 system-font-setting font-render-setting
cairo gtk x-toolkit xinput2 x multi-tty move-toolbar
make-network-process emacs)

Memory information:
((conses 16 66550 9194) (symbols 48 8704 0) (strings 32 23573 2312)
 (string-bytes 1 687630) (vectors 16 16105)
 (vector-slots 8 216057 14988) (floats 8 24 33) (intervals 56 239 0)
 (buffers 984 11))

Attachment: 0001-5.6-Rename-erc-server-buffer-p.patch
Description: Text Data

Attachment: 0002-5.6-Add-function-erc-target.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]