mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
* etc/ERC-NEWS: Don't mention certain insertion-adjacent hooks being suppressed for date stamps, which is no longer true. * lisp/erc/erc-common.el (erc--solo): New utility function. * lisp/erc/erc-fill.el (erc-fill-wrap): Don't move last-message marker when encountering a date stamp. * lisp/erc/erc-stamp.el (erc-stamp--recover-on-reconnect): Restore `erc-stamp--date-stamps' on reconnect and rejoin. (erc-stamp--insert-date-hook): Fix erroneous doc string. (erc-stamp--date): New struct type. (erc-stamp--deferred-date-stamp): New internal variable to pass state between hook members. (erc-stamp--date-stamps): New internal variable to store a reference to all inserted timestamps. (erc-stamp--propertize-left-date-stamp): Don't hide messages because this function runs on `erc-insert-modify-hook'. Prefer doing so later, in `erc-insert-post-hook'. (erc-stamp--find-insertion-point): New helper function. (erc-stamp--insert-date-stamp-as-phony-message): Remove. (erc-stamp--lr-date-on-pre-modify): Remove function. Portions of body now appear in `erc-stamp--defer-date-insertion-on-post-modify'. (erc-stamp--defer-date-insertion-on-post-modify) (erc-stamp--defer-date-insertion-on-post-insert) (erc-stamp--defer-date-insertion-on-post-send): New functions, although the first incorporates parts of the now defunct `erc-stamp--lr-date-on-pre-modify'. (erc-stamp--date-mode): Update hook-member functions. (erc-stamp-prepend-date-stamps-p): Revise doc. (erc-insert-timestamp-left-and-right): Remove code to initialize a date stamp in place through a nested call to `erc-display-message'. Instead, "pre-render" date stamp and stash it for retrieval by the function `erc-stamp--defer-date-insertion-on-post-modify'. (erc-stamp--setup): Kill variables `erc-stamp--deferred-date-stamp' and `erc-stamp--date-stamps'. (erc-stamp--reset-on-clear): Remove trimmed stamps from `erc-stamp--date-stamps'. * lisp/erc/erc.el (erc--msg-props): Document `erc--hide' in doc string. (erc--with-inserted-msg): Remove unused macro. (erc--insert-line-splice-function): New variable. (erc--with-spliced-insertion): New macro. (erc--insert-line-function): Expand doc string. (erc--remove-from-prop-value-list): Tweak doc string. (erc--insert-before-markers-transplanting-hidden): New function. (erc--hide-message): Remember managed `invisible' prop value. Do so by recording them in the `erc--hide' "msg prop". (erc--delete-inserted-message, erc--delete-inserted-message-naively): Rename former to latter to emphasize that it's largely impractical for general use. (erc--ranked-properties): Add `erc--hide'. * test/lisp/erc/erc-button-tests.el (erc-button-tests--erc-button-alist--function-as-form): Use `erc-display-message' helper. * test/lisp/erc/erc-fill-tests.el (erc-fill-tests--insert-privmsg) (erc-fill-tests--wrap-populate, erc-fill-wrap-tests--merge-action) (erc-fill-line-spacing): Use `erc-display-message' wrappers to intercept `erc-timer-hook' modifications. * test/lisp/erc/erc-scenarios-match.el (erc-scenarios-match--invisible-stamp): Add convenience commands to `extended-command-history' when running interactively. * test/lisp/erc/erc-tests.el (erc--insert-before-markers-transplanting-hidden): New test. (erc--delete-inserted-message, erc--delete-inserted-message-naively): Update test name as well as namesake function in body. * test/lisp/erc/resources/erc-scenarios-common.el (erc-scenarios-common-with-cleanup): Validate `erc-stamp--date-stamps' members after every scenario test. (erc-scenarios-common--assert-date-stamps): New function. * test/lisp/erc/resources/erc-tests-common.el: Require `erc-stamp' atop file when compiling. (erc-tests--common-display-message) (erc-tests-common-display-message) (erc-tests-common-with-date-aware-display-message): New functions and macro for running `erc-display-message' while intercepting additions to `erc-timer-hook' made by date-stamp-related post-insertion hooks. (erc-tests-common-snapshot-compare): Insert expected output into its own buffer for easier review during interactive sessions. This change is unrelated to the rest of this commit. (Bug#60936) |
||
|---|---|---|
| .. | ||
| align-resources | ||
| auth-source-resources | ||
| bookmark-resources | ||
| calc | ||
| calendar | ||
| cedet | ||
| custom-resources | ||
| dired-resources/insert-directory | ||
| emacs-lisp | ||
| emulation | ||
| epg-resources | ||
| erc | ||
| eshell | ||
| faces-resources | ||
| files-resources | ||
| gnus | ||
| hfy-cmap-resources | ||
| image | ||
| international | ||
| loadhist-resources | ||
| mh-e | ||
| minibuffer-resources | ||
| net | ||
| nxml | ||
| obsolete | ||
| org | ||
| pcmpl-linux-resources | ||
| play | ||
| progmodes | ||
| saveplace-resources | ||
| so-long-tests | ||
| term | ||
| textmodes | ||
| time-resources | ||
| url | ||
| use-package | ||
| vc | ||
| xdg-resources | ||
| abbrev-tests.el | ||
| align-tests.el | ||
| allout-tests.el | ||
| allout-widgets-tests.el | ||
| ansi-color-tests.el | ||
| ansi-osc-tests.el | ||
| apropos-tests.el | ||
| arc-mode-tests.el | ||
| auth-source-pass-tests.el | ||
| auth-source-tests.el | ||
| autoinsert-tests.el | ||
| autorevert-tests.el | ||
| battery-tests.el | ||
| bookmark-tests.el | ||
| buff-menu-tests.el | ||
| button-tests.el | ||
| calculator-tests.el | ||
| char-fold-tests.el | ||
| color-tests.el | ||
| comint-tests.el | ||
| completion-preview-tests.el | ||
| completion-tests.el | ||
| cus-edit-tests.el | ||
| custom-tests.el | ||
| dabbrev-tests.el | ||
| delim-col-tests.el | ||
| descr-text-tests.el | ||
| desktop-tests.el | ||
| dired-aux-tests.el | ||
| dired-tests.el | ||
| dired-x-tests.el | ||
| dnd-tests.el | ||
| dom-tests.el | ||
| edmacro-tests.el | ||
| electric-tests.el | ||
| elide-head-tests.el | ||
| env-tests.el | ||
| epg-config-tests.el | ||
| epg-tests.el | ||
| faces-tests.el | ||
| ffap-tests.el | ||
| filenotify-tests.el | ||
| files-tests.el | ||
| files-x-tests.el | ||
| find-cmd-tests.el | ||
| font-lock-tests.el | ||
| format-spec-tests.el | ||
| help-fns-tests.el | ||
| help-mode-tests.el | ||
| help-tests.el | ||
| hfy-cmap-tests.el | ||
| hi-lock-tests.el | ||
| hl-line-tests.el | ||
| htmlfontify-tests.el | ||
| ibuffer-tests.el | ||
| ido-tests.el | ||
| image-file-tests.el | ||
| image-tests.el | ||
| imenu-tests.el | ||
| info-tests.el | ||
| info-xref-tests.el | ||
| isearch-tests.el | ||
| jit-lock-tests.el | ||
| json-tests.el | ||
| jsonrpc-tests.el | ||
| kmacro-tests.el | ||
| loadhist-tests.el | ||
| lpr-tests.el | ||
| ls-lisp-tests.el | ||
| man-tests.el | ||
| md4-tests.el | ||
| minibuffer-tests.el | ||
| misc-tests.el | ||
| mouse-tests.el | ||
| mwheel-tests.el | ||
| newcomment-tests.el | ||
| obarray-tests.el | ||
| paren-tests.el | ||
| password-cache-tests.el | ||
| pcmpl-linux-tests.el | ||
| pcomplete-tests.el | ||
| proced-tests.el | ||
| ps-print-tests.el | ||
| register-tests.el | ||
| repeat-tests.el | ||
| replace-tests.el | ||
| rot13-tests.el | ||
| saveplace-tests.el | ||
| scroll-lock-tests.el | ||
| server-tests.el | ||
| ses-tests.el | ||
| shadowfile-tests.el | ||
| shell-tests.el | ||
| simple-tests.el | ||
| sort-tests.el | ||
| soundex-tests.el | ||
| sqlite-tests.el | ||
| startup-tests.el | ||
| subr-tests.el | ||
| tab-bar-tests.el | ||
| tabify-tests.el | ||
| tar-mode-tests.el | ||
| tempo-tests.el | ||
| term-tests.el | ||
| thingatpt-tests.el | ||
| thread-tests.el | ||
| time-stamp-tests.el | ||
| time-tests.el | ||
| timezone-tests.el | ||
| uniquify-tests.el | ||
| version-tests.el | ||
| wdired-tests.el | ||
| whitespace-tests.el | ||
| wid-edit-tests.el | ||
| x-dnd-tests.el | ||
| xdg-tests.el | ||
| xml-tests.el | ||
| xt-mouse-tests.el | ||
| yank-media-tests.el | ||