From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.bugs,gmane.emacs.erc.general Subject: bug#68395: 30.0.50; ERC 5.6-git: erc-cmd-GMSG, erc-cmd-AMSG, erc-cmd-GME, erc-cmd-AME Date: Fri, 12 Jan 2024 05:22:10 +0100 Message-ID: <87h6jjw58t.fsf@dataswamp.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26598"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: emacs-erc@gnu.org To: 68395@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jan 12 05:23:35 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rO94w-0006km-Ng for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 12 Jan 2024 05:23:35 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rO94a-0007hI-G5; Thu, 11 Jan 2024 23:23:12 -0500 Original-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 1rO94X-0007Wh-MH; Thu, 11 Jan 2024 23:23:10 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rO94S-0005Do-L3; Thu, 11 Jan 2024 23:23:08 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rO94P-0005wJ-Uh; Thu, 11 Jan 2024 23:23:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Emanuel Berg Original-Sender: "Debbugs-submit" Resent-CC: emacs-erc@gnu.org, bug-gnu-emacs@gnu.org Resent-Date: Fri, 12 Jan 2024 04:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 68395 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org X-Debbugs-Original-Xcc: emacs-erc@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.170503335222756 (code B ref -1); Fri, 12 Jan 2024 04:23:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 12 Jan 2024 04:22:32 +0000 Original-Received: from localhost ([127.0.0.1]:34556 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rO93v-0005ux-85 for submit@debbugs.gnu.org; Thu, 11 Jan 2024 23:22:32 -0500 Original-Received: from lists.gnu.org ([2001:470:142::17]:41384) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rO93q-0005ua-Ux for submit@debbugs.gnu.org; Thu, 11 Jan 2024 23:22:29 -0500 Original-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 1rO93n-0006Ir-CN for bug-gnu-emacs@gnu.org; Thu, 11 Jan 2024 23:22:23 -0500 Original-Received: from srv.dataswamp.org ([95.217.107.122] helo=dataswamp.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rO93f-0004sy-RA for bug-gnu-emacs@gnu.org; Thu, 11 Jan 2024 23:22:23 -0500 Original-Received: from dataswamp.org (localhost [127.0.0.1]) by dataswamp.org (OpenSMTPD) with ESMTP id 6ff9f469 for ; Fri, 12 Jan 2024 04:22:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=dataswamp.org; h=from:to :subject:date:message-id:mime-version:content-type; s=9287606; bh=Z6NboNYhVPNMZDeyNnb02gldS0E=; b=nwR5YPuPxJKODGx4M7RvR+Sdzl6q GqVCsFiHmz9o8lM/o7ya1wbdxbHu9964CIjtW5aZZ0ySnSMCunjEJ6vpeLSbqEX+ fye5RgBoT4dEM4nnxOxoKqXKos/ZGNVDXOhLbi/05BOltD67DV4jGRtXfslJAAVZ BctA8prGXCG1S/w= DomainKey-Signature: a=rsa-sha1; c=nofws; d=dataswamp.org; h=from:to :subject:date:message-id:mime-version:content-type; q=dns; s= 9287606; b=hLB9OXAF+NSfLKVFanmZlXr717br9tpTSuU1O6VN/TF7W9tLl7APt rM+bhSGdnmjkcdJG7z11sCbnFyuWtEM1ieAMA5DL+SMBloqasSNV2f+gOkGUe1oQ eNRJ/JcHQeJBMDDktCVM/y46893qDQL7QDBQc4G3lAxZ+g3+7U5xWo= Original-Received: from ebc (localhost [127.0.0.1]) by dataswamp.org (OpenSMTPD) with ESMTP id e85f505a for ; Fri, 12 Jan 2024 04:22:10 +0000 (UTC) Mail-Copies-To: never Tags: patch Received-SPF: pass client-ip=95.217.107.122; envelope-from=incal@dataswamp.org; helo=dataswamp.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:277986 gmane.emacs.erc.general:2359 Archived-At: --=-=-= Content-Type: text/plain Patch In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.16.0) of 2024-01-09 built on ebc Repository revision: 774c8ec74c98d69d56b2511a613145f2b69fb2eb Repository branch: master System Description: Debian GNU/Linux 12 (bookworm) Configured using: 'configure --enable-link-time-optimization --with-native-compilation=aot --with-x-toolkit=no --without-compress-install' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Article Minor modes in effect: erc-track-mode: t erc-track-minor-mode: t erc-netsplit-mode: t erc-menu-mode: t erc-list-mode: t erc-imenu-mode: t erc-match-mode: t erc-ring-mode: t erc-pcomplete-mode: t erc-log-mode: t erc-autojoin-mode: t erc-irccontrols-mode: t erc-move-to-prompt-mode: t erc-readonly-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-networks-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t buffer-read-only: t transient-mark-mode: t auto-composition-mode: linux auto-compression-mode: t Load-path shadows: /home/incal/quicklisp/dists/quicklisp/software/slime-v2.28/slime-tests hides /home/incal/.emacs.d/elpa/slime-20231218.2206/slime-tests /home/incal/quicklisp/dists/quicklisp/software/slime-v2.28/slime hides /home/incal/.emacs.d/elpa/slime-20231218.2206/slime /home/incal/quicklisp/dists/quicklisp/software/slime-v2.28/slime-autoloads hides /home/incal/.emacs.d/elpa/slime-20231218.2206/slime-autoloads ~/.emacs.d/emacs-init/version hides /usr/local/share/emacs/30.0.50/lisp/version ~/.emacs.d/lisp/abbrev hides /usr/local/share/emacs/30.0.50/lisp/abbrev Features: (shadow emacsbug bug-reference erc-ibuffer ibuf-ext ibuffer ibuffer-loaddefs erc-notify erc-page erc-services erc-sound erc-speedbar speedbar ezimage dframe erc-truncate erc-xdcc erc-dcc w3m-save nnfolder completion dos-w32 find-cmd find-dired ada-eglot elint cl-print ada-mode ada-imenu align ada-skel wisi-skel eglot external-completion jsonrpc flymake diff ert ewoc ada-indent-user-options ada-core uniquify-files ada-mode-autoloads uniquify-files-autoloads gnat-compiler gnat-compiler-autoloads skeleton wisi-process-parse wisi-prj wisi wisi-fringe semantic/lex semantic/fw mode-local find-file wisi-parse-common wisi-autoloads loaddefs-gen tar-mode url-cache url-http url-auth url-gw finder-inf conf-mode flow-fill mm-archive grep vc-hg vc-git vc-bzr vc-dispatcher python w3m-symbol w3m-filter canlock shortdoc qp display-line-numbers tabify mailalias mule-util mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check gnus-async gnus-bcklg gnus-dup gnus-ml disp-table cursor-sensor pop3 utf-7 nndraft nnmh nnml gnus-agent nnvirtual nntp gnus-cache network-stream erc-track erc-netsplit erc-menu erc-list erc-imenu term/linux cus-start global-keys yank xsel wrap-search wood w3m-version w3m-unisearch w3m-survivor w3m-sem w3m-keys w3m-swamp w3m-incal w3m-session vt version variance todo-did time-cmp pcase test-face survivor summary str-to-bits street today stats sort-list sort-incal sort slime-incal slime-fancy slime-indentation slime-cl-indent cl-indent slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references slime-compiler-notes-tree advice slime-scratch slime-macrostep macrostep slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc slime-banner signal show-command sequence-string scale restart replace-list remote ref-lines re-make-list random quote-ref psea printer lpr piles package-style checkdoc lisp-mnt ny negative-subtraction navigate-fs-keys tramp-cmds tramp-cache tramp-sh native comp comp-cstr cl-extra model-ttt model mode-by-filename misc-incal minor-modes t-mouse messages message-incal message-header moggle measure match-data-format man-incal mailrc mail mail-zoho mail-to-many mail-insert mail-dataswamp list list-quoted-functions lisp-incal regexp inf-lisp ielm linux-shell lights latex tex-mode kill kill-path keys iterate-files info-incal html mhtml-mode cus-edit js c-ts-common hex help-incal help-fns radix-tree debug backtrace gnus-server gnus-score-incal gnus-incal-minimal smtpmail cite frame-size fill-incal file tramp trampver tramp-integration tramp-message help-mode tramp-compat tramp-loaddefs face w3m-form slime-presentations slime-repl slime-parse bridge slime etags fileloop xref project arc-mode archive-mode hyperspec sh-script executable org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities org-version ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-compat org-macs man gnus-cite gemini-mode time-stamp ffap erc-match diff-mode easy-mmode apt-sources-list apropos erc-show-modes erc-misc erc-man erc-log-incal cus-load erc-connect epwgen enum emacs-shell shell eshell em-hist esh-mode esh-var esh-cmd generator esh-ext esh-proc esh-io esh-arg esh-module esh-groups esh-opt esh-util elpher-incal bookmark pp socks nsm elpher elpa elisp revert-buffer ide nroff-mode css-mode treesit smie sgml-mode facemenu imenu eww xdg url-queue mm-url markdown-mode color noutline outline make-mode quit gnus-incal group group-summary find-command-zsh get-search-string erc-incal warnings erc-spell erc-ring erc-pcomplete pcomplete erc-log erc-kill erc-join erc-iterate erc-scroll erc-goodies erc-element erc-button erc-fill erc-stamp erc format-spec erc-backend erc-networks erc-common erc-compat erc-loaddefs gnus-score score-mode elide-head edit window-incal window-other tabs sudo-user-path echo-message ecat-incal dope dired-kill-ext dired-aux dired-jump-target dired-incal w3m-url files-x custom-vars search-regexp-in-files counter count console-keys compilation-incal comic-book-insult color-incal char caps-back c-and-cpp compile-incal compile comint ansi-osc ansi-color ring cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs buffer-menu switch-to-buffer switch-to-buffer-regexp buc browse gnus-srvr bmi bike math perm spell ispell dwim bibtex-next-volume bibtex-incal bibtex-field bibtex-book bibtex-autokey-insert issn-verify isbn-verify bibtex batch audio article w3m-download w3m-search file-write-to w3m-bookmark-more w3m-tabs w3m-bookmark w3m doc-view filenotify jka-compr image-mode exif timezone w3m-hist bookmark-w3m w3m-ems w3m-favicon w3m-image w3m-fb tab-line icons w3m-proc w3m-util thingatpt super scroll mode-line gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus comp-run comp-common xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range message sendmail yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util text-property-search time-date mail-utils range mm-util mail-prsvr wid-edit close align-incal string align-from-left abc rx elpher-autoloads gemini-mode-autoloads go-mode-autoloads lua-mode-autoloads markdown-mode-autoloads info slime-autoloads macrostep-autoloads sml-mode-autoloads w3m-load w3m-autoloads 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 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 system-font-setting font-render-setting cairo xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 2152585 504049) (symbols 48 65163 12) (strings 32 367483 49126) (string-bytes 1 17762473) (vectors 16 137706) (vector-slots 8 3475772 228026) (floats 8 968 4004) (intervals 56 35411 7018) (buffers 976 263)) --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-erc-cmd-GMSG-erc-cmd-AMSG-erc-cmd-GME-and-erc-cmd-AM.patch >From 2aea60a6ab47431fa7da913a8de8d325d1c62030 Mon Sep 17 00:00:00 2001 From: Emanuel Berg Date: Fri, 12 Jan 2024 05:16:11 +0100 Subject: [PATCH] `erc-cmd-GMSG', `erc-cmd-AMSG', `erc-cmd-GME' and `erc-cmd-AME'. --- lisp/erc/erc.el | 156 ++++++++++++++++++++++++++++-------------------- 1 file changed, 90 insertions(+), 66 deletions(-) diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 478683a77f5..12078f6970d 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -2003,10 +2003,10 @@ erc-get-buffer (defun erc--buffer-p (buf predicate proc) (with-current-buffer buf (and (derived-mode-p 'erc-mode) - (or (not proc) - (eq proc erc-server-process)) - (funcall predicate) - buf))) + (or (not proc) + (eq proc erc-server-process)) + (funcall predicate) + buf))) (defun erc-buffer-filter (predicate &optional proc) "Return a list of `erc-mode' buffers matching certain criteria. @@ -2021,7 +2021,7 @@ erc-buffer-filter nil (mapcar (lambda (buf) (when (buffer-live-p buf) - (erc--buffer-p buf predicate proc))) + (erc--buffer-p buf predicate proc))) (buffer-list))))) (defalias 'erc-buffer-do 'erc-buffer-filter @@ -2042,14 +2042,14 @@ erc-buffer-list (define-obsolete-function-alias 'erc-iswitchb #'erc-switch-to-buffer "25.1") (defun erc--switch-to-buffer (&optional arg) (read-buffer "Switch to ERC buffer: " - (when (boundp 'erc-modified-channels-alist) - (buffer-name (caar (last erc-modified-channels-alist)))) - t - ;; Only allow ERC buffers in the same session. - (let ((proc (unless arg erc-server-process))) - (lambda (bufname) - (let ((buf (if (consp bufname) - (cdr bufname) (get-buffer bufname)))) + (when (boundp 'erc-modified-channels-alist) + (buffer-name (caar (last erc-modified-channels-alist)))) + t + ;; Only allow ERC buffers in the same session. + (let ((proc (unless arg erc-server-process))) + (lambda (bufname) + (let ((buf (if (consp bufname) + (cdr bufname) (get-buffer bufname)))) (and buf (erc--buffer-p buf (lambda () t) proc))))))) (defun erc-switch-to-buffer (&optional arg) "Prompt for an ERC buffer to switch to. @@ -2581,7 +2581,7 @@ erc-initialize-log-marker (unless (markerp erc-last-saved-position) (setq erc-last-saved-position (make-marker)) (move-marker erc-last-saved-position - (1- (marker-position erc-insert-marker)))))) + (1- (marker-position erc-insert-marker)))))) ;; interactive startup @@ -3590,7 +3590,7 @@ erc-display-message-highlight (erc-put-text-property 0 (length string) 'font-lock-face (or (intern-soft - (concat "erc-" (symbol-name type) "-face")) + (concat "erc-" (symbol-name type) "-face")) 'erc-default-face) string) string))) @@ -3667,8 +3667,8 @@ erc-lurker-cleanup (maphash (lambda (nick last-PRIVMSG-time) (when - (time-less-p erc-lurker-threshold-time - (time-since last-PRIVMSG-time)) + (time-less-p erc-lurker-threshold-time + (time-since last-PRIVMSG-time)) (remhash nick hash))) hash) (if (zerop (hash-table-count hash)) @@ -3735,8 +3735,8 @@ erc-lurker-p (gethash (erc-lurker-maybe-trim nick) (gethash server erc-lurker-state (make-hash-table))))) (or (null last-PRIVMSG-time) - (time-less-p erc-lurker-threshold-time - (time-since last-PRIVMSG-time))))) + (time-less-p erc-lurker-threshold-time + (time-since last-PRIVMSG-time))))) (defcustom erc-common-server-suffixes '(("openprojects.net\\'" . "OPN") @@ -3760,7 +3760,7 @@ erc-canonicalize-server-name (defun erc-add-targets (scope target-list) (let ((targets - (mapcar (lambda (targets) (member scope targets)) target-list))) + (mapcar (lambda (targets) (member scope targets)) target-list))) (cdr (apply #'append (delete nil targets))))) (defun erc-hide-current-message-p (parsed) @@ -3776,16 +3776,16 @@ erc-hide-current-message-p (sender (car (erc-parse-user (erc-response.sender parsed)))) (channel (car (erc-response.command-args parsed))) (network (or (and (erc-network) (erc-network-name)) - (erc-shorten-server-name - (or erc-server-announced-name - erc-session-server)))) - (current-hide-list - (when erc-network-hide-list - (erc-add-targets network erc-network-hide-list))) - (current-hide-list - (append current-hide-list - (when erc-channel-hide-list - (erc-add-targets channel erc-channel-hide-list))))) + (erc-shorten-server-name + (or erc-server-announced-name + erc-session-server)))) + (current-hide-list + (when erc-network-hide-list + (erc-add-targets network erc-network-hide-list))) + (current-hide-list + (append current-hide-list + (when erc-channel-hide-list + (erc-add-targets channel erc-channel-hide-list))))) (or (member command erc-hide-list) (member command current-hide-list) (and (member command erc-lurker-hide-list) (erc-lurker-p sender))))) @@ -3871,9 +3871,9 @@ erc-display-message (erc--route-insertion string buffer) (unless (erc-hide-current-message-p parsed) (erc-put-text-property 0 (length string) 'erc-parsed parsed string) - (when (erc-response.tags parsed) - (erc-put-text-property 0 (length string) 'tags (erc-response.tags parsed) - string)) + (when (erc-response.tags parsed) + (erc-put-text-property 0 (length string) 'tags (erc-response.tags parsed) + string)) (erc--route-insertion string buffer))))) (defun erc-message-type-member (position list) @@ -4016,16 +4016,40 @@ erc--split-string-shell-cmd ;; Input commands handlers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defun erc-cmd-AMSG (line) - "Send LINE to all channels of the current server that you are on." - (interactive "sSend to all channels you're on: ") +(defun erc-cmd-GMSG (line) + "Send LINE to all channels on all networks you are on." + (interactive "sSend to all channels: ") (setq line (erc-trim-string line)) (erc-with-all-buffers-of-server nil - (lambda () - (erc-channel-p (erc-default-target))) + (lambda () (erc-channel-p (erc-default-target))) + (erc-send-message line))) +(put 'erc-cmd-GMSG 'do-not-parse-args t) + +(defun erc-cmd-AMSG (line) + "Send LINE to all channels of the current network." + (interactive "sSend to all channels on this network: ") + (setq line (erc-trim-string line)) + (erc-with-all-buffers-of-server erc-server-process + (lambda () (erc-channel-p (erc-default-target))) (erc-send-message line))) (put 'erc-cmd-AMSG 'do-not-parse-args t) +(defun erc-cmd-GME (line) + "Send LINE as an action to all channels on all networks you are on." + (interactive "sSend action to all channels: ") + (erc-with-all-buffers-of-server nil + (lambda () (erc-channel-p (erc-default-target))) + (erc-cmd-ME line) )) +(put 'erc-cmd-GME 'do-not-parse-args t) + +(defun erc-cmd-AME (line) + "Send LINE as an action to all channels on the current network." + (interactive "sSend action to all channels on this network: ") + (erc-with-all-buffers-of-server erc-server-process + (lambda () (erc-channel-p (erc-default-target))) + (erc-cmd-ME line) )) +(put 'erc-cmd-AME 'do-not-parse-args t) + (defun erc-cmd-SAY (line) "Send LINE to the current query or channel as a message, not a command. @@ -5213,8 +5237,8 @@ erc-cmd-TOPIC (topic (match-string 2 topic))) ;; Ignore all-whitespace topics. (unless (equal (string-trim topic) "") - (erc-log (format "cmd: TOPIC [%s]: %s" ch topic)) - (erc-server-send (format "TOPIC %s :%s" ch topic) nil ch))) + (erc-log (format "cmd: TOPIC [%s]: %s" ch topic)) + (erc-server-send (format "TOPIC %s :%s" ch topic) nil ch))) t) ;; /topic #channel ((string-match "^\\s-*\\([&#+!]\\S-+\\)" topic) @@ -5493,7 +5517,7 @@ erc-input-message (read-map minibuffer-local-map)) (insert (read-from-minibuffer "Message: " (string last-command-event) - read-map)) + read-map)) (erc-send-current-line))) (defvar erc-action-history-list () @@ -5776,11 +5800,11 @@ erc-wash-quit-reason (or (when (string-match (concat "^\\(Read error\\) to " nick "\\[" host "\\]: " "\\(.+\\)$") - reason) + reason) (concat (match-string 1 reason) ": " (match-string 2 reason))) (when (string-match (concat "^\\(Ping timeout\\) for " nick "\\[" host "\\]$") - reason) + reason) (match-string 1 reason)) reason)) @@ -5820,7 +5844,7 @@ erc-nickname-in-use ;; server's setting if we haven't ;; established a connection yet (- 9 (length erc-nick-uniquifier)))) - erc-nick-uniquifier))) + erc-nick-uniquifier))) (erc--nickname-in-use-make-request nick newnick) (erc-display-error-notice nil @@ -6801,30 +6825,30 @@ erc-channel-receive-names (adm-ch (cdr (assq ?a prefix))) (own-ch (cdr (assq ?q prefix))) (names (delete "" (split-string names-string))) - name op voice halfop admin owner) + name op voice halfop admin owner) (let ((erc-channel-members-changed-hook nil)) (dolist (item names) (let ((updatep t) - (ch (aref item 0))) + (ch (aref item 0))) (setq name item op 'off voice 'off halfop 'off admin 'off owner 'off) (if (rassq ch prefix) (if (= (length item) 1) - (setq updatep nil) - (setq name (substring item 1)) - (setf (pcase ch - ((pred (eq voice-ch)) voice) - ((pred (eq hop-ch)) halfop) - ((pred (eq op-ch)) op) - ((pred (eq adm-ch)) admin) - ((pred (eq own-ch)) owner) - (_ (message "Unknown prefix char `%S'" ch) voice)) - 'on))) + (setq updatep nil) + (setq name (substring item 1)) + (setf (pcase ch + ((pred (eq voice-ch)) voice) + ((pred (eq hop-ch)) halfop) + ((pred (eq op-ch)) op) + ((pred (eq adm-ch)) admin) + ((pred (eq own-ch)) owner) + (_ (message "Unknown prefix char `%S'" ch) voice)) + 'on))) (when updatep - ;; If we didn't issue the NAMES request (consider two clients - ;; talking to an IRC proxy), `erc-channel-begin-receiving-names' - ;; will not have been called, so we have to do it here. - (unless erc-channel-new-member-names - (erc-channel-begin-receiving-names)) + ;; If we didn't issue the NAMES request (consider two clients + ;; talking to an IRC proxy), `erc-channel-begin-receiving-names' + ;; will not have been called, so we have to do it here. + (unless erc-channel-new-member-names + (erc-channel-begin-receiving-names)) (puthash (erc-downcase name) t erc-channel-new-member-names) (erc-update-current-channel-member @@ -7767,7 +7791,7 @@ erc-send-current-line (let ((now (current-time))) (if (or (not erc-accidental-paste-threshold-seconds) (time-less-p erc-accidental-paste-threshold-seconds - (time-subtract now erc-last-input-time))) + (time-subtract now erc-last-input-time))) (save-restriction ;; If there's an abbrev at the end of the line, expand it. (when (and abbrev-mode @@ -7909,8 +7933,8 @@ erc-send-input (defvar str)) (let ((str input) (erc-insert-this t) - (erc-send-this t) - state) + (erc-send-this t) + state) ;; The calling convention of `erc-send-pre-hook' is that it ;; should change the dynamic variable `str' or set ;; `erc-send-this' to nil. This has now been deprecated: @@ -7918,8 +7942,8 @@ erc-send-input ;; allow both changing and suppressing the string. (run-hook-with-args 'erc-send-pre-hook input) (setq state (make-erc-input :string str ;May be != from `input' now! - :insertp erc-insert-this - :sendp erc-send-this)) + :insertp erc-insert-this + :sendp erc-send-this)) (run-hook-with-args 'erc-pre-send-functions state) (when (and (erc-input-sendp state) erc-send-this) -- 2.39.2 --=-=-= Content-Type: text/plain -- underground experts united https://dataswamp.org/~incal --=-=-=--