diff options
| author | F. Jason Park | 2023-10-02 22:59:22 -0700 |
|---|---|---|
| committer | F. Jason Park | 2023-10-13 07:47:00 -0700 |
| commit | 1950ddebacb73fdc17ebec4da24d74b628c3e0ae (patch) | |
| tree | 8d80dea1c389a0f0dedd3915d87b4b5bf804d225 | |
| parent | d46c016fbd09cbce9ef23fe2b49d4fb5fc3b2b16 (diff) | |
| download | emacs-1950ddebacb73fdc17ebec4da24d74b628c3e0ae.tar.gz emacs-1950ddebacb73fdc17ebec4da24d74b628c3e0ae.zip | |
Allow spoofing process marker in erc-display-line-1
* lisp/erc/erc.el (erc--insert-marker): New internal variable for
overriding `erc-insert-marker' when displaying messages at a
non-default location in the buffer.
(erc-display-line-1): Favor `erc--insert-marker' over
`erc-insert-marker' when non-nil.
; * test/lisp/erc/resources/base/assoc/multi-net/barnet.eld: Timeouts.
; * test/lisp/erc/resources/base/assoc/multi-net/foonet.eld: Timeouts.
; * test/lisp/erc/resources/base/netid/bouncer/barnet-drop.eld: Timeouts.
; * test/lisp/erc/resources/base/netid/bouncer/foonet-drop.eld: Timeouts.
; * test/lisp/erc/resources/erc-d/resources/dynamic-foonet.eld: Timeouts.
; * test/lisp/erc/resources/sasl/scram-sha-1.eld: Timeouts.
; * test/lisp/erc/resources/sasl/scram-sha-256.eld: Timeouts.
8 files changed, 27 insertions, 21 deletions
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 87abe2a133b..79b4544a3e4 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el | |||
| @@ -2925,6 +2925,9 @@ this option to nil." | |||
| 2925 | (delete-region (point) (1- erc-input-marker)))) | 2925 | (delete-region (point) (1- erc-input-marker)))) |
| 2926 | (run-hooks 'erc--refresh-prompt-hook))) | 2926 | (run-hooks 'erc--refresh-prompt-hook))) |
| 2927 | 2927 | ||
| 2928 | (defvar erc--insert-marker nil | ||
| 2929 | "Internal override for `erc-insert-marker'.") | ||
| 2930 | |||
| 2928 | (defun erc-display-line-1 (string buffer) | 2931 | (defun erc-display-line-1 (string buffer) |
| 2929 | "Display STRING in `erc-mode' BUFFER. | 2932 | "Display STRING in `erc-mode' BUFFER. |
| 2930 | Auxiliary function used in `erc-display-line'. The line gets filtered to | 2933 | Auxiliary function used in `erc-display-line'. The line gets filtered to |
| @@ -2948,6 +2951,8 @@ If STRING is nil, the function does nothing." | |||
| 2948 | (format "%s" buffer))) | 2951 | (format "%s" buffer))) |
| 2949 | (setq erc-insert-this t) | 2952 | (setq erc-insert-this t) |
| 2950 | (run-hook-with-args 'erc-insert-pre-hook string) | 2953 | (run-hook-with-args 'erc-insert-pre-hook string) |
| 2954 | (setq insert-position (marker-position (or erc--insert-marker | ||
| 2955 | erc-insert-marker))) | ||
| 2951 | (if (null erc-insert-this) | 2956 | (if (null erc-insert-this) |
| 2952 | ;; Leave erc-insert-this set to t as much as possible. Fran | 2957 | ;; Leave erc-insert-this set to t as much as possible. Fran |
| 2953 | ;; Litterio <franl> has seen erc-insert-this set to nil while | 2958 | ;; Litterio <franl> has seen erc-insert-this set to nil while |
| @@ -2970,7 +2975,8 @@ If STRING is nil, the function does nothing." | |||
| 2970 | '(erc-parsed nil)))) | 2975 | '(erc-parsed nil)))) |
| 2971 | (erc--refresh-prompt))))) | 2976 | (erc--refresh-prompt))))) |
| 2972 | (run-hooks 'erc-insert-done-hook) | 2977 | (run-hooks 'erc-insert-done-hook) |
| 2973 | (erc-update-undo-list (- (or (marker-position erc-insert-marker) | 2978 | (erc-update-undo-list (- (or (marker-position (or erc--insert-marker |
| 2979 | erc-insert-marker)) | ||
| 2974 | (point-max)) | 2980 | (point-max)) |
| 2975 | insert-position)))))) | 2981 | insert-position)))))) |
| 2976 | 2982 | ||
diff --git a/test/lisp/erc/resources/base/assoc/multi-net/barnet.eld b/test/lisp/erc/resources/base/assoc/multi-net/barnet.eld index c62a22a11c7..4c2b1d61e24 100644 --- a/test/lisp/erc/resources/base/assoc/multi-net/barnet.eld +++ b/test/lisp/erc/resources/base/assoc/multi-net/barnet.eld | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;; -*- mode: lisp-data; -*- | 1 | ;; -*- mode: lisp-data; -*- |
| 2 | ((pass 1 "PASS :changeme")) | 2 | ((pass 10 "PASS :changeme")) |
| 3 | ((nick 1 "NICK tester")) | 3 | ((nick 10 "NICK tester")) |
| 4 | ((user 1 "USER user 0 * :tester") | 4 | ((user 10 "USER user 0 * :tester") |
| 5 | (0 ":irc.barnet.org 001 tester :Welcome to the barnet IRC Network tester") | 5 | (0 ":irc.barnet.org 001 tester :Welcome to the barnet IRC Network tester") |
| 6 | (0 ":irc.barnet.org 002 tester :Your host is irc.barnet.org, running version oragono-2.6.0-7481bf0385b95b16") | 6 | (0 ":irc.barnet.org 002 tester :Your host is irc.barnet.org, running version oragono-2.6.0-7481bf0385b95b16") |
| 7 | (0 ":irc.barnet.org 003 tester :This server was created Tue, 04 May 2021 05:06:19 UTC") | 7 | (0 ":irc.barnet.org 003 tester :This server was created Tue, 04 May 2021 05:06:19 UTC") |
| @@ -18,16 +18,16 @@ | |||
| 18 | (0 ":irc.barnet.org 266 tester 3 3 :Current global users 3, max 3") | 18 | (0 ":irc.barnet.org 266 tester 3 3 :Current global users 3, max 3") |
| 19 | (0 ":irc.barnet.org 422 tester :MOTD File is missing")) | 19 | (0 ":irc.barnet.org 422 tester :MOTD File is missing")) |
| 20 | 20 | ||
| 21 | ((mode-user 8 "MODE tester +i") | 21 | ((mode-user 10 "MODE tester +i") |
| 22 | (0 ":irc.barnet.org 221 tester +i") | 22 | (0 ":irc.barnet.org 221 tester +i") |
| 23 | (0 ":irc.barnet.org NOTICE tester :This server is in debug mode and is logging all user I/O. If you do not wish for everything you send to be readable by the server owner(s), please disconnect.")) | 23 | (0 ":irc.barnet.org NOTICE tester :This server is in debug mode and is logging all user I/O. If you do not wish for everything you send to be readable by the server owner(s), please disconnect.")) |
| 24 | 24 | ||
| 25 | ((join 2 "JOIN #chan") | 25 | ((join 10 "JOIN #chan") |
| 26 | (0 ":tester!~u@jnu48g2wrycbw.irc JOIN #chan") | 26 | (0 ":tester!~u@jnu48g2wrycbw.irc JOIN #chan") |
| 27 | (0 ":irc.barnet.org 353 tester = #chan :@mike joe tester") | 27 | (0 ":irc.barnet.org 353 tester = #chan :@mike joe tester") |
| 28 | (0 ":irc.barnet.org 366 tester #chan :End of NAMES list")) | 28 | (0 ":irc.barnet.org 366 tester #chan :End of NAMES list")) |
| 29 | 29 | ||
| 30 | ((mode 2 "MODE #chan") | 30 | ((mode 10 "MODE #chan") |
| 31 | (0 ":irc.barnet.org 324 tester #chan +nt") | 31 | (0 ":irc.barnet.org 324 tester #chan +nt") |
| 32 | (0 ":irc.barnet.org 329 tester #chan 1620104779") | 32 | (0 ":irc.barnet.org 329 tester #chan 1620104779") |
| 33 | (0.1 ":mike!~u@kd7gmjbnbkn8c.irc PRIVMSG #chan :tester, welcome!") | 33 | (0.1 ":mike!~u@kd7gmjbnbkn8c.irc PRIVMSG #chan :tester, welcome!") |
diff --git a/test/lisp/erc/resources/base/assoc/multi-net/foonet.eld b/test/lisp/erc/resources/base/assoc/multi-net/foonet.eld index f30b7deca11..bfa324642ce 100644 --- a/test/lisp/erc/resources/base/assoc/multi-net/foonet.eld +++ b/test/lisp/erc/resources/base/assoc/multi-net/foonet.eld | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;; -*- mode: lisp-data; -*- | 1 | ;; -*- mode: lisp-data; -*- |
| 2 | ((pass 1 "PASS :changeme")) | 2 | ((pass 10 "PASS :changeme")) |
| 3 | ((nick 1 "NICK tester")) | 3 | ((nick 10 "NICK tester")) |
| 4 | ((user 1 "USER user 0 * :tester") | 4 | ((user 10 "USER user 0 * :tester") |
| 5 | (0 ":irc.foonet.org 001 tester :Welcome to the foonet IRC Network tester") | 5 | (0 ":irc.foonet.org 001 tester :Welcome to the foonet IRC Network tester") |
| 6 | (0 ":irc.foonet.org 002 tester :Your host is irc.foonet.org, running version oragono-2.6.0-7481bf0385b95b16") | 6 | (0 ":irc.foonet.org 002 tester :Your host is irc.foonet.org, running version oragono-2.6.0-7481bf0385b95b16") |
| 7 | (0 ":irc.foonet.org 003 tester :This server was created Tue, 04 May 2021 05:06:18 UTC") | 7 | (0 ":irc.foonet.org 003 tester :This server was created Tue, 04 May 2021 05:06:18 UTC") |
| @@ -18,16 +18,16 @@ | |||
| 18 | (0 ":irc.foonet.org 266 tester 3 3 :Current global users 3, max 3") | 18 | (0 ":irc.foonet.org 266 tester 3 3 :Current global users 3, max 3") |
| 19 | (0 ":irc.foonet.org 422 tester :MOTD File is missing")) | 19 | (0 ":irc.foonet.org 422 tester :MOTD File is missing")) |
| 20 | 20 | ||
| 21 | ((mode-user 8 "MODE tester +i") | 21 | ((mode-user 10 "MODE tester +i") |
| 22 | (0 ":irc.foonet.org 221 tester +i") | 22 | (0 ":irc.foonet.org 221 tester +i") |
| 23 | (0 ":irc.foonet.org NOTICE tester :This server is in debug mode and is logging all user I/O. If you do not wish for everything you send to be readable by the server owner(s), please disconnect.")) | 23 | (0 ":irc.foonet.org NOTICE tester :This server is in debug mode and is logging all user I/O. If you do not wish for everything you send to be readable by the server owner(s), please disconnect.")) |
| 24 | 24 | ||
| 25 | ((join 2 "JOIN #chan") | 25 | ((join 10 "JOIN #chan") |
| 26 | (0 ":tester!~u@9g6b728983yd2.irc JOIN #chan") | 26 | (0 ":tester!~u@9g6b728983yd2.irc JOIN #chan") |
| 27 | (0 ":irc.foonet.org 353 tester = #chan :alice tester @bob") | 27 | (0 ":irc.foonet.org 353 tester = #chan :alice tester @bob") |
| 28 | (0 ":irc.foonet.org 366 tester #chan :End of NAMES list")) | 28 | (0 ":irc.foonet.org 366 tester #chan :End of NAMES list")) |
| 29 | 29 | ||
| 30 | ((mode 2 "MODE #chan") | 30 | ((mode 10 "MODE #chan") |
| 31 | (0 ":irc.foonet.org 324 tester #chan +nt") | 31 | (0 ":irc.foonet.org 324 tester #chan +nt") |
| 32 | (0 ":irc.foonet.org 329 tester #chan 1620104779") | 32 | (0 ":irc.foonet.org 329 tester #chan 1620104779") |
| 33 | (0.1 ":bob!~u@rz2v467q4rwhy.irc PRIVMSG #chan :tester, welcome!") | 33 | (0.1 ":bob!~u@rz2v467q4rwhy.irc PRIVMSG #chan :tester, welcome!") |
diff --git a/test/lisp/erc/resources/base/netid/bouncer/barnet-drop.eld b/test/lisp/erc/resources/base/netid/bouncer/barnet-drop.eld index 686a47f68a3..04959954c4f 100644 --- a/test/lisp/erc/resources/base/netid/bouncer/barnet-drop.eld +++ b/test/lisp/erc/resources/base/netid/bouncer/barnet-drop.eld | |||
| @@ -22,14 +22,14 @@ | |||
| 22 | (0 ":irc.znc.in 306 tester :You have been marked as being away") | 22 | (0 ":irc.znc.in 306 tester :You have been marked as being away") |
| 23 | (0 ":irc.barnet.org 305 tester :You are no longer marked as being away")) | 23 | (0 ":irc.barnet.org 305 tester :You are no longer marked as being away")) |
| 24 | 24 | ||
| 25 | ((join 1 "JOIN #chan") | 25 | ((join 10 "JOIN #chan") |
| 26 | (0 ":tester!~u@awyxgybtkx7uq.irc JOIN #chan") | 26 | (0 ":tester!~u@awyxgybtkx7uq.irc JOIN #chan") |
| 27 | (0 ":irc.barnet.org 353 tester = #chan :@joe mike tester") | 27 | (0 ":irc.barnet.org 353 tester = #chan :@joe mike tester") |
| 28 | (0 ":irc.barnet.org 366 tester #chan :End of NAMES list") | 28 | (0 ":irc.barnet.org 366 tester #chan :End of NAMES list") |
| 29 | (0.1 ":joe!~u@awyxgybtkx7uq.irc PRIVMSG #chan :tester, welcome!") | 29 | (0.1 ":joe!~u@awyxgybtkx7uq.irc PRIVMSG #chan :tester, welcome!") |
| 30 | (0 ":mike!~u@awyxgybtkx7uq.irc PRIVMSG #chan :tester, welcome!")) | 30 | (0 ":mike!~u@awyxgybtkx7uq.irc PRIVMSG #chan :tester, welcome!")) |
| 31 | 31 | ||
| 32 | ((mode 1 "MODE #chan") | 32 | ((mode 10 "MODE #chan") |
| 33 | (0 ":irc.barnet.org 324 tester #chan +nt") | 33 | (0 ":irc.barnet.org 324 tester #chan +nt") |
| 34 | (0 ":irc.barnet.org 329 tester #chan 1620805269") | 34 | (0 ":irc.barnet.org 329 tester #chan 1620805269") |
| 35 | (0.1 ":mike!~u@awyxgybtkx7uq.irc PRIVMSG #chan :joe: But you have outfaced them all.") | 35 | (0.1 ":mike!~u@awyxgybtkx7uq.irc PRIVMSG #chan :joe: But you have outfaced them all.") |
diff --git a/test/lisp/erc/resources/base/netid/bouncer/foonet-drop.eld b/test/lisp/erc/resources/base/netid/bouncer/foonet-drop.eld index b99621cc311..d0445cd1dd5 100644 --- a/test/lisp/erc/resources/base/netid/bouncer/foonet-drop.eld +++ b/test/lisp/erc/resources/base/netid/bouncer/foonet-drop.eld | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;; -*- mode: lisp-data; -*- | 1 | ;; -*- mode: lisp-data; -*- |
| 2 | ((pass 1 "PASS :foonet:changeme")) | 2 | ((pass 10 "PASS :foonet:changeme")) |
| 3 | ((nick 1 "NICK tester")) | 3 | ((nick 1 "NICK tester")) |
| 4 | ((user 1 "USER user 0 * :tester") | 4 | ((user 1 "USER user 0 * :tester") |
| 5 | (0 ":irc.foonet.org 001 tester :Welcome to the foonet IRC Network tester") | 5 | (0 ":irc.foonet.org 001 tester :Welcome to the foonet IRC Network tester") |
| @@ -22,14 +22,14 @@ | |||
| 22 | (0 ":irc.znc.in 306 tester :You have been marked as being away") | 22 | (0 ":irc.znc.in 306 tester :You have been marked as being away") |
| 23 | (0 ":irc.foonet.org 305 tester :You are no longer marked as being away")) | 23 | (0 ":irc.foonet.org 305 tester :You are no longer marked as being away")) |
| 24 | 24 | ||
| 25 | ((join 1 "JOIN #chan") | 25 | ((join 10 "JOIN #chan") |
| 26 | (0 ":tester!~u@ertp7idh9jtgi.irc JOIN #chan") | 26 | (0 ":tester!~u@ertp7idh9jtgi.irc JOIN #chan") |
| 27 | (0 ":irc.foonet.org 353 tester = #chan :@alice bob tester") | 27 | (0 ":irc.foonet.org 353 tester = #chan :@alice bob tester") |
| 28 | (0 ":irc.foonet.org 366 tester #chan :End of NAMES list") | 28 | (0 ":irc.foonet.org 366 tester #chan :End of NAMES list") |
| 29 | (0.1 ":alice!~u@ertp7idh9jtgi.irc PRIVMSG #chan :tester, welcome!") | 29 | (0.1 ":alice!~u@ertp7idh9jtgi.irc PRIVMSG #chan :tester, welcome!") |
| 30 | (0 ":bob!~u@ertp7idh9jtgi.irc PRIVMSG #chan :tester, welcome!")) | 30 | (0 ":bob!~u@ertp7idh9jtgi.irc PRIVMSG #chan :tester, welcome!")) |
| 31 | 31 | ||
| 32 | ((mode 1 "MODE #chan") | 32 | ((mode 10 "MODE #chan") |
| 33 | (0 ":irc.foonet.org 324 tester #chan +nt") | 33 | (0 ":irc.foonet.org 324 tester #chan +nt") |
| 34 | (0 ":irc.foonet.org 329 tester #chan 1620805271") | 34 | (0 ":irc.foonet.org 329 tester #chan 1620805271") |
| 35 | (0.1 ":alice!~u@ertp7idh9jtgi.irc PRIVMSG #chan :bob: He cannot be heard of. Out of doubt he is transported.") | 35 | (0.1 ":alice!~u@ertp7idh9jtgi.irc PRIVMSG #chan :bob: He cannot be heard of. Out of doubt he is transported.") |
diff --git a/test/lisp/erc/resources/erc-d/resources/dynamic-foonet.eld b/test/lisp/erc/resources/erc-d/resources/dynamic-foonet.eld index 4855c178861..e5532980644 100644 --- a/test/lisp/erc/resources/erc-d/resources/dynamic-foonet.eld +++ b/test/lisp/erc/resources/erc-d/resources/dynamic-foonet.eld | |||
| @@ -24,7 +24,7 @@ | |||
| 24 | (0 ":irc.foonet.org 353 alice = #chan :+alice!~alice@example.com @%+bob!~bob@example.org") | 24 | (0 ":irc.foonet.org 353 alice = #chan :+alice!~alice@example.com @%+bob!~bob@example.org") |
| 25 | (0 ":irc.foonet.org 366 alice #chan :End of NAMES list")) | 25 | (0 ":irc.foonet.org 366 alice #chan :End of NAMES list")) |
| 26 | 26 | ||
| 27 | ((mode 2 "MODE #chan") | 27 | ((mode 3 "MODE #chan") |
| 28 | (0 ":irc.foonet.org 324 tester #chan +nt") | 28 | (0 ":irc.foonet.org 324 tester #chan +nt") |
| 29 | (0 ":irc.foonet.org 329 tester #chan 1620805269") | 29 | (0 ":irc.foonet.org 329 tester #chan 1620805269") |
| 30 | (0.1 ":alice!~u@awyxgybtkx7uq.irc PRIVMSG #chan :bob: Yes, a dozen; and as many to the vantage, as would store the world they played for.") | 30 | (0.1 ":alice!~u@awyxgybtkx7uq.irc PRIVMSG #chan :bob: Yes, a dozen; and as many to the vantage, as would store the world they played for.") |
diff --git a/test/lisp/erc/resources/sasl/scram-sha-1.eld b/test/lisp/erc/resources/sasl/scram-sha-1.eld index 49980e9e12a..d6adf529c5d 100644 --- a/test/lisp/erc/resources/sasl/scram-sha-1.eld +++ b/test/lisp/erc/resources/sasl/scram-sha-1.eld | |||
| @@ -42,6 +42,6 @@ | |||
| 42 | (0 ":jaguar.test 372 jilles : ~~ or rkpryyrag gb rnpu bgure ~~") | 42 | (0 ":jaguar.test 372 jilles : ~~ or rkpryyrag gb rnpu bgure ~~") |
| 43 | (0 ":jaguar.test 376 jilles :End of message of the day.")) | 43 | (0 ":jaguar.test 376 jilles :End of message of the day.")) |
| 44 | 44 | ||
| 45 | ((mode-user 1.2 "MODE jilles +i") | 45 | ((mode-user 10 "MODE jilles +i") |
| 46 | (0 ":jilles!~jilles@127.0.0.1 MODE jilles :+ri") | 46 | (0 ":jilles!~jilles@127.0.0.1 MODE jilles :+ri") |
| 47 | (0 ":jaguar.test 306 jilles :You have been marked as being away")) | 47 | (0 ":jaguar.test 306 jilles :You have been marked as being away")) |
diff --git a/test/lisp/erc/resources/sasl/scram-sha-256.eld b/test/lisp/erc/resources/sasl/scram-sha-256.eld index 74de9a23ecf..8b16f7109cf 100644 --- a/test/lisp/erc/resources/sasl/scram-sha-256.eld +++ b/test/lisp/erc/resources/sasl/scram-sha-256.eld | |||
| @@ -42,6 +42,6 @@ | |||
| 42 | (0 ":jaguar.test 372 jilles : ~~ or rkpryyrag gb rnpu bgure ~~") | 42 | (0 ":jaguar.test 372 jilles : ~~ or rkpryyrag gb rnpu bgure ~~") |
| 43 | (0 ":jaguar.test 376 jilles :End of message of the day.")) | 43 | (0 ":jaguar.test 376 jilles :End of message of the day.")) |
| 44 | 44 | ||
| 45 | ((mode-user 1.2 "MODE jilles +i") | 45 | ((mode-user 10 "MODE jilles +i") |
| 46 | (0 ":jilles!~jilles@127.0.0.1 MODE jilles :+ri") | 46 | (0 ":jilles!~jilles@127.0.0.1 MODE jilles :+ri") |
| 47 | (0 ":jaguar.test 306 jilles :You have been marked as being away")) | 47 | (0 ":jaguar.test 306 jilles :You have been marked as being away")) |