× status-[0]-prompt
line 22 on_black,bright_white :start)=====================================================================([0]§§
insert prompt-empty
-× status-[0]-1-prompt
-line 22 on_black,bright_white :start)===================================================================([0] 1§§
+× status-[0]-1-(2:7)-prompt
+line 22 on_black,bright_white :start)=============================================================([0] 1 (2:7)§§
insert prompt-empty
-× status-[0]-1:2-prompt
-line 22 on_black,bright_white :start)===============================================================([0] (1:2)§§
+× status-[0]-1:2-(2:7)-prompt
+line 22 on_black,bright_white :start)=========================================================([0] (1:2) (2:7)§§
insert prompt-empty
-× status-0-[1:2]-prompt
-line 22 on_black,bright_white foo.bar.baz:debug)====================================================(0 [(1:2)]§§
+× status-0-[1:2]-(2:7)-prompt
+line 22 on_black,bright_white foo.bar.baz:debug)==============================================(0 [(1:2)] (2:7)§§
insert prompt-empty
-× status-[0]-1:4-prompt
-line 22 on_black,bright_white :start)===============================================================([0] (1:4)§§
+× status-[0]-1:4-(2:7)-prompt
+line 22 on_black,bright_white :start)=========================================================([0] (1:4) (2:7)§§
insert prompt-empty
-× status-0-[1:4]-prompt
-line 22 on_black,bright_white foo.bar.baz:debug)====================================================(0 [(1:4)]§§
+× status-0-[1:4]-(2:7)-prompt
+line 22 on_black,bright_white foo.bar.baz:debug)==============================================(0 [(1:4)] (2:7)§§
insert prompt-empty
-× status-[0]-1:6-prompt
-line 22 on_black,bright_white :start)===============================================================([0] (1:6)§§
+× status-[0]-1:6-(2:7)-prompt
+line 22 on_black,bright_white :start)=========================================================([0] (1:6) (2:7)§§
insert prompt-empty
-× status-0-[1:6]-prompt
-line 22 on_black,bright_white foo.bar.baz:debug)====================================================(0 [(1:6)]§§
+× status-0-[1:6]-(2:7)-prompt
+line 22 on_black,bright_white foo.bar.baz:debug)==============================================(0 [(1:6)] (2:7)§§
insert prompt-empty
-× status-0-[1:7]-prompt
-line 22 on_black,bright_white foo.bar.baz:debug)====================================================(0 [(1:7)]§§
+× status-0-[1:7]-(2:7)-prompt
+line 22 on_black,bright_white foo.bar.baz:debug)==============================================(0 [(1:7)] (2:7)§§
insert prompt-empty
-× status-0-[1:18]-prompt
-line 22 on_black,bright_white foo.bar.baz:debug)===================================================(0 [(1:18)]§§
+× status-0-[1:18]-(2:7)-prompt
+line 22 on_black,bright_white foo.bar.baz:debug)=============================================(0 [(1:18)] (2:7)§§
insert prompt-empty
-× status-[0]-1:29-prompt
-line 22 on_black,bright_white :start)==============================================================([0] (1:29)§§
+× status-[0]-1:29-(2:7)-prompt
+line 22 on_black,bright_white :start)========================================================([0] (1:29) (2:7)§§
insert prompt-empty
-× status-0-[1:29]-prompt
-line 22 on_black,bright_white foo.bar.baz:debug)===================================================(0 [(1:29)]§§
+× status-0-[1:29]-(2:7)-prompt
+line 22 on_black,bright_white foo.bar.baz:debug)=============================================(0 [(1:29)] (2:7)§§
insert prompt-empty
-× status-[0]-1:32-prompt
-line 22 on_black,bright_white :start)==============================================================([0] (1:32)§§
+× status-[0]-1:32-(2:7)-prompt
+line 22 on_black,bright_white :start)========================================================([0] (1:32) (2:7)§§
insert prompt-empty
-× status-0-[1]-prompt
-line 22 on_black,bright_white foo.bar.baz:debug)========================================================(0 [1]§§
+× status-0-[1]-(2:7)-prompt
+line 22 on_black,bright_white foo.bar.baz:debug)==================================================(0 [1] (2:7)§§
insert prompt-empty
× status-[0:1]-prompt
line 22 on_black,bright_white :start)=================================================================([(0:1)]§§
insert prompt-empty
-× status-[0:1]-1-prompt
-line 22 on_black,bright_white :start)===============================================================([(0:1)] 1§§
+× status-[0:1]-1-(2:7)-prompt
+line 22 on_black,bright_white :start)=========================================================([(0:1)] 1 (2:7)§§
insert prompt-empty
-× status-0:1-[1]-prompt
-line 22 on_black,bright_white foo.bar.baz:debug)====================================================((0:1) [1]§§
+× status-0:1-[1]-(2:7)-prompt
+line 22 on_black,bright_white foo.bar.baz:debug)==============================================((0:1) [1] (2:7)§§
insert prompt-empty
-× status-[0:1]-1:19-prompt
-line 22 on_black,bright_white :start)==========================================================([(0:1)] (1:19)§§
+× status-[0:1]-1:19-(2:7)-prompt
+line 22 on_black,bright_white :start)====================================================([(0:1)] (1:19) (2:7)§§
insert prompt-empty
× status-[0:3]-prompt
line 22 on_black,bright_white :start)=================================================================([(0:3)]§§
line 28 on_black,bright_cyan # §§:§§:§§ windows available via /window:§§
line 29 on_black,bright_cyan # §§:§§:§§ 0) :start§§
line 30 on_black,bright_cyan # §§:§§:§§ 1) foo.bar.baz:debug§§
+line 31 on_black,bright_cyan # §§:§§:§§ 2) foo.bar.baz:server§§
× history_1
line 0 on_black,bright_white 20§§-§§-§§ §§
log 1 $ realname set to: [bar]
log 1 $ port set to: [6697]
log 1 $ connection_state set to: [connecting]
+log 2 $ attempting connection to foo.bar.baz:6697 identifying with …
+log 2 $ - nickname: foo
+log 2 $ - realname: bar
+log 2 $ - username: baz
+log 2 $ - no password
log 1 $ connection_state set to: [connected]
-log , $ CONNECTED
+log 2 $ CONNECTED
log 1 > CAP LS :302
log 1 > USER baz 0 * :bar
log 1 > NICK :foo
insert lines-empty :20
insert history_0 :1 +20
insert scrolldown-25
-insert status-[0:1]-1:19-prompt
+insert status-[0:1]-1:19-(2:7)-prompt
# check switch to other window, updates to status line (movement of brackets, clearing of own unread-lines count)
> /window 1
insert lines-empty :3
insert history_1 :19 +3
-insert status-0:1-[1]-prompt
+insert status-0:1-[1]-(2:7)-prompt
# check switch-back to window 0, retaining clearing of window 1's unread-lines count
> /window 0
insert lines-empty :20
insert history_0 :1 +20
insert scrolldown-25
-insert status-[0:1]-1-prompt
+insert status-[0:1]-1-(2:7)-prompt
# check that on full scroll-down, we now have a bookmark above the newest lines not previously scrolled into
> /window.history.scroll down
insert lines-empty :9
insert history_0 :12 +9
insert scrolldown-14
-insert status-[0:1]-1-prompt
+insert status-[0:1]-1-(2:7)-prompt
> /window.history.scroll down
insert history_0 2:23 +0
insert scrolldown-3
-insert status-[0:1]-1-prompt
+insert status-[0:1]-1-(2:7)-prompt
> /window.history.scroll down
insert history_0 7:26 +0
insert bookmark : +19
insert history_0 26:28 +20
-insert status-[0]-1-prompt
+insert status-[0]-1-(2:7)-prompt
# check that scrolling non-bottom bookmark out of sight, then scrolling it back into view again does not by itself move its position in the log history
> /window.history.scroll up
insert lines-empty :3
insert history_0 :18 +3
insert scrolldown-8
-insert status-[0]-1-prompt
+insert status-[0]-1-(2:7)-prompt
> /window.history.scroll down
insert history_0 7:26 +0
insert bookmark : +19
insert history_0 26:28 +20
-insert status-[0]-1-prompt
+insert status-[0]-1-(2:7)-prompt
# check that second switch to new window, previously left on bottom of history, establishes bookmark at bottom of log
> /window 1
insert lines-empty :2
insert history_1 :19 +2
insert bookmark : +21
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
# check second switch-back places bookmark at bottom there too, since the newest lines previously succeeding it have now been read by us
> /window 0
insert history_0 7:28 +0
insert bookmark : +21
-insert status-[0]-1-prompt
+insert status-[0]-1-(2:7)-prompt
# check new lines push bookmark up
> /list
log 0 # windows available via /window:
log 0 # 0) :start
log 0 # 1) foo.bar.baz:debug
-insert history_0 10:28 +0
-insert bookmark : +18
-insert history_0 28:31 +19
-insert status-[0]-1-prompt
+log 0 # 2) foo.bar.baz:server
+insert history_0 11:28 +0
+insert bookmark : +17
+insert history_0 28:32 +18
+insert status-[0]-1-(2:7)-prompt
# check new lines growing in other window, one of which long enough to wrap, to be re-start count in status (with wrapped only as single)
loggedservermsg 0 1 < PING :?
log 1 > PONG :?
loggedservermsg 0 1 < PING :9 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
log 1 > PONG :9 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
-insert history_0 10:28 +0
-insert bookmark : +18
-insert history_0 28:31 +19
-insert status-[0]-1:4-prompt
+insert history_0 11:28 +0
+insert bookmark : +17
+insert history_0 28:32 +18
+insert status-[0]-1:4-(2:7)-prompt
# check that switching to window with new lines, but left scroll-to-bottom, keeps the scroll-to-bottom, keeps bookmark after last line previously seen there
> /window 1
insert history_1 4:19 +0
insert bookmark : +15
insert history_1 19:25 +16
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
### # check that growth below scroll does not by itself re-position bookmark in history
> /window.history.scroll up
insert lines-empty :6
insert history_1 0:15 +6
insert scrolldown-10
-insert status-0-[1:2]-prompt
+insert status-0-[1:2]-(2:7)-prompt
> /window.history.scroll down
insert history_1 5:19 +0
insert bookmark : +14
insert history_1 19:25 +15
insert scrolldown-2
-insert status-0-[1:2]-prompt
+insert status-0-[1:2]-(2:7)-prompt
# check that with new lines left unread, switch away and back into window moves bookmark below newest read line, counts unread lines in status
> /window 0
-insert history_0 10:31 +0
+insert history_0 11:32 +0
insert bookmark : +21
-insert status-[0]-1:2-prompt
+insert status-[0]-1:2-(2:7)-prompt
> /window 1
insert history_1 5:25 +0
insert bookmark : +20
insert scrolldown-2
-insert status-0-[1:2]-prompt
+insert status-0-[1:2]-(2:7)-prompt
# check that growing lines below scroll in other preserves non-bottom bookmark (left in sight on previous window leave)
> /window 0
loggedservermsg 0 1 < PING :bar
log 1 > PONG :bar
-insert history_0 10:31 +0
+insert history_0 11:32 +0
insert bookmark : +21
-insert status-[0]-1:4-prompt
+insert status-[0]-1:4-(2:7)-prompt
> /window 1
insert history_1 5:25 +0
insert bookmark : +20
insert scrolldown-4
-insert status-0-[1:4]-prompt
+insert status-0-[1:4]-(2:7)-prompt
# check same applies when leaving affected window with bookmark out-of-sight
> /window.history.scroll up
insert lines-empty :6
insert history_1 :15 +6
insert scrolldown-12
-insert status-0-[1:4]-prompt
+insert status-0-[1:4]-(2:7)-prompt
> /window 0
loggedservermsg 0 1 < PING :baz
log 1 > PONG :baz
-insert history_0 10:31 +0
+insert history_0 11:32 +0
insert bookmark : +21
-insert status-[0]-1:6-prompt
+insert status-[0]-1:6-(2:7)-prompt
> /window 1
insert lines-empty :6
insert history_1 :15 +6
insert scrolldown-14
-insert status-0-[1:6]-prompt
+insert status-0-[1:6]-(2:7)-prompt
> /window.history.scroll down
insert history_1 5:25 +0
insert bookmark : +20
insert scrolldown-6
-insert status-0-[1:6]-prompt
+insert status-0-[1:6]-(2:7)-prompt
> /window.history.scroll down
insert history_1 10:25 +0
insert bookmark : +15
insert history_1 25:31 +16
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
# check log growth beyond max depth only remarkable after scrolling up to limit
loggedservermsg 0 1 < PING :0
insert history_1 12:25 +0
insert bookmark : +13
insert history_1 25:33 +14
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
> /window.history.scroll up
insert history_1 2:23 +0
insert scrolldown-9
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
> /window.history.scroll up
insert lines-empty :10
insert history_1 1:12 +10
insert scrolldown-19
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
> /window.history.scroll up
insert lines-empty :20
insert history_1 1:2 +20
insert scrolldown-29
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
# check cut-off log growth seen from topmost scroll not affecting scrolldown count, but unread-lines status
loggedservermsg 0 1 < PING :0
insert lines-empty :20
insert history_1 3:4 +20
insert scrolldown-29
-insert status-0-[1:2]-prompt
+insert status-0-[1:2]-(2:7)-prompt
# check unread-lines count potentially growing above max log depth if in other window
> /window 0
-insert history_0 10:31 +0
+insert history_0 11:32 +0
insert bookmark : +21
-insert status-[0]-1:2-prompt
+insert status-[0]-1:2-(2:7)-prompt
loggedservermsg 0 1 < PING :1
log 1 > PONG :1
loggedservermsg 0 1 < PING :2
log 1 > PONG :14
loggedservermsg 0 1 < PING :15
log 1 > PONG :15
-insert history_0 10:31 +0
+insert history_0 11:32 +0
insert bookmark : +21
-insert status-[0]-1:32-prompt
+insert status-[0]-1:32-(2:7)-prompt
# check switching into window scrolled-top with more unread lines than max log depth shrinks former to latter, and scrolling down no bookmark is to be found
> /window 1
insert lines-empty :20
insert history_1 33:34 +20
insert scrolldown-29
-insert status-0-[1:29]-prompt
+insert status-0-[1:29]-(2:7)-prompt
> /window.history.scroll down
insert lines-empty :9
insert history_1 33:45 +9
insert scrolldown-18
-insert status-0-[1:18]-prompt
+insert status-0-[1:18]-(2:7)-prompt
> /window.history.scroll down
insert history_1 35:56 +0
insert scrolldown-7
-insert status-0-[1:7]-prompt
+insert status-0-[1:7]-(2:7)-prompt
> /window.history.scroll down
insert history_1 41:61 +0
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
# check bookmark remains absent with log growing while scrolled to bottom, …
loggedservermsg 0 1 < PING :16
log 1 > PONG :16
insert history_1 43:63 +0
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
# … as well as if further growth happens below scroll
> /window.history.scroll up
insert lines-empty :2
insert history_1 35:54 +2
insert scrolldown-11
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
loggedservermsg 0 1 < PING :17
log 1 > PONG :17
insert lines-empty :4
insert history_1 37:54 +4
insert scrolldown-13
-insert status-0-[1:2]-prompt
+insert status-0-[1:2]-(2:7)-prompt
> /window.history.scroll down
insert history_1 44:65 +0
insert scrolldown-2
-insert status-0-[1:2]-prompt
+insert status-0-[1:2]-(2:7)-prompt
> /window.history.scroll down
insert history_1 45:67 +0
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
# check unread-lines status not growing beyond max log if within active window, and …
> /window.history.scroll up
insert lines-empty :2
insert history_1 37:54 +2
insert scrolldown-11
-insert status-0-[1]-prompt
+insert status-0-[1]-(2:7)-prompt
loggedservermsg 0 1 < PING :18
log 1 > PONG :18
loggedservermsg 0 1 < PING :19
insert lines-empty :20
insert history_1 67:68 +20
insert scrolldown-29
-insert status-0-[1:29]-prompt
+insert status-0-[1:29]-(2:7)-prompt
# … setting bookmark visible after switching back-and-forth
> /window 0
-insert history_0 10:31 +0
+insert history_0 11:32 +0
insert bookmark : +21
-insert status-[0]-1:29-prompt
+insert status-[0]-1:29-(2:7)-prompt
> /window 1
insert lines-empty :19
insert history_1 67:68 +19
insert bookmark : +20
insert scrolldown-29
-insert status-0-[1:29]-prompt
+insert status-0-[1:29]-(2:7)-prompt
> /window.history.scroll down
insert lines-empty :8
insert history_1 67:68 +8
insert bookmark : +9
insert history_1 68:79 +10
insert scrolldown-18
-insert status-0-[1:18]-prompt
+insert status-0-[1:18]-(2:7)-prompt