From emacs -Q 1. Start a new session, connecting as nick A 2. Start another session, connecting as nick B 3. As nick B, open a query with A, say something, and quit 4. Start another session, connecting as nick C 5. As nick C, open a query with A, say something, then issue a /nick B 6. As B, open a query with A, say something 7. In A's session, notice B's new query buffer is named B<2> To put it another way: someone you have a query with disconnects and reconnects under a new nick, perhaps due to their client appending a backtick or an underscore. They then engage you in another query before renicking to their original nick. Weechat and others deal with this by reusing existing query buffers, but ERC has always added a uniquifying suffix of the form A<2> to the new, renicked query buffer [1]. While it's true we can't technically be certain revived queries are being piloted by the same individuals (at least not until ERC becomes account aware), enough folks have complained about this over the years that I think it's legitimate to disregard that uncertainty by default. And though we're not obliged to address this for this release in particular, I do think it's worth doing so soonish, especially given that bug#48598 (ERC 5.5) was supposed to do away with these buffer association issues. The second of the attached patches attempts to get us closer to making good on that. Thanks. [1] Note that in the scenario above, attempting to "merge" buffers B and C, like ERC does after changing its own nick, may seem desirable, but it's tricky business because timelines may be interleaved rather than simply overlap at a single boundary interval. This is one of the many things a "backing store" or "replay" module could help solve, at least in cases brought about by unwanted backtick suffixing. A suitable back end would allow us to perform the merge in-store, perhaps ephemerally, and re-ingest it as clean, simulated input. In GNU Emacs 30.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0) of 2024-05-08 built on localhost Repository revision: 36c68e7e34df996bbde4cc82c04ea1619349b64a Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12302004 System Description: Fedora Linux 39 (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 LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP 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 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 compile text-property-search comint ansi-osc ansi-color ring comp-run comp-common rx erc auth-source cl-seq eieio eieio-core cl-macs icons 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 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 native-compile emacs) Memory information: ((conses 16 91614 10878) (symbols 48 9861 0) (strings 32 26671 5011) (string-bytes 1 770713) (vectors 16 17713) (vector-slots 8 189327 10467) (floats 8 26 13) (intervals 56 323 0) (buffers 984 11))