aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorF. Jason Park2023-10-02 22:59:22 -0700
committerF. Jason Park2023-10-13 07:47:00 -0700
commit1950ddebacb73fdc17ebec4da24d74b628c3e0ae (patch)
tree8d80dea1c389a0f0dedd3915d87b4b5bf804d225
parentd46c016fbd09cbce9ef23fe2b49d4fb5fc3b2b16 (diff)
downloademacs-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.
-rw-r--r--lisp/erc/erc.el8
-rw-r--r--test/lisp/erc/resources/base/assoc/multi-net/barnet.eld12
-rw-r--r--test/lisp/erc/resources/base/assoc/multi-net/foonet.eld12
-rw-r--r--test/lisp/erc/resources/base/netid/bouncer/barnet-drop.eld4
-rw-r--r--test/lisp/erc/resources/base/netid/bouncer/foonet-drop.eld6
-rw-r--r--test/lisp/erc/resources/erc-d/resources/dynamic-foonet.eld2
-rw-r--r--test/lisp/erc/resources/sasl/scram-sha-1.eld2
-rw-r--r--test/lisp/erc/resources/sasl/scram-sha-256.eld2
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.
2930Auxiliary function used in `erc-display-line'. The line gets filtered to 2933Auxiliary 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"))