mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
* 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) |
||
|---|---|---|
| .. | ||
| resources | ||
| erc-button-tests.el | ||
| erc-dcc-tests.el | ||
| erc-fill-tests.el | ||
| erc-goodies-tests.el | ||
| erc-join-tests.el | ||
| erc-match-tests.el | ||
| erc-networks-tests.el | ||
| erc-nicks-tests.el | ||
| erc-sasl-tests.el | ||
| erc-scenarios-auth-source.el | ||
| erc-scenarios-base-association-nick.el | ||
| erc-scenarios-base-association-query.el | ||
| erc-scenarios-base-association-samenet.el | ||
| erc-scenarios-base-association.el | ||
| erc-scenarios-base-attach.el | ||
| erc-scenarios-base-auto-recon.el | ||
| erc-scenarios-base-buffer-display.el | ||
| erc-scenarios-base-chan-modes.el | ||
| erc-scenarios-base-compat-rename-bouncer.el | ||
| erc-scenarios-base-local-module-modes.el | ||
| erc-scenarios-base-local-modules.el | ||
| erc-scenarios-base-misc-regressions.el | ||
| erc-scenarios-base-netid-bouncer-id.el | ||
| erc-scenarios-base-netid-bouncer-recon-base.el | ||
| erc-scenarios-base-netid-bouncer-recon-both.el | ||
| erc-scenarios-base-netid-bouncer-recon-id.el | ||
| erc-scenarios-base-netid-bouncer.el | ||
| erc-scenarios-base-netid-samenet.el | ||
| erc-scenarios-base-reconnect.el | ||
| erc-scenarios-base-renick.el | ||
| erc-scenarios-base-reuse-buffers.el | ||
| erc-scenarios-base-send-message.el | ||
| erc-scenarios-base-split-line.el | ||
| erc-scenarios-base-statusmsg.el | ||
| erc-scenarios-base-unstable.el | ||
| erc-scenarios-base-upstream-recon-soju.el | ||
| erc-scenarios-base-upstream-recon-znc.el | ||
| erc-scenarios-display-message.el | ||
| erc-scenarios-internal.el | ||
| erc-scenarios-join-auth-source.el | ||
| erc-scenarios-join-display-context.el | ||
| erc-scenarios-join-netid-newcmd-id.el | ||
| erc-scenarios-join-netid-newcmd.el | ||
| erc-scenarios-join-netid-recon-id.el | ||
| erc-scenarios-join-netid-recon.el | ||
| erc-scenarios-keep-place-indicator.el | ||
| erc-scenarios-log.el | ||
| erc-scenarios-match.el | ||
| erc-scenarios-misc-commands.el | ||
| erc-scenarios-misc.el | ||
| erc-scenarios-prompt-format.el | ||
| erc-scenarios-sasl.el | ||
| erc-scenarios-scrolltobottom-relaxed.el | ||
| erc-scenarios-scrolltobottom.el | ||
| erc-scenarios-services-misc.el | ||
| erc-scenarios-stamp.el | ||
| erc-scenarios-status-sidebar.el | ||
| erc-services-tests.el | ||
| erc-stamp-tests.el | ||
| erc-tests.el | ||
| erc-track-tests.el | ||