1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00
emacs/test/lisp/erc
F. Jason Park aedc8b55bf Actually derive channel membership from PREFIX in ERC
* lisp/erc/erc-backend.el (erc--with-isupport-data): Add comment for
possibly superior alternate implementation.
* lisp/erc/erc-common.el (erc--get-isupport-entry): Use helper to
initialize traditional prefix slots in overridden well-known
constructor.
(erc--parsed-prefix): Reverse order of characters in the `letters'
and `statuses' slots, in their defaults and also their definitions.
(erc--strpos): New function, a utility for finding a single character
in a string.
* lisp/erc/erc.el (erc--define-channel-user-status-compat-getter):
Modify to query advertised value for associated mode letter at runtime
instead of baking it in.
(erc-channel-user-voice, erc-channel-user-halfop, erc-channel-user-op,
erc-channel-user-admin, erc-channel-user-owner): Supply second
argument for fallback mode letter.
(erc--cusr-status-p, erc--cusr-change-status): New functions for
querying and modifying `erc-channel-user' statuses.
(erc-send-input-line): Update speaker time in own nick's
`erc-channel-member' entry.
(erc-get-channel-membership-prefix): Adapt code to prefer advertised
prefix for mode letter.
(erc--parsed-prefix): Save "reversed" `letters' and `statuses' so that
they're ordered from lowest to highest semantically.
(erc--get-prefix-flag, erc--init-cusr-fallback-status,
erc--compute-cusr-fallback-status): New functions for retrieving
internal prefix values and massaging hard-coded traditional prefixes
so they're compatible with existing `erc-channel-member' update code.
(erc--partition-prefixed-names): New function, separated for testing
and for conversion to a generic in the future when ERC supports
extensions that list member rolls in a different format.
(erc-channel-receive-names): Refactor to use new status-aware update
and init workhorse functions for updating and initializing a
`erc-channel-members' entry.
(erc--create-current-channel-member): New "status-aware" function
comprising the `addp' path of `erc-update-current-channel-member'.
(erc--update-current-channel-member): New "status-aware" function
comprising the "update" path of `erc-update-current-channel-member',
which ran when an existing `erc-channel-members' entry for the queried
nick was found.
(erc-update-current-channel-member): Split code body into two
constituent functions, both for readability and for usability, so
callers can more explicitly request the desired operation in a
"status-aware" manner.
(erc--update-membership-prefix): Remove unused function, originally
meant to be new in ERC 5.6.
(erc--process-channel-modes): Call `erc--cusr-change-status' instead
of `erc--update-membership-prefix'.
(erc--shuffle-nuh-nickward): New utility function to ensure code like
`erc--partition-prefixed-names' can use `erc--parse-nuh' in a
practical and relatively convenient way in the near future.
* test/lisp/erc/erc-scenarios-base-chan-modes.el
(erc-scenarios-base-chan-modes--speaker-status): New test.
* test/lisp/erc/erc-tests.el (erc--parsed-prefix): Reverse expected
order of various slot values in `erc--parsed-prefix' objects.
(erc--get-prefix-flag, erc--init-cusr-fallback-status,
erc--compute-cusr-fallback-status, erc--cusr-status-p,
erc--cusr-change-status): New tests.
(erc--update-channel-modes, erc-process-input-line): Use newly
available utilities imported from common library.
* test/lisp/erc/resources/base/modes/speaker-status.eld: New file.
(Bug#67220)
2024-01-24 20:58:32 -08:00
..
resources Actually derive channel membership from PREFIX in ERC 2024-01-24 20:58:32 -08:00
erc-button-tests.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-dcc-tests.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-fill-tests.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-goodies-tests.el Use global window hook for erc-keep-place-indicator 2024-01-07 15:11:26 -08:00
erc-join-tests.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-match-tests.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-networks-tests.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-nicks-tests.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-sasl-tests.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-auth-source.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-base-association-nick.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-association-query.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-association-samenet.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-association.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-base-attach.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-base-auto-recon.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-base-buffer-display.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-base-chan-modes.el Actually derive channel membership from PREFIX in ERC 2024-01-24 20:58:32 -08:00
erc-scenarios-base-compat-rename-bouncer.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-local-module-modes.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-base-local-modules.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-base-misc-regressions.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-base-netid-bouncer-id.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-netid-bouncer-recon-base.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-netid-bouncer-recon-both.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-netid-bouncer-recon-id.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-netid-bouncer.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-netid-samenet.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-reconnect.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-base-renick.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-base-reuse-buffers.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-base-send-message.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-base-split-line.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-base-statusmsg.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-base-unstable.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-upstream-recon-soju.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-base-upstream-recon-znc.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-display-message.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-internal.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-join-auth-source.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-join-display-context.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-join-netid-newcmd-id.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-join-netid-newcmd.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-join-netid-recon-id.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-join-netid-recon.el ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
erc-scenarios-keep-place-indicator.el Redo doc strings for ERC's entry point commands 2024-01-18 17:06:08 -08:00
erc-scenarios-log.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-match.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-misc-commands.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-misc.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-prompt-format.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-sasl.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-scrolltobottom-relaxed.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-scrolltobottom.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-services-misc.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-scenarios-stamp.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-scenarios-status-sidebar.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-services-tests.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
erc-stamp-tests.el ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
erc-tests.el Actually derive channel membership from PREFIX in ERC 2024-01-24 20:58:32 -08:00
erc-track-tests.el Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00