home · contact · privacy
Remove formatting hints from stripped log lines, move formatting to BaseTui.log.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 28 Oct 2025 18:20:07 +0000 (19:20 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 28 Oct 2025 18:20:07 +0000 (19:20 +0100)
src/ircplom/tui_base.py
src/tests/_timeout_retries.test
src/tests/config.test
src/tests/connect_disconnect_legalities.test
src/tests/error_disconnects.test
src/tests/pingpong.test
src/tests/test.test
src/tests/tui_draw.test
src/tests/tui_line_formattings.test
src/tests/tui_prompt_basics.test

index 2aecdec3086cbc85932d2b3124745269137b717c..fb1fc02b3520b7867e8df266a346f54882fc8b3e 100644 (file)
@@ -253,22 +253,17 @@ class _HistoryWidget(_ScrollableWidget):
         super().__init__(**kwargs)
         self._maxlen_log = maxlen_log
         self._length_to_term = length_to_term
-        self._formatted: list[tuple[int, str]] = []
+        self._wrapped: list[tuple[int, str]] = []
         self._newest_read_history_idx_pos = self._UNSET_IDX_POS
         self._history_offset = 0
         self._history_idx_neg = self._UNSET_IDX_NEG
 
-    def _add_formatted(self, history_idx_pos: int, line: str) -> int:
-        attrs = []
-        for c in line.split(LOG_FMT_SEP, maxsplit=1)[0]:
-            attrs += list(LOG_FMT_ATTRS.get(c, tuple()))
-        formatted_line = FormattingString(line).attrd(*attrs)
-        formatted_lines = FormattingString(formatted_line
-                                           ).wrap(self._sizes.x,
-                                                  self._length_to_term)
-        self._formatted += [(self._history_offset + history_idx_pos, line)
-                            for line in formatted_lines]
-        return len(formatted_lines)
+    def _add_wrapped(self, history_idx_pos: int, line: str) -> int:
+        lines = FormattingString(line).wrap(self._sizes.x,
+                                            self._length_to_term)
+        self._wrapped += [(self._history_offset + history_idx_pos, line)
+                          for line in lines]
+        return len(lines)
 
     @property
     def _len_full_history(self) -> int:
@@ -278,14 +273,14 @@ class _HistoryWidget(_ScrollableWidget):
         super().set_geometry(sizes)
         if self._drawable:
             self._y_pgscroll = self._sizes.y // 2
-            self._formatted.clear()
+            self._wrapped.clear()
             for history_idx_pos, line in enumerate(self._history):
-                self._add_formatted(history_idx_pos, line)
+                self._add_wrapped(history_idx_pos, line)
             # ensure that of the full line identified by ._history_idx_neg,
             # ._wrapped_idx_neg point to the lowest of its wrap parts
             self._wrapped_idx_neg = (
-                self._UNSET_IDX_NEG if (not self._formatted)
-                else (-len(self._formatted)
+                self._UNSET_IDX_NEG if (not self._wrapped)
+                else (-len(self._wrapped)
                       + self._last_wrapped_idx_pos_for_hist_idx_pos(
                           self._len_full_history + max(self._history_idx_neg,
                                                        - self._maxlen_log))))
@@ -297,7 +292,7 @@ class _HistoryWidget(_ScrollableWidget):
         if not self._UNSET_IDX_NEG != self._history_idx_neg >= -1:
             self._history_idx_neg -= 1
         if self._drawable:
-            n_wrapped = self._add_formatted(len(self._history) - 1, to_append)
+            n_wrapped = self._add_wrapped(len(self._history) - 1, to_append)
             if not self._UNSET_IDX_NEG != self._wrapped_idx_neg >= -1:
                 self._wrapped_idx_neg -= n_wrapped
         if len(self._history) > self._maxlen_log:
@@ -306,20 +301,20 @@ class _HistoryWidget(_ScrollableWidget):
             self._history_idx_neg = max(self._history_idx_neg,
                                         -self._maxlen_log)
             wrap_offset = 0
-            for wrap_idx_pos, t in enumerate(self._formatted):
+            for wrap_idx_pos, t in enumerate(self._wrapped):
                 if t[0] == self._history_offset:
                     wrap_offset = wrap_idx_pos
                     break
-            self._formatted = self._formatted[wrap_offset:]
+            self._wrapped = self._wrapped[wrap_offset:]
             self._wrapped_idx_neg = max(self._wrapped_idx_neg,
-                                        -len(self._formatted))
+                                        -len(self._wrapped))
 
     def _draw(self) -> None:
         add_scroll_info = self._wrapped_idx_neg < -1
         start_idx_neg = (self._wrapped_idx_neg
                          - self._sizes.y + 1 + bool(add_scroll_info))
         end_idx_neg = (self._wrapped_idx_neg + 1) if add_scroll_info else None
-        wrapped = self._formatted[start_idx_neg:end_idx_neg]
+        wrapped = self._wrapped[start_idx_neg:end_idx_neg]
         while len(wrapped) < self._sizes.y - bool(add_scroll_info):
             wrapped.insert(0, (self._PADDING_HISTORY_IDX_POS, ''))
         for idx, line in enumerate([lt[1] for lt in wrapped]):
@@ -335,17 +330,17 @@ class _HistoryWidget(_ScrollableWidget):
     def bookmark(self) -> None:
         'Store next idx to what most recent line we have (been) scrolled.'
         bookmark = (self._BOOKMARK_HISTORY_IDX_POS, '-' * self._sizes.x)
-        if bookmark in self._formatted:
+        if bookmark in self._wrapped:
             bookmark_idx_neg\
-                = self._formatted.index(bookmark) - len(self._formatted)
-            del self._formatted[bookmark_idx_neg]
+                = self._wrapped.index(bookmark) - len(self._wrapped)
+            del self._wrapped[bookmark_idx_neg]
             if bookmark_idx_neg > self._wrapped_idx_neg:
                 self._wrapped_idx_neg += 1
         if self._newest_read_history_idx_pos < self._history_offset:
             return
-        if not self._formatted:
+        if not self._wrapped:
             return
-        self._formatted.insert(self._bookmark_wrapped_idx_pos, bookmark)
+        self._wrapped.insert(self._bookmark_wrapped_idx_pos, bookmark)
         self._wrapped_idx_neg -= int(self._bookmark_wrapped_idx_neg
                                      > self._wrapped_idx_neg)
 
@@ -356,10 +351,10 @@ class _HistoryWidget(_ScrollableWidget):
 
     @property
     def _bookmark_wrapped_idx_neg(self) -> int:
-        return self._bookmark_wrapped_idx_pos - len(self._formatted)
+        return self._bookmark_wrapped_idx_pos - len(self._wrapped)
 
     def _last_wrapped_idx_pos_for_hist_idx_pos(self, hist_idx_pos: int) -> int:
-        return [idx for idx, t in enumerate(self._formatted)
+        return [idx for idx, t in enumerate(self._wrapped)
                 if t[0] == hist_idx_pos][-1]
 
     @property
@@ -376,10 +371,10 @@ class _HistoryWidget(_ScrollableWidget):
 
     def _scroll(self, up: bool = True) -> None:
         super()._scroll(up)
-        if self._drawable and self._formatted:
-            if up and len(self._formatted) > 2:
+        if self._drawable and self._wrapped:
+            if up and len(self._wrapped) > 2:
                 self._wrapped_idx_neg = max(
-                        -len(self._formatted),
+                        -len(self._wrapped),
                         self._wrapped_idx_neg - self._y_pgscroll)
             else:
                 self._wrapped_idx_neg = min(
@@ -387,7 +382,7 @@ class _HistoryWidget(_ScrollableWidget):
             idx = self._wrapped_idx_neg - int(
                     self._wrapped_idx_neg == self._bookmark_wrapped_idx_neg)
             self._history_idx_neg = (-self._len_full_history
-                                     + max(0, self._formatted[idx][0]))
+                                     + max(0, self._wrapped[idx][0]))
 
 
 class PromptWidget(_ScrollableWidget):
@@ -682,9 +677,12 @@ class BaseTui(QueueMixin):
         prefix = kwargs.get('prefix', _LOG_PREFIX_DEFAULT)
         now = str(datetime.now())
         today, time = now[:10], now[11:19]
-        for t in (('alert', LOG_FMT_ALERT), ('highlight', LOG_FMT_HIGHLIGHT)):
-            prefix += t[1] if kwargs.get(t[0], False) else LOG_FMT_NONE
         msg = f'{prefix}{LOG_FMT_SEP}{time} {msg}'
+        msg_attrs: list[str] = list(LOG_FMT_ATTRS.get(prefix[0], tuple()))
+        for t in (('alert', LOG_FMT_ALERT), ('highlight', LOG_FMT_HIGHLIGHT)):
+            if kwargs.get(t[0], False):
+                msg_attrs += list(LOG_FMT_ATTRS.get(t[1], tuple()))
+        msg = FormattingString(msg).attrd(*msg_attrs)
         affected_win_indices = []
         for win in self._log_target_wins(**kwargs):
             affected_win_indices += [win.idx]
index 1ae4b44a72c69661d3efe8d8fa688b58ab7362e9..5148319c0e6b906ef8138f208523bb7356281895 100644 (file)
@@ -1,45 +1,45 @@
 × isupport-clear
-log 1 $.. isupport cleared
-log 1 $.. isupport:CHANTYPES set to: [#&]
-log 1 $.. isupport:PREFIX set to: [(ov)@+]
-log 1 $.. isupport:USERLEN set to: [10]
+log 1 $ isupport cleared
+log 1 $ isupport:CHANTYPES set to: [#&]
+log 1 $ isupport:PREFIX set to: [(ov)@+]
+log 1 $ isupport:USERLEN set to: [10]
 
 × clientwin-init
 insert isupport-clear : +1
-log 1 $.. caps cleared
-log 1 $.. users cleared
-log 1 $.. channels cleared
-log , $.. DISCONNECTED
+log 1 $ caps cleared
+log 1 $ users cleared
+log 1 $ channels cleared
+log , $ DISCONNECTED
 
 × conn-retry
-log 1 $.. connection_state set to: [connecting]
-log 1 $.. port set to: [10002]
-log 1 $.. connection_state set to: [failed to connect: FAKE TESTING TIMEOUT]
+log 1 $ connection_state set to: [connecting]
+log 1 $ port set to: [10002]
+log 1 $ connection_state set to: [failed to connect: FAKE TESTING TIMEOUT]
 
 × conn-init-retries
-log 1 $.. port set to: [10003]
-log 1 $.. nick_wanted set to: [foo]
-log 1 $.. user_wanted set to: [foobarbazquux]
-log 1 $.. realname set to: [baz]
-log 1 $.. password set to: [bar]
+log 1 $ port set to: [10003]
+log 1 $ nick_wanted set to: [foo]
+log 1 $ user_wanted set to: [foobarbazquux]
+log 1 $ realname set to: [baz]
+log 1 $ password set to: [bar]
 insert conn-retry : +1
-log 1 $!. will retry connecting in 1 seconds
+log 1 $ will retry connecting in 1 seconds
 insert conn-retry :1 +1
-log 1 $.. port set to: [10001]
+log 1 $ port set to: [10001]
 insert conn-retry 2: +1
-log 1 $!. will retry connecting in 2 seconds
+log 1 $ will retry connecting in 2 seconds
 insert conn-retry :1 +1
-log 1 $.. port set to: [10000]
+log 1 $ port set to: [10000]
 insert conn-retry 2: +1
-log 1 $!. will retry connecting in 4 seconds
+log 1 $ will retry connecting in 4 seconds
 
 × conn
-log 1 $.. connection_state set to: [connecting]
-log 1 $.. connection_state set to: [connected]
-log , $.. CONNECTED
-log 1 >.. CAP LS :302
-log 1 >.. USER foobarbazquux 0 * :baz
-log 1 >.. NICK :foo
+log 1 $ connection_state set to: [connecting]
+log 1 $ connection_state set to: [connected]
+log , $ CONNECTED
+log 1 > CAP LS :302
+log 1 > USER foobarbazquux 0 * :baz
+log 1 > NICK :foo
 
 ×
 
@@ -49,7 +49,7 @@ log 1 >.. NICK :foo
 > /connect foo.bar.baz:10003 foo:bar baz:foobarbazquux
 
 insert clientwin-init : +1
-log 1 $.. hostname set to: [foo.bar.baz]
+log 1 $ hostname set to: [foo.bar.baz]
 insert conn-init-retries : +1
 
 # with TestingClient finally having reduced port to 10000, connecting works now
@@ -57,25 +57,25 @@ insert conn : +1
 
 # test retry chain also started by in-connection timeout
 servermsg 0 timeout
-log 1 >.. PING :what's up?
+log 1 > PING :what's up?
 servermsg 0 timeout
 servermsg 0 no timely PONG from server
-log 1 $.. connection_state set to: [broken: no timely PONG from server]
+log 1 $ connection_state set to: [broken: no timely PONG from server]
 insert isupport-clear : +1
-log 1 $.. connection_state set to: []
-log , $.. DISCONNECTED
-log 1 $!. will retry connecting in 1 seconds
+log 1 $ connection_state set to: []
+log , $ DISCONNECTED
+log 1 $ will retry connecting in 1 seconds
 insert conn : +1
 
 # on second server, check timed auto-retries don't activate after manual intervention
 > /connect baz.bar.foo:10003 foo:bar baz:foobarbazquux
 insert clientwin-init : +2
-log 2 $.. hostname set to: [baz.bar.foo]
+log 2 $ hostname set to: [baz.bar.foo]
 insert conn-init-retries : +2
 > /window 2
 > /reconnect
 insert conn : +2
 wait 4
 > /disconnect
-log 2 >.. QUIT :ircplom says bye
+log 2 > QUIT :ircplom says bye
 wait 4
index 266c3cde038852bdaec851b0bafdcda7de945ebc..c89063065ce075cc2c81b0be08ab1d2944b041ec 100644 (file)
@@ -1,22 +1,22 @@
-log 0 #.. Found config at tests/config.toml, reading …
-log 0 #.. Connecting: {{'hostname': 'irc.test0.net', 'nickname': 'foo', 'password': 'bar', 'username': 'baz', 'realname': 'quux', 'port': 1234, 'channels': ['#test', '##testtest']{}
-log 1 $.. isupport cleared
-log 1 $.. isupport:CHANTYPES set to: [#&]
-log 1 $.. isupport:PREFIX set to: [(ov)@+]
-log 1 $.. isupport:USERLEN set to: [10]
-log 1 $.. caps cleared
-log 1 $.. users cleared
-log 1 $.. channels cleared
-log , $.. DISCONNECTED
-log 1 $.. hostname set to: [irc.test0.net]
-log 1 $.. port set to: [1234]
-log 1 $.. nick_wanted set to: [foo]
-log 1 $.. user_wanted set to: [baz]
-log 1 $.* realname set to: [quux]
-log 1 $.. password set to: [bar]
-log 1 $.. connection_state set to: [connecting]
-log 1 $.. connection_state set to: [connected]
-log , $.. CONNECTED
-log 1 >.. CAP LS :302
-log 1 >.* USER baz 0 * :quux
-log 1 >.. NICK :foo
+log 0 # Found config at tests/config.toml, reading …
+log 0 # Connecting: {'hostname': 'irc.test0.net', 'nickname': 'foo', 'password': 'bar', 'username': 'baz', 'realname': 'quux', 'port': 1234, 'channels': ['#test', '##testtest']}
+log 1 $ isupport cleared
+log 1 $ isupport:CHANTYPES set to: [#&]
+log 1 $ isupport:PREFIX set to: [(ov)@+]
+log 1 $ isupport:USERLEN set to: [10]
+log 1 $ caps cleared
+log 1 $ users cleared
+log 1 $ channels cleared
+log , $ DISCONNECTED
+log 1 $ hostname set to: [irc.test0.net]
+log 1 $ port set to: [1234]
+log 1 $ nick_wanted set to: [foo]
+log 1 $ user_wanted set to: [baz]
+log 1 $ realname set to: [quux]
+log 1 $ password set to: [bar]
+log 1 $ connection_state set to: [connecting]
+log 1 $ connection_state set to: [connected]
+log , $ CONNECTED
+log 1 > CAP LS :302
+log 1 > USER baz 0 * :quux
+log 1 > NICK :foo
index 15cf59e5e741e911a173215af6cc7e23d8e2c9ac..4ba5a6ecce319766a76a46597413782e6f894c9a 100644 (file)
@@ -1,49 +1,49 @@
 × isupport-clear
-log 1 $.. isupport cleared
-log 1 $.. isupport:CHANTYPES set to: [#&]
-log 1 $.. isupport:PREFIX set to: [(ov)@+]
-log 1 $.. isupport:USERLEN set to: [10]
+log 1 $ isupport cleared
+log 1 $ isupport:CHANTYPES set to: [#&]
+log 1 $ isupport:PREFIX set to: [(ov)@+]
+log 1 $ isupport:USERLEN set to: [10]
 × connecting
-log 1 $.. connection_state set to: [connecting]
-log 1 $.. connection_state set to: [connected]
-log , $.. CONNECTED
-log 1 >.. CAP LS :302
-log 1 >.. USER baz 0 * :bar
-log 1 >.. NICK :foo
+log 1 $ connection_state set to: [connecting]
+log 1 $ connection_state set to: [connected]
+log , $ CONNECTED
+log 1 > CAP LS :302
+log 1 > USER baz 0 * :bar
+log 1 > NICK :foo
 ×
 
 # to prepare, initiate connection
 > /connect foo.bar.baz foo bar:baz
 insert isupport-clear : +1
-log 1 $.. caps cleared
-log 1 $.. users cleared
-log 1 $.. channels cleared
-log , $.. DISCONNECTED
-log 1 $.. hostname set to: [foo.bar.baz]
-log 1 $.. port set to: [-1]
-log 1 $.. nick_wanted set to: [foo]
-log 1 $.. user_wanted set to: [baz]
-log 1 $.. realname set to: [bar]
-log 1 $.. port set to: [6697]
+log 1 $ caps cleared
+log 1 $ users cleared
+log 1 $ channels cleared
+log , $ DISCONNECTED
+log 1 $ hostname set to: [foo.bar.baz]
+log 1 $ port set to: [-1]
+log 1 $ nick_wanted set to: [foo]
+log 1 $ user_wanted set to: [baz]
+log 1 $ realname set to: [bar]
+log 1 $ port set to: [6697]
 insert connecting : +1
 
 # fail to reconnect while connected
 > /window 1
 > /reconnect
-log 1 $!. not re-connecting since already connected
+log 1 $ not re-connecting since already connected
 
 # handle /disconnect on being connected
 > /disconnect
-log 1 >.. QUIT :ircplom says bye
-loggedservermsg 0 1 <.. ERROR :Closing link: (whatever@whatever.com) [Quit: ircplom says bye]
-log 1 $.. connection_state set to: [Closing link: (whatever@whatever.com) [Quit: ircplom says bye]]
+log 1 > QUIT :ircplom says bye
+loggedservermsg 0 1 < ERROR :Closing link: (whatever@whatever.com) [Quit: ircplom says bye]
+log 1 $ connection_state set to: [Closing link: (whatever@whatever.com) [Quit: ircplom says bye]]
 insert isupport-clear : +1
-log 1 $.. connection_state set to: []
-log , $.. DISCONNECTED
+log 1 $ connection_state set to: []
+log , $ DISCONNECTED
 
 # fail to disconnect when already disconnected
 > /disconnect
-log 1 $!. cannot send, connection seems closed
+log 1 $ cannot send, connection seems closed
 
 # succeed to re-connect after disconnect
 > /reconnect
index a10207fa9d4a96767ca01ac73f39488f623e7252..290a3456f9c081e4b998742b913bba23d0c1b2fc 100644 (file)
@@ -1,39 +1,39 @@
 × isupport-clear
-log 1 $.. isupport cleared
-log 1 $.. isupport:CHANTYPES set to: [#&]
-log 1 $.. isupport:PREFIX set to: [(ov)@+]
-log 1 $.. isupport:USERLEN set to: [10]
+log 1 $ isupport cleared
+log 1 $ isupport:CHANTYPES set to: [#&]
+log 1 $ isupport:PREFIX set to: [(ov)@+]
+log 1 $ isupport:USERLEN set to: [10]
 × connecting
-log 1 $.. connection_state set to: [connecting]
-log 1 $.. connection_state set to: [connected]
-log , $.. CONNECTED
-log 1 >.. CAP LS :302
-log 1 >.. USER baz 0 * :bar
-log 1 >.. NICK :foo
+log 1 $ connection_state set to: [connecting]
+log 1 $ connection_state set to: [connected]
+log , $ CONNECTED
+log 1 > CAP LS :302
+log 1 > USER baz 0 * :bar
+log 1 > NICK :foo
 × disconnecting
 insert isupport-clear : +1
-log 1 $.. connection_state set to: []
-log , $.. DISCONNECTED
+log 1 $ connection_state set to: []
+log , $ DISCONNECTED
 ×
 
 # to prepare first test, initiate connected state
 > /connect foo.bar.baz foo bar:baz
 insert isupport-clear : +1
-log 1 $.. caps cleared
-log 1 $.. users cleared
-log 1 $.. channels cleared
-log , $.. DISCONNECTED
-log 1 $.. hostname set to: [foo.bar.baz]
-log 1 $.. port set to: [-1]
-log 1 $.. nick_wanted set to: [foo]
-log 1 $.. user_wanted set to: [baz]
-log 1 $.. realname set to: [bar]
-log 1 $.. port set to: [6697]
+log 1 $ caps cleared
+log 1 $ users cleared
+log 1 $ channels cleared
+log , $ DISCONNECTED
+log 1 $ hostname set to: [foo.bar.baz]
+log 1 $ port set to: [-1]
+log 1 $ nick_wanted set to: [foo]
+log 1 $ user_wanted set to: [baz]
+log 1 $ realname set to: [bar]
+log 1 $ port set to: [6697]
 insert connecting : +1
 
 # test default ERROR handling
-loggedservermsg 0 1 <.. ERROR :abc def ghi
-log 1 $.. connection_state set to: [abc def ghi]
+loggedservermsg 0 1 < ERROR :abc def ghi
+log 1 $ connection_state set to: [abc def ghi]
 insert disconnecting : +1
 
 # to prepare next test, get back to connected state
@@ -42,7 +42,7 @@ insert disconnecting : +1
 insert connecting : +1
 
 # test "timed out)" ERROR handling
-loggedservermsg 0 1 <.. ERROR :Closing link: (Connection timed out)
-log 1 $.. connection_state set to: [Closing link: (Connection timed out)]
+loggedservermsg 0 1 < ERROR :Closing link: (Connection timed out)
+log 1 $ connection_state set to: [Closing link: (Connection timed out)]
 insert disconnecting : +1
-log 1 $!. will retry connecting in 1 seconds
+log 1 $ will retry connecting in 1 seconds
index d2eb6fd624b951e4033ef1581652141f802224c5..d25a5e9d7eec6b87ffbf2063b8c56e55794dd1c8 100644 (file)
@@ -1,57 +1,57 @@
 × isupport-clear
-log 1 $.. isupport cleared
-log 1 $.. isupport:CHANTYPES set to: [#&]
-log 1 $.. isupport:PREFIX set to: [(ov)@+]
-log 1 $.. isupport:USERLEN set to: [10]
+log 1 $ isupport cleared
+log 1 $ isupport:CHANTYPES set to: [#&]
+log 1 $ isupport:PREFIX set to: [(ov)@+]
+log 1 $ isupport:USERLEN set to: [10]
 
 × conn
-log 1 $.. connection_state set to: [connecting]
-log 1 $.. connection_state set to: [connected]
-log , $.. CONNECTED
-log 1 >.. CAP LS :302
-log 1 >.. USER foobarbazquux 0 * :baz
-log 1 >.. NICK :foo
+log 1 $ connection_state set to: [connecting]
+log 1 $ connection_state set to: [connected]
+log , $ CONNECTED
+log 1 > CAP LS :302
+log 1 > USER foobarbazquux 0 * :baz
+log 1 > NICK :foo
 
 × full-timeout
 # ping on timeout, go on as normal if PONG received 
 insert trigger-ping : +0
-loggedservermsg 0 1 <.. :*.?.net PONG *.?.net :what's up?
-loggedservermsg 0 1 <.. :*.?.net NOTICE * :*** Looking up your ident...
-log 2 <.. ({bold|server}) *** Looking up your ident...
+loggedservermsg 0 1 < :*.?.net PONG *.?.net :what's up?
+loggedservermsg 0 1 < :*.?.net NOTICE * :*** Looking up your ident...
+log 2 < (server) *** Looking up your ident...
 # another timeout instead of pong? disconnect
 insert trigger-ping : +0
 servermsg 0 timeout
 servermsg 0 no timely PONG from server
-log 1 $.. connection_state set to: [broken: no timely PONG from server]
+log 1 $ connection_state set to: [broken: no timely PONG from server]
 insert isupport-clear : +1
-log 1 $.. connection_state set to: []
-log 2 $.. DISCONNECTED
-log 1 $!. will retry connecting in 1 seconds
+log 1 $ connection_state set to: []
+log 2 $ DISCONNECTED
+log 1 $ will retry connecting in 1 seconds
 
 × trigger-ping
 servermsg 0 timeout
-log 1 >.. PING :what's up?
+log 1 > PING :what's up?
 
 ×
 
 > /connect foo.bar.baz foo:bar baz:foobarbazquux
 insert isupport-clear : +1
-log 1 $.. caps cleared
-log 1 $.. users cleared
-log 1 $.. channels cleared
-log , $.. DISCONNECTED
-log 1 $.. hostname set to: [foo.bar.baz]
-log 1 $.. port set to: [-1]
-log 1 $.. nick_wanted set to: [foo]
-log 1 $.. user_wanted set to: [foobarbazquux]
-log 1 $.. realname set to: [baz]
-log 1 $.. password set to: [bar]
-log 1 $.. port set to: [6697]
+log 1 $ caps cleared
+log 1 $ users cleared
+log 1 $ channels cleared
+log , $ DISCONNECTED
+log 1 $ hostname set to: [foo.bar.baz]
+log 1 $ port set to: [-1]
+log 1 $ nick_wanted set to: [foo]
+log 1 $ user_wanted set to: [foobarbazquux]
+log 1 $ realname set to: [baz]
+log 1 $ password set to: [bar]
+log 1 $ port set to: [6697]
 insert conn : +1
 
 # ensure we PONG properly
-loggedservermsg 0 1 <.. PING :?
-log 1 >.. PONG :?
+loggedservermsg 0 1 < PING :?
+log 1 > PONG :?
 
 insert full-timeout : +0
 
@@ -59,6 +59,6 @@ insert full-timeout : +0
 > /window 1
 > /reconnect
 insert conn :2 +1
-log 2 $.. CONNECTED
+log 2 $ CONNECTED
 insert conn 3: +1
 insert full-timeout : +0
index 729808d58c05a81a8c3f69f544f0a905f6f25ca5..04867f644b0168929242534c1b37344a974e4a9f 100644 (file)
 × isupport-clear
-log 1 $.. isupport cleared
-log 1 $.. isupport:CHANTYPES set to: [#&]
-log 1 $.. isupport:PREFIX set to: [(ov)@+]
-log 1 $.. isupport:USERLEN set to: [10]
+log 1 $ isupport cleared
+log 1 $ isupport:CHANTYPES set to: [#&]
+log 1 $ isupport:PREFIX set to: [(ov)@+]
+log 1 $ isupport:USERLEN set to: [10]
 
 × standard-clear
 insert isupport-clear : +1
-log 1 $.. caps cleared
-log 1 $.. users cleared
-log 1 $.. channels cleared
-log , $.. DISCONNECTED
+log 1 $ caps cleared
+log 1 $ users cleared
+log 1 $ channels cleared
+log , $ DISCONNECTED
 
 × conn_init_0
-log 1 $.. port set to: [6697]
-log 1 $.. connection_state set to: [connecting]
-log 1 $.. connection_state set to: [connected]
-log , $.. CONNECTED
-log 1 >.. CAP LS :302
-log 1 >.. USER foobarbazquux 0 * :baz
-log 1 >.. NICK :foo
+log 1 $ port set to: [6697]
+log 1 $ connection_state set to: [connecting]
+log 1 $ connection_state set to: [connected]
+log , $ CONNECTED
+log 1 > CAP LS :302
+log 1 > USER foobarbazquux 0 * :baz
+log 1 > NICK :foo
 
 × conn_init_1
 # expect some NOTICE and PING to process/reply during initiation
-loggedservermsg 0 1 <.. :*.?.net NOTICE * :*** Looking up your ident...
-log 2 <.. ({bold|server}) *** Looking up your ident...
-loggedservermsg 0 1 <.. :*.?.net NOTICE * :*** Looking up your hostname...
-log 2 <.. ({bold|server}) *** Looking up your hostname...
-loggedservermsg 0 1 <.. :*.?.net NOTICE * :*** Found your hostname (baz.bar.foo)
-log 2 <.. ({bold|server}) *** Found your hostname (baz.bar.foo)
-loggedservermsg 0 1 <.. PING :?
-log 1 >.. PONG :?
+loggedservermsg 0 1 < :*.?.net NOTICE * :*** Looking up your ident...
+log 2 < (server) *** Looking up your ident...
+loggedservermsg 0 1 < :*.?.net NOTICE * :*** Looking up your hostname...
+log 2 < (server) *** Looking up your hostname...
+loggedservermsg 0 1 < :*.?.net NOTICE * :*** Found your hostname (baz.bar.foo)
+log 2 < (server) *** Found your hostname (baz.bar.foo)
+loggedservermsg 0 1 < PING :?
+log 1 > PONG :?
 # handle 433
-loggedservermsg 0 1 <.. :*.?.net 433 * foo :Nickname already in use
-log 1 $!. nickname already in use, trying increment
-log 1 >.. NICK :foo0
-loggedservermsg 0 1 <.. :*.?.net 433 * foo0 :Nickname already in use
-log 1 $!. nickname already in use, trying increment
-log 1 >.. NICK :foo1
+loggedservermsg 0 1 < :*.?.net 433 * foo :Nickname already in use
+log 1 $ nickname already in use, trying increment
+log 1 > NICK :foo0
+loggedservermsg 0 1 < :*.?.net 433 * foo0 :Nickname already in use
+log 1 $ nickname already in use, trying increment
+log 1 > NICK :foo1
 # collect server capabilities
-loggedservermsg 0 1 <.. :*.?.net CAP * LS : foo bar sasl=PLAIN,EXTERNAL baz cap-notify
-log 1 >.. CAP REQ :sasl
-log 1 >.. CAP :LIST
-loggedservermsg 0 1 <.. :*.?.net CAP * ACK :sasl
-loggedservermsg 0 1 <.. :*.?.net CAP * LIST :cap-notify sasl
-log 1 $.. caps:bar:data set to: []
-log 1 $.. caps:baz:data set to: []
-log 1 $.. caps:cap-notify:data set to: []
-log 1 $.. caps:cap-notify:enabled set to: [True]
-log 1 $.. caps:foo:data set to: []
-log 1 $.. caps:sasl:data set to: []
-log 1 $.. caps:sasl:data set to: [PLAIN,EXTERNAL]
-log 1 $.. caps:sasl:enabled set to: [True]
+loggedservermsg 0 1 < :*.?.net CAP * LS : foo bar sasl=PLAIN,EXTERNAL baz cap-notify
+log 1 > CAP REQ :sasl
+log 1 > CAP :LIST
+loggedservermsg 0 1 < :*.?.net CAP * ACK :sasl
+loggedservermsg 0 1 < :*.?.net CAP * LIST :cap-notify sasl
+log 1 $ caps:bar:data set to: []
+log 1 $ caps:baz:data set to: []
+log 1 $ caps:cap-notify:data set to: []
+log 1 $ caps:cap-notify:enabled set to: [True]
+log 1 $ caps:foo:data set to: []
+log 1 $ caps:sasl:data set to: []
+log 1 $ caps:sasl:data set to: [PLAIN,EXTERNAL]
+log 1 $ caps:sasl:enabled set to: [True]
 # authenticate via SASL, collect items of user identity
-log 1 $.. sasl_auth_state set to: [attempting]
-log 1 >.. AUTHENTICATE :PLAIN
-loggedservermsg 0 1 <.. AUTHENTICATE +
-log 1 >.. AUTHENTICATE :Zm9vAGZvbwBiYXI=
-loggedservermsg 0 1 <.. :foo.bar.baz 900 foo1 foo1!foobarbazq@baz.bar.foo foo :You are now logged in as foo
-log 1 $.. users:me:nick set to: [?]
-log 1 $.. users:me:nick set to: [foo1]
-log 1 $.. users:me:user set to: [foobarbazq]
-log 1 $.. users:me:host set to: [baz.bar.foo]
-log 1 $.. sasl_account set to: [foo]
-loggedservermsg 0 1 <.. :foo.bar.baz 903 foo1 :SASL authentication successful
-log 1 $.. sasl_auth_state set to: [SASL authentication successful]
+log 1 $ sasl_auth_state set to: [attempting]
+log 1 > AUTHENTICATE :PLAIN
+loggedservermsg 0 1 < AUTHENTICATE +
+log 1 > AUTHENTICATE :Zm9vAGZvbwBiYXI=
+loggedservermsg 0 1 < :foo.bar.baz 900 foo1 foo1!foobarbazq@baz.bar.foo foo :You are now logged in as foo
+log 1 $ users:me:nick set to: [?]
+log 1 $ users:me:nick set to: [foo1]
+log 1 $ users:me:user set to: [foobarbazq]
+log 1 $ users:me:host set to: [baz.bar.foo]
+log 1 $ sasl_account set to: [foo]
+loggedservermsg 0 1 < :foo.bar.baz 903 foo1 :SASL authentication successful
+log 1 $ sasl_auth_state set to: [SASL authentication successful]
 # finish CAP negotation, thus login procedure
-log 1 >.. CAP :END
+log 1 > CAP :END
 
 × conn_init_2
 # of all pre-MOTD greeting messages, only process isupports
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo1 :Welcome to the foo.bar.baz network
-loggedservermsg 0 1 <.. :foo.bar.baz 002 foo1 :Your host is foo.bar.baz
-loggedservermsg 0 1 <.. :foo.bar.baz 003 foo1 :This server was created Jan 1 2020
-loggedservermsg 0 1 <.. :foo.bar.baz 004 foo1 foo.bar.baz ircserver-1.0 abc def ghi
-loggedservermsg 0 1 <.. :foo.bar.baz 005 foo1 ABC=DEF GHI=JKL :are supported by this server
-log 1 $.. isupport:ABC set to: [DEF]
-log 1 $.. isupport:GHI set to: [JKL]
-loggedservermsg 0 1 <.. :foo.bar.baz 005 foo1 MNO=PQR STU=VWX Y=Z :are supported by this server
-log 1 $.. isupport:MNO set to: [PQR]
-log 1 $.. isupport:STU set to: [VWX]
-log 1 $.. isupport:Y set to: [Z]
-loggedservermsg 0 1 <.. :foo.bar.baz 251 foo1 :There are 10 users and 1000 invisible on 5 servers
-loggedservermsg 0 1 <.. :foo.bar.baz 252 foo1 7 :IRC Operators online
-loggedservermsg 0 1 <.. :foo.bar.baz 253 foo1 4 :unknown connection(s)
-loggedservermsg 0 1 <.. :foo.bar.baz 254 foo1 800 :channels formed
-loggedservermsg 0 1 <.. :foo.bar.baz 255 foo1 :I have 100 clients and 1 serveres
-loggedservermsg 0 1 <.. :foo.bar.baz 265 foo1 100 150 :Current local users 100, max 150
-loggedservermsg 0 1 <.. :foo.bar.baz 266 foo1 1010 1050 :Current global users 1010, max 1050
-loggedservermsg 0 1 <.. :foo.bar.baz 250 foo1 :Highest connection count: 151 (150 clients) (1080 connections received)
+loggedservermsg 0 1 < :foo.bar.baz 001 foo1 :Welcome to the foo.bar.baz network
+loggedservermsg 0 1 < :foo.bar.baz 002 foo1 :Your host is foo.bar.baz
+loggedservermsg 0 1 < :foo.bar.baz 003 foo1 :This server was created Jan 1 2020
+loggedservermsg 0 1 < :foo.bar.baz 004 foo1 foo.bar.baz ircserver-1.0 abc def ghi
+loggedservermsg 0 1 < :foo.bar.baz 005 foo1 ABC=DEF GHI=JKL :are supported by this server
+log 1 $ isupport:ABC set to: [DEF]
+log 1 $ isupport:GHI set to: [JKL]
+loggedservermsg 0 1 < :foo.bar.baz 005 foo1 MNO=PQR STU=VWX Y=Z :are supported by this server
+log 1 $ isupport:MNO set to: [PQR]
+log 1 $ isupport:STU set to: [VWX]
+log 1 $ isupport:Y set to: [Z]
+loggedservermsg 0 1 < :foo.bar.baz 251 foo1 :There are 10 users and 1000 invisible on 5 servers
+loggedservermsg 0 1 < :foo.bar.baz 252 foo1 7 :IRC Operators online
+loggedservermsg 0 1 < :foo.bar.baz 253 foo1 4 :unknown connection(s)
+loggedservermsg 0 1 < :foo.bar.baz 254 foo1 800 :channels formed
+loggedservermsg 0 1 < :foo.bar.baz 255 foo1 :I have 100 clients and 1 serveres
+loggedservermsg 0 1 < :foo.bar.baz 265 foo1 100 150 :Current local users 100, max 150
+loggedservermsg 0 1 < :foo.bar.baz 266 foo1 1010 1050 :Current global users 1010, max 1050
+loggedservermsg 0 1 < :foo.bar.baz 250 foo1 :Highest connection count: 151 (150 clients) (1080 connections received)
 # collect MOTD into a single output (rather than line-by-line)
-loggedservermsg 0 1 <.. :foo.bar.baz 375 foo1 :- foo.bar.baz Message of the Day -
-loggedservermsg 0 1 <.. :foo.bar.baz 372 foo1 :- Howdy! -
-loggedservermsg 0 1 <.. :foo.bar.baz 372 foo1 :- Welcome! -
-loggedservermsg 0 1 <.. :foo.bar.baz 372 foo1 :- (to this server) -
-loggedservermsg 0 1 <.. :foo.bar.baz 376 foo1 :End of /MOTD command
-log 1 $.. motd set to:
-log 1 $..   - Howdy! -
-log 1 $..   - Welcome! -
-log 1 $..   - (to this server) -
+loggedservermsg 0 1 < :foo.bar.baz 375 foo1 :- foo.bar.baz Message of the Day -
+loggedservermsg 0 1 < :foo.bar.baz 372 foo1 :- Howdy! -
+loggedservermsg 0 1 < :foo.bar.baz 372 foo1 :- Welcome! -
+loggedservermsg 0 1 < :foo.bar.baz 372 foo1 :- (to this server) -
+loggedservermsg 0 1 < :foo.bar.baz 376 foo1 :End of /MOTD command
+log 1 $ motd set to:
+log 1 $   - Howdy! -
+log 1 $   - Welcome! -
+log 1 $   - (to this server) -
 # collect user mode
-loggedservermsg 0 1 <.. :foo1 MODE foo1 :+Ziw
-log 1 $.. users:me:modes set to: [+Ziw]
+loggedservermsg 0 1 < :foo1 MODE foo1 :+Ziw
+log 1 $ users:me:modes set to: [+Ziw]
 # handle bot query NOTICE
-loggedservermsg 0 1 <.. :SaslServ!SaslServ@services.bar.baz NOTICE foo1 :Last login from ~foobarbaz@foo.bar.baz on Jan 1 22:00:00 2021 +0000.
-log 3 <.. ({bold|SaslServ}) Last login from ~foobarbaz@foo.bar.baz on Jan 1 22:00:00 2021 +0000.
+loggedservermsg 0 1 < :SaslServ!SaslServ@services.bar.baz NOTICE foo1 :Last login from ~foobarbaz@foo.bar.baz on Jan 1 22:00:00 2021 +0000.
+log 3 < (SaslServ) Last login from ~foobarbaz@foo.bar.baz on Jan 1 22:00:00 2021 +0000.
 
 × during_conn
 # test recoverable 432
 > /nick @foo
-log 1 >.. NICK :@foo
-loggedservermsg 0 1 <.. :*.?.net 432 foo1 @foo :Erroneous nickname
-log 1 $!. nickname refused for bad format, keeping current one
+log 1 > NICK :@foo
+loggedservermsg 0 1 < :*.?.net 432 foo1 @foo :Erroneous nickname
+log 1 $ nickname refused for bad format, keeping current one
 # join channel, collect topic, residents; update me:user from JOIN message; ensure topic.who not affecting users DB
 > /join #test
-log 1 >.. JOIN :#test
-loggedservermsg 0 1 <.. :foo1!~foobarbaz@baz.bar.foo JOIN #test
-log 1 $.. users:me:user set to: [~foobarbaz]
-loggedservermsg 0 1 <.. :foo.bar.baz 332 foo1 #test :foo bar baz
-log 1 $.. channels:#test:exits cleared
-loggedservermsg 0 1 <.. :foo.bar.baz 333 foo1 #test bar!~bar@OLD.bar.bar 1234567890
-log 1 $.. channels:#test:topic set to: [Topic(what='foo bar baz', who=NickUserHost(nick='bar', user='~bar', host='OLD.bar.bar'))]
-log 4 $.. bar!~bar@OLD.bar.bar set topic: foo bar baz
-loggedservermsg 0 1 <.. :foo.bar.baz 353 foo1 @ #test :foo1 @bar
-log 1 $.. users:1:nick set to: [?]
-log 1 $.. users:1:nick set to: [bar]
-loggedservermsg 0 1 <.. :foo.bar.baz 366 foo1 #test :End of /NAMES list.
-log 1 $.. channels:#test:user_ids set to:
-log 1 $..   1
-log 1 $..   me
-log 4 $.. residents: bar, foo1
+log 1 > JOIN :#test
+loggedservermsg 0 1 < :foo1!~foobarbaz@baz.bar.foo JOIN #test
+log 1 $ users:me:user set to: [~foobarbaz]
+loggedservermsg 0 1 < :foo.bar.baz 332 foo1 #test :foo bar baz
+log 1 $ channels:#test:exits cleared
+loggedservermsg 0 1 < :foo.bar.baz 333 foo1 #test bar!~bar@OLD.bar.bar 1234567890
+log 1 $ channels:#test:topic set to: [Topic(what='foo bar baz', who=NickUserHost(nick='bar', user='~bar', host='OLD.bar.bar'))]
+log 4 $ bar!~bar@OLD.bar.bar set topic: foo bar baz
+loggedservermsg 0 1 < :foo.bar.baz 353 foo1 @ #test :foo1 @bar
+log 1 $ users:1:nick set to: [?]
+log 1 $ users:1:nick set to: [bar]
+loggedservermsg 0 1 < :foo.bar.baz 366 foo1 #test :End of /NAMES list.
+log 1 $ channels:#test:user_ids set to:
+log 1 $   1
+log 1 $   me
+log 4 $ residents: bar, foo1
 # deliver PRIVMSG to channel window, update sender's user+host from metadata
-loggedservermsg 0 1 <.. :bar!~bar@bar.bar PRIVMSG #test :hi there
-log 1 $.. users:1:user set to: [~bar]
-log 1 $.. users:1:host set to: [bar.bar]
-log 4 <.. [{bold|bar}] hi there
+loggedservermsg 0 1 < :bar!~bar@bar.bar PRIVMSG #test :hi there
+log 1 $ users:1:user set to: [~bar]
+log 1 $ users:1:host set to: [bar.bar]
+log 4 < [bar] hi there
 # check _changing_ TOPIC message is communicated to channel window, as long as either content or who change
-loggedservermsg 0 1 <.. :bar!~bar@bar.bar TOPIC #test :foo bar baz
-log 1 $.. channels:#test:topic set to: [Topic(what='foo bar baz', who=NickUserHost(nick='bar', user='~bar', host='bar.bar'))]
-log 4 $.. bar!~bar@bar.bar set topic: foo bar baz
-loggedservermsg 0 1 <.. :bar!~bar@bar.bar TOPIC #test :foo bar baz
-loggedservermsg 0 1 <.. :bar!~bar@bar.bar TOPIC #test :abc def ghi
-log 1 $.. channels:#test:topic set to: [Topic(what='abc def ghi', who=NickUserHost(nick='bar', user='~bar', host='bar.bar'))]
-log 4 $.. bar!~bar@bar.bar set topic: abc def ghi
+loggedservermsg 0 1 < :bar!~bar@bar.bar TOPIC #test :foo bar baz
+log 1 $ channels:#test:topic set to: [Topic(what='foo bar baz', who=NickUserHost(nick='bar', user='~bar', host='bar.bar'))]
+log 4 $ bar!~bar@bar.bar set topic: foo bar baz
+loggedservermsg 0 1 < :bar!~bar@bar.bar TOPIC #test :foo bar baz
+loggedservermsg 0 1 < :bar!~bar@bar.bar TOPIC #test :abc def ghi
+log 1 $ channels:#test:topic set to: [Topic(what='abc def ghi', who=NickUserHost(nick='bar', user='~bar', host='bar.bar'))]
+log 4 $ bar!~bar@bar.bar set topic: abc def ghi
 # process non-self channel JOIN
-loggedservermsg 0 1 <.. :baz!~baz@baz.baz JOIN :#test
-log 1 $.. users:2:nick set to: [?]
-log 1 $.. users:2:nick set to: [baz]
-log 1 $.. users:2:user set to: [~baz]
-log 1 $.. users:2:host set to: [baz.baz]
-log 1 $.. channels:#test:user_ids set to:
-log 1 $..   1
-log 1 $..   2
-log 1 $..   me
-log 4 $.. baz!~baz@baz.baz joins
+loggedservermsg 0 1 < :baz!~baz@baz.baz JOIN :#test
+log 1 $ users:2:nick set to: [?]
+log 1 $ users:2:nick set to: [baz]
+log 1 $ users:2:user set to: [~baz]
+log 1 $ users:2:host set to: [baz.baz]
+log 1 $ channels:#test:user_ids set to:
+log 1 $   1
+log 1 $   2
+log 1 $   me
+log 4 $ baz!~baz@baz.baz joins
 # join second channel with partial residents identity to compare distribution of resident-specific messages
 > /join #testtest
-log 1 >.. JOIN :#testtest
-loggedservermsg 0 1 <.. :foo1!~foobarbaz@baz.bar.foo JOIN #testtest
-loggedservermsg 0 1 <.. :foo.bar.baz 332 foo1 #testtest :baz bar foo
-log 1 $.. channels:#testtest:exits cleared
-loggedservermsg 0 1 <.. :foo.bar.baz 333 foo1 #testtest bar!~bar@OLD.bar.bar 1234567890
-log 1 $.. channels:#testtest:topic set to: [Topic(what='baz bar foo', who=NickUserHost(nick='bar', user='~bar', host='OLD.bar.bar'))]
-log 5 $.. bar!~bar@OLD.bar.bar set topic: baz bar foo
-loggedservermsg 0 1 <.. :foo.bar.baz 353 foo1 @ #testtest :foo1 baz
-loggedservermsg 0 1 <.. :foo.bar.baz 366 foo1 #testtest :End of /NAMES list.
-log 1 $.. channels:#testtest:user_ids set to:
-log 1 $..   2
-log 1 $..   me
-log 5 $.. residents: baz, foo1
+log 1 > JOIN :#testtest
+loggedservermsg 0 1 < :foo1!~foobarbaz@baz.bar.foo JOIN #testtest
+loggedservermsg 0 1 < :foo.bar.baz 332 foo1 #testtest :baz bar foo
+log 1 $ channels:#testtest:exits cleared
+loggedservermsg 0 1 < :foo.bar.baz 333 foo1 #testtest bar!~bar@OLD.bar.bar 1234567890
+log 1 $ channels:#testtest:topic set to: [Topic(what='baz bar foo', who=NickUserHost(nick='bar', user='~bar', host='OLD.bar.bar'))]
+log 5 $ bar!~bar@OLD.bar.bar set topic: baz bar foo
+loggedservermsg 0 1 < :foo.bar.baz 353 foo1 @ #testtest :foo1 baz
+loggedservermsg 0 1 < :foo.bar.baz 366 foo1 #testtest :End of /NAMES list.
+log 1 $ channels:#testtest:user_ids set to:
+log 1 $   2
+log 1 $   me
+log 5 $ residents: baz, foo1
 # handle query window with known user
-loggedservermsg 0 1 <.. :baz!~baz@baz.baz PRIVMSG foo1 :hi there
-log 6 <.. [{bold|baz}] hi there
+loggedservermsg 0 1 < :baz!~baz@baz.baz PRIVMSG foo1 :hi there
+log 6 < [baz] hi there
 > /privmsg baz hello, how is it going
-log 1 >.. PRIVMSG baz :hello, how is it going
-log 6 >.. [{bold|foo1}] hello, how is it going
-loggedservermsg 0 1 <.. :baz!~baz@baz.baz PRIVMSG foo1 :fine!
-log 6 <.. [{bold|baz}] fine!
+log 1 > PRIVMSG baz :hello, how is it going
+log 6 > [foo1] hello, how is it going
+loggedservermsg 0 1 < :baz!~baz@baz.baz PRIVMSG foo1 :fine!
+log 6 < [baz] fine!
 # handle failure to query absent user
 > /privmsg barbar hello!
-log 1 >.. PRIVMSG barbar :hello!
-log 7 >.. [{bold|foo1}] hello!
-loggedservermsg 0 1 <.. :*.?.net 401 foo1 barbar :No such nick/channel
-log 7 $!. barbar not online
+log 1 > PRIVMSG barbar :hello!
+log 7 > [foo1] hello!
+loggedservermsg 0 1 < :*.?.net 401 foo1 barbar :No such nick/channel
+log 7 $ barbar not online
 # handle non-self renaming
-loggedservermsg 0 1 <.. :baz!~baz@baz.baz NICK :bazbaz
-log 1 $.. users:2:nick set to: [bazbaz]
-log 4,5,6 $.. baz!~baz@baz.baz renames bazbaz
+loggedservermsg 0 1 < :baz!~baz@baz.baz NICK :bazbaz
+log 1 $ users:2:nick set to: [bazbaz]
+log 4,5,6 $ baz!~baz@baz.baz renames bazbaz
 # handle non-self PART in one of two inhabited channels, preserve identity into re-JOIN
-loggedservermsg 0 1 <.. :bazbaz!~baz@baz.baz PART :#test
-log 1 $.. channels:#test:exits:2 set to: [P]
-log 1 $.. channels:#test:user_ids set to:
-log 1 $..   1
-log 1 $..   me
-log 4 $.. bazbaz!~baz@baz.baz parts
-log 1 $.. channels:#test:exits:2 cleared
-loggedservermsg 0 1 <.. :bazbaz!~baz@baz.baz JOIN :#test
-log 1 $.. channels:#test:user_ids set to:
-log 1 $..   1
-log 1 $..   2
-log 1 $..   me
-log 4 $.. bazbaz!~baz@baz.baz joins
+loggedservermsg 0 1 < :bazbaz!~baz@baz.baz PART :#test
+log 1 $ channels:#test:exits:2 set to: [P]
+log 1 $ channels:#test:user_ids set to:
+log 1 $   1
+log 1 $   me
+log 4 $ bazbaz!~baz@baz.baz parts
+log 1 $ channels:#test:exits:2 cleared
+loggedservermsg 0 1 < :bazbaz!~baz@baz.baz JOIN :#test
+log 1 $ channels:#test:user_ids set to:
+log 1 $   1
+log 1 $   2
+log 1 $   me
+log 4 $ bazbaz!~baz@baz.baz joins
 # handle non-self PART in only inhabited channel, lose identity, re-join as new identity
-loggedservermsg 0 1 <.. :bar!~bar@bar.bar PART :#test
-log 1 $.. channels:#test:exits:1 set to: [P]
-log 1 $.. channels:#test:user_ids set to:
-log 1 $..   2
-log 1 $..   me
-log 4 $.. bar!~bar@bar.bar parts
-log 1 $.. channels:#test:exits:1 cleared
-log 1 $.. users:1 cleared
-loggedservermsg 0 1 <.. :bar!~bar@bar.bar JOIN :#test
-log 1 $.. users:3:nick set to: [?]
-log 1 $.. users:3:nick set to: [bar]
-log 1 $.. users:3:user set to: [~bar]
-log 1 $.. users:3:host set to: [bar.bar]
-log 1 $.. channels:#test:user_ids set to:
-log 1 $..   2
-log 1 $..   3
-log 1 $..   me
-log 4 $.. bar!~bar@bar.bar joins
+loggedservermsg 0 1 < :bar!~bar@bar.bar PART :#test
+log 1 $ channels:#test:exits:1 set to: [P]
+log 1 $ channels:#test:user_ids set to:
+log 1 $   2
+log 1 $   me
+log 4 $ bar!~bar@bar.bar parts
+log 1 $ channels:#test:exits:1 cleared
+log 1 $ users:1 cleared
+loggedservermsg 0 1 < :bar!~bar@bar.bar JOIN :#test
+log 1 $ users:3:nick set to: [?]
+log 1 $ users:3:nick set to: [bar]
+log 1 $ users:3:user set to: [~bar]
+log 1 $ users:3:host set to: [bar.bar]
+log 1 $ channels:#test:user_ids set to:
+log 1 $   2
+log 1 $   3
+log 1 $   me
+log 4 $ bar!~bar@bar.bar joins
 # handle non-self QUIT
-loggedservermsg 0 1 <.. :bazbaz!~baz@baz.baz QUIT :Client Quit
-log 1 $.. users:2:exit_msg set to: [QClient Quit]
-log 6 $.. bazbaz!~baz@baz.baz quits: Client Quit
-log 1 $.. channels:#test:exits:2 set to: [QClient Quit]
-log 1 $.. channels:#test:user_ids set to:
-log 1 $..   3
-log 1 $..   me
-log 4 $.. bazbaz!~baz@baz.baz quits: Client Quit
-log 1 $.. channels:#test:exits:2 cleared
-log 1 $.. channels:#testtest:exits:2 set to: [QClient Quit]
-log 1 $.. channels:#testtest:user_ids set to:
-log 1 $..   me
-log 5 $.. bazbaz!~baz@baz.baz quits: Client Quit
-log 1 $.. channels:#testtest:exits:2 cleared
-log 1 $.. users:2 cleared
+loggedservermsg 0 1 < :bazbaz!~baz@baz.baz QUIT :Client Quit
+log 1 $ users:2:exit_msg set to: [QClient Quit]
+log 6 $ bazbaz!~baz@baz.baz quits: Client Quit
+log 1 $ channels:#test:exits:2 set to: [QClient Quit]
+log 1 $ channels:#test:user_ids set to:
+log 1 $   3
+log 1 $   me
+log 4 $ bazbaz!~baz@baz.baz quits: Client Quit
+log 1 $ channels:#test:exits:2 cleared
+log 1 $ channels:#testtest:exits:2 set to: [QClient Quit]
+log 1 $ channels:#testtest:user_ids set to:
+log 1 $   me
+log 5 $ bazbaz!~baz@baz.baz quits: Client Quit
+log 1 $ channels:#testtest:exits:2 cleared
+log 1 $ users:2 cleared
 # handle self-PART: clear channel, and its squatters
-loggedservermsg 0 1 <.. :foo1!~foobarbaz@baz.bar.foo PART :#test
-log 1 $.. channels:#test:exits:me set to: [P]
-log 1 $.. channels:#test:user_ids set to:
-log 1 $..   3
-log 4 $.. foo1!~foobarbaz@baz.bar.foo parts
-log 1 $.. channels:#test:exits:me cleared
-log 1 $.. channels:#test cleared
-log 1 $.. users:3 cleared
+loggedservermsg 0 1 < :foo1!~foobarbaz@baz.bar.foo PART :#test
+log 1 $ channels:#test:exits:me set to: [P]
+log 1 $ channels:#test:user_ids set to:
+log 1 $   3
+log 4 $ foo1!~foobarbaz@baz.bar.foo parts
+log 1 $ channels:#test:exits:me cleared
+log 1 $ channels:#test cleared
+log 1 $ users:3 cleared
 # handle lack of implementation
-loggedservermsg 0 1 <.. foo bar baz
-log 1 $!. No handler implemented for: foo bar baz
-log 2,3,4,5,6,7 $!. No handler implemented for: foo bar baz
+loggedservermsg 0 1 < foo bar baz
+log 1 $ No handler implemented for: foo bar baz
+log 2,3,4,5,6,7 $ No handler implemented for: foo bar baz
 # handle /disconnect, clear all
 > /disconnect
-log 1 >.. QUIT :ircplom says bye
-loggedservermsg 0 1 <.. :foo1!~foobarbaz@baz.bar.foo QUIT :Client Quit
-log 1 $.. users:me:exit_msg set to: [QClient Quit]
-log 3,6,7 $.. foo1!~foobarbaz@baz.bar.foo quits: Client Quit
-log 1 $.. channels:#testtest:exits:me set to: [QClient Quit]
-log 1 $.. channels:#testtest:user_ids set to:
-log 5 $.. foo1!~foobarbaz@baz.bar.foo quits: Client Quit
-log 1 $.. channels:#testtest:exits:me cleared
-loggedservermsg 0 1 <.. ERROR :Closing link: (~foobarbaz@baz.bar.foo) [Quit: ircplom says bye]
-log 1 $.. connection_state set to: [Closing link: (~foobarbaz@baz.bar.foo) [Quit: ircplom says bye]]
+log 1 > QUIT :ircplom says bye
+loggedservermsg 0 1 < :foo1!~foobarbaz@baz.bar.foo QUIT :Client Quit
+log 1 $ users:me:exit_msg set to: [QClient Quit]
+log 3,6,7 $ foo1!~foobarbaz@baz.bar.foo quits: Client Quit
+log 1 $ channels:#testtest:exits:me set to: [QClient Quit]
+log 1 $ channels:#testtest:user_ids set to:
+log 5 $ foo1!~foobarbaz@baz.bar.foo quits: Client Quit
+log 1 $ channels:#testtest:exits:me cleared
+loggedservermsg 0 1 < ERROR :Closing link: (~foobarbaz@baz.bar.foo) [Quit: ircplom says bye]
+log 1 $ connection_state set to: [Closing link: (~foobarbaz@baz.bar.foo) [Quit: ircplom says bye]]
 insert isupport-clear : +1
-log 1 $.. caps cleared
-log 1 $.. channels cleared
-log 1 $.. connection_state set to: []
-log 2,3,4,5,6,7 $.. DISCONNECTED
-log 1 $.. motd set to:
-log 1 $.. sasl_account set to: []
-log 1 $.. sasl_auth_state set to: []
-log 1 $.. users cleared
+log 1 $ caps cleared
+log 1 $ channels cleared
+log 1 $ connection_state set to: []
+log 2,3,4,5,6,7 $ DISCONNECTED
+log 1 $ motd set to:
+log 1 $ sasl_account set to: []
+log 1 $ sasl_auth_state set to: []
+log 1 $ users cleared
 # fail to send in disconnect, check alert window is command prompt window
 > /window 6
 > /privmsg barbar test
-log 6 $!. cannot send, connection seems closed
+log 6 $ cannot send, connection seems closed
 > /window 1
 > /privmsg barbar test
-log 1 $!. cannot send, connection seems closed
+log 1 $ cannot send, connection seems closed
 > /privmsg #test test
-log 1 $!. not sending, since not in channel
+log 1 $ not sending, since not in channel
 
 × disconnect
 insert isupport-clear : +8
-log 8 $.. connection_state set to: []
-log , $.. DISCONNECTED
+log 8 $ connection_state set to: []
+log , $ DISCONNECTED
 
 ×
 
@@ -291,12 +291,12 @@ log , $.. DISCONNECTED
 insert standard-clear : +1
 
 # connect with values set by /connect, init CAP negotation
-log 1 $.. hostname set to: [foo.bar.baz]
-log 1 $.. port set to: [-1]
-log 1 $.. nick_wanted set to: [foo]
-log 1 $.. user_wanted set to: [foobarbazquux]
-log 1 $.. realname set to: [baz]
-log 1 $.. password set to: [bar]
+log 1 $ hostname set to: [foo.bar.baz]
+log 1 $ port set to: [-1]
+log 1 $ nick_wanted set to: [foo]
+log 1 $ user_wanted set to: [foobarbazquux]
+log 1 $ realname set to: [baz]
+log 1 $ password set to: [bar]
 insert conn_init_0 : +1
 
 insert conn_init_1 : +0
@@ -304,80 +304,80 @@ insert conn_init_2 : +0
 
 # check difference in available commands when switching to client window
 > /join #test
-log 0 #!. invalid prompt command: /join unknown
+log 0 # invalid prompt command: /join unknown
 > /list
-log 0 #.. windows available via /window:
-log 0 #..   0) :start
-log 0 #..   1) foo.bar.baz:debug
-log 0 #..   2) foo.bar.baz:server
-log 0 #..   3) foo.bar.baz/SaslServ
+log 0 # windows available via /window:
+log 0 #   0) :start
+log 0 #   1) foo.bar.baz:debug
+log 0 #   2) foo.bar.baz:server
+log 0 #   3) foo.bar.baz/SaslServ
 > /window 1
 > /help
-log 1 #.. commands available in this window:
-log 1 #..   /connect HOST_PORT [NICKNAME_PW] [REALNAME_USERNAME]
-log 1 #..   /disconnect [QUIT_MSG]
-log 1 #..   /help
-log 1 #..   /join CHANNEL
-log 1 #..   /list
-log 1 #..   /nick NEW_NICK
-log 1 #..   /privmsg TARGET MSG
-log 1 #..   /prompt_enter
-log 1 #..   /quit
-log 1 #..   /raw VERB [PARAMS_STR]
-log 1 #..   /reconnect
-log 1 #..   /window TOWARDS
-log 1 #..   /window.disconnect [QUIT_MSG]
-log 1 #..   /window.history.scroll DIRECTION
-log 1 #..   /window.join CHANNEL
-log 1 #..   /window.nick NEW_NICK
-log 1 #..   /window.paste
-log 1 #..   /window.privmsg TARGET MSG
-log 1 #..   /window.prompt.backspace
-log 1 #..   /window.prompt.move_cursor DIRECTION
-log 1 #..   /window.prompt.scroll DIRECTION
-log 1 #..   /window.raw VERB [PARAMS_STR]
-log 1 #..   /window.reconnect
+log 1 # commands available in this window:
+log 1 #   /connect HOST_PORT [NICKNAME_PW] [REALNAME_USERNAME]
+log 1 #   /disconnect [QUIT_MSG]
+log 1 #   /help
+log 1 #   /join CHANNEL
+log 1 #   /list
+log 1 #   /nick NEW_NICK
+log 1 #   /privmsg TARGET MSG
+log 1 #   /prompt_enter
+log 1 #   /quit
+log 1 #   /raw VERB [PARAMS_STR]
+log 1 #   /reconnect
+log 1 #   /window TOWARDS
+log 1 #   /window.disconnect [QUIT_MSG]
+log 1 #   /window.history.scroll DIRECTION
+log 1 #   /window.join CHANNEL
+log 1 #   /window.nick NEW_NICK
+log 1 #   /window.paste
+log 1 #   /window.privmsg TARGET MSG
+log 1 #   /window.prompt.backspace
+log 1 #   /window.prompt.move_cursor DIRECTION
+log 1 #   /window.prompt.scroll DIRECTION
+log 1 #   /window.raw VERB [PARAMS_STR]
+log 1 #   /window.reconnect
 
 insert during_conn : +0
 
 # test setting up second client, but 432 irrecoverably
 > /connect baz.bar.foo ?foo foo:foo
 insert standard-clear : +8
-log 8 $.. hostname set to: [baz.bar.foo]
-log 8 $.. port set to: [-1]
-log 8 $.. nick_wanted set to: [?foo]
-log 8 $.. user_wanted set to: [foo]
-log 8 $.. realname set to: [foo]
+log 8 $ hostname set to: [baz.bar.foo]
+log 8 $ port set to: [-1]
+log 8 $ nick_wanted set to: [?foo]
+log 8 $ user_wanted set to: [foo]
+log 8 $ realname set to: [foo]
 insert conn_init_0 :5 +8
-log 8 >.. USER foo 0 * :foo
-log 8 >.. NICK :?foo
-loggedservermsg 1 8 <.. :*.?.net 432 * ?foo :Erroneous nickname
+log 8 > USER foo 0 * :foo
+log 8 > NICK :?foo
+loggedservermsg 1 8 < :*.?.net 432 * ?foo :Erroneous nickname
 insert disconnect : +8
-log 8 $!. nickname refused for bad format, giving up
+log 8 $ nickname refused for bad format, giving up
 
 # test failing third connection
 > /connect baz.baz.baz baz baz:baz
 insert standard-clear : +9
-log 9 $.. hostname set to: [baz.baz.baz]
-log 9 $.. port set to: [-1]
-log 9 $.. nick_wanted set to: [baz]
-log 9 $.. user_wanted set to: [baz]
-log 9 $.. realname set to: [baz]
+log 9 $ hostname set to: [baz.baz.baz]
+log 9 $ port set to: [-1]
+log 9 $ nick_wanted set to: [baz]
+log 9 $ user_wanted set to: [baz]
+log 9 $ realname set to: [baz]
 insert conn_init_0 :5 +9
-log 9 >.. USER baz 0 * :baz
-log 9 >.. NICK :baz
+log 9 > USER baz 0 * :baz
+log 9 > NICK :baz
 servermsg 2 FAKE_IRC_CONN_ABORT_EXCEPTION
-log 9 $.. connection_state set to: [broken: FAKE_IRC_CONN_ABORT_EXCEPTION]
+log 9 $ connection_state set to: [broken: FAKE_IRC_CONN_ABORT_EXCEPTION]
 insert disconnect : +9
-log 9 $!. will retry connecting in 1 seconds
+log 9 $ will retry connecting in 1 seconds
 
 # check that (save TUI tests assuming start on window 0, and no 4 yet) on reconnect, all the same effects can be expected
 > /reconnect
 insert conn_init_0 1:3 +1
-log 2,3,4,5,6,7 $.. CONNECTED
+log 2,3,4,5,6,7 $ CONNECTED
 insert conn_init_0 4: +1
 insert conn_init_1 : +0
 insert conn_init_2 :1 +0
-log 1 >.. JOIN :#testtest
+log 1 > JOIN :#testtest
 insert conn_init_2 1: +0
 insert during_conn : +0
index b0aca13087038ffb22b24781eadb5f7f5724573c..185140d3d9378bf14b86667ba08d375902258960 100644 (file)
@@ -133,117 +133,117 @@ insert prompt-empty : +23
 
 × history_0
 line 0 on_black,bright_white 20§§-§§-§§ §§
-line 1 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: not prefixed by / §§
-line 2 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /foo unknown §§
-line 3 on_black,bright_cyan #.. §§:§§:§§ commands available in this window:§§
-line 4 on_black,bright_cyan #.. §§:§§:§§   /connect HOST_PORT [NICKNAME_PW] [REALNAME_USERNAME]§§
-line 5 on_black,bright_cyan #.. §§:§§:§§   /help§§
-line 6 on_black,bright_cyan #.. §§:§§:§§   /list§§
-line 7 on_black,bright_cyan #.. §§:§§:§§   /prompt_enter§§
-line 8 on_black,bright_cyan #.. §§:§§:§§   /quit§§
-line 9 on_black,bright_cyan #.. §§:§§:§§   /window TOWARDS§§
-line 10 on_black,bright_cyan #.. §§:§§:§§   /window.history.scroll DIRECTION§§
-line 11 on_black,bright_cyan #.. §§:§§:§§   /window.paste
-line 12 on_black,bright_cyan #.. §§:§§:§§   /window.prompt.backspace§§
-line 13 on_black,bright_cyan #.. §§:§§:§§   /window.prompt.move_cursor DIRECTION§§
-line 14 on_black,bright_cyan #.. §§:§§:§§   /window.prompt.scroll DIRECTION§§
-line 15 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /0 unknown§§
-line 16 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /1 unknown§§
-line 17 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /2 unknown§§
-line 18 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /3 unknown§§
-line 19 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /4 unknown§§
-line 20 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /5 unknown§§
-line 21 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /6 unknown§§
-line 22 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /7 unknown§§
-line 23 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /foo_0123456789_0123456789_01234567 unknown§§
-line 24 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /foo_0123456789_0123456789_012345678§§
+line 1 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: not prefixed by / §§
+line 2 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /foo unknown §§
+line 3 on_black,bright_cyan # §§:§§:§§ commands available in this window:§§
+line 4 on_black,bright_cyan # §§:§§:§§   /connect HOST_PORT [NICKNAME_PW] [REALNAME_USERNAME]§§
+line 5 on_black,bright_cyan # §§:§§:§§   /help§§
+line 6 on_black,bright_cyan # §§:§§:§§   /list§§
+line 7 on_black,bright_cyan # §§:§§:§§   /prompt_enter§§
+line 8 on_black,bright_cyan # §§:§§:§§   /quit§§
+line 9 on_black,bright_cyan # §§:§§:§§   /window TOWARDS§§
+line 10 on_black,bright_cyan # §§:§§:§§   /window.history.scroll DIRECTION§§
+line 11 on_black,bright_cyan # §§:§§:§§   /window.paste
+line 12 on_black,bright_cyan # §§:§§:§§   /window.prompt.backspace§§
+line 13 on_black,bright_cyan # §§:§§:§§   /window.prompt.move_cursor DIRECTION§§
+line 14 on_black,bright_cyan # §§:§§:§§   /window.prompt.scroll DIRECTION§§
+line 15 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /0 unknown§§
+line 16 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /1 unknown§§
+line 17 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /2 unknown§§
+line 18 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /3 unknown§§
+line 19 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /4 unknown§§
+line 20 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /5 unknown§§
+line 21 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /6 unknown§§
+line 22 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /7 unknown§§
+line 23 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /foo_0123456789_0123456789_0123456789 unknown§§
+line 24 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /foo_0123456789_0123456789_0123456789_§§
 line 25 on_black,bright_red,bold    unknown§§
-line 26 on_black,bright_red,bold #!. §§:§§:§§ invalid prompt command: /bar_0123456789_0123456789_012345678§§
+line 26 on_black,bright_red,bold # §§:§§:§§ invalid prompt command: /bar_0123456789_0123456789_0123456789_§§
 line 27 on_black,bright_red,bold    unknown§§
-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 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§§
 
 × history_1
 line 0 on_black,bright_white 20§§-§§-§§ §§
-line 1 on_black,bright_yellow $.. §§:§§:§§ isupport cleared
-line 2 on_black,bright_yellow $.. §§:§§:§§ isupport:CHANTYPES set to: [#&]
-line 3 on_black,bright_yellow $.. §§:§§:§§ isupport:PREFIX set to: [(ov)@+]
-line 4 on_black,bright_yellow $.. §§:§§:§§ isupport:USERLEN set to: [10]
-line 5 on_black,bright_yellow $.. §§:§§:§§ caps cleared
-line 6 on_black,bright_yellow $.. §§:§§:§§ users cleared
-line 7 on_black,bright_yellow $.. §§:§§:§§ channels cleared
-line 8 on_black,bright_yellow $.. §§:§§:§§ hostname set to: [foo.bar.baz]
-line 9 on_black,bright_yellow $.. §§:§§:§§ port set to: [-1]
-line 10 on_black,bright_yellow $.. §§:§§:§§ nick_wanted set to: [foo]
-line 11 on_black,bright_yellow $.. §§:§§:§§ user_wanted set to: [baz]
-line 12 on_black,bright_yellow $.. §§:§§:§§ realname set to: [bar]
-line 13 on_black,bright_yellow $.. §§:§§:§§ port set to: [6697]
-line 14 on_black,bright_yellow $.. §§:§§:§§ connection_state set to: [connecting]
-line 15 on_black,bright_yellow $.. §§:§§:§§ connection_state set to: [connected]
-line 16 on_black,bright_green >.. §§:§§:§§ CAP LS :302§§
-line 17 on_black,bright_green >.. §§:§§:§§ USER baz 0 * :bar§§
-line 18 on_black,bright_green >.. §§:§§:§§ NICK :foo§§
-line 19 on_black,bright_white <.. §§:§§:§§ PING :?
-line 20 on_black,bright_green >.. §§:§§:§§ PONG :?
-line 21 on_black,bright_white <.. §§:§§:§§ PING :123456789 123456789 123456789 123456789 123456789 123456789§§
+line 1 on_black,bright_yellow $ §§:§§:§§ isupport cleared
+line 2 on_black,bright_yellow $ §§:§§:§§ isupport:CHANTYPES set to: [#&]
+line 3 on_black,bright_yellow $ §§:§§:§§ isupport:PREFIX set to: [(ov)@+]
+line 4 on_black,bright_yellow $ §§:§§:§§ isupport:USERLEN set to: [10]
+line 5 on_black,bright_yellow $ §§:§§:§§ caps cleared
+line 6 on_black,bright_yellow $ §§:§§:§§ users cleared
+line 7 on_black,bright_yellow $ §§:§§:§§ channels cleared
+line 8 on_black,bright_yellow $ §§:§§:§§ hostname set to: [foo.bar.baz]
+line 9 on_black,bright_yellow $ §§:§§:§§ port set to: [-1]
+line 10 on_black,bright_yellow $ §§:§§:§§ nick_wanted set to: [foo]
+line 11 on_black,bright_yellow $ §§:§§:§§ user_wanted set to: [baz]
+line 12 on_black,bright_yellow $ §§:§§:§§ realname set to: [bar]
+line 13 on_black,bright_yellow $ §§:§§:§§ port set to: [6697]
+line 14 on_black,bright_yellow $ §§:§§:§§ connection_state set to: [connecting]
+line 15 on_black,bright_yellow $ §§:§§:§§ connection_state set to: [connected]
+line 16 on_black,bright_green > §§:§§:§§ CAP LS :302§§
+line 17 on_black,bright_green > §§:§§:§§ USER baz 0 * :bar§§
+line 18 on_black,bright_green > §§:§§:§§ NICK :foo§§
+line 19 on_black,bright_white < §§:§§:§§ PING :?
+line 20 on_black,bright_green > §§:§§:§§ PONG :?
+line 21 on_black,bright_white < §§:§§:§§ PING :9 123456789 123456789 123456789 123456789 123456789 123456789§§
 line 22 on_black,bright_white    123456789 123456789§§
-line 23 on_black,bright_green >.. §§:§§:§§ PONG :123456789 123456789 123456789 123456789 123456789 123456789§§
+line 23 on_black,bright_green > §§:§§:§§ PONG :9 123456789 123456789 123456789 123456789 123456789 123456789§§
 line 24 on_black,bright_green    123456789 123456789§§
-line 25 on_black,bright_white <.. §§:§§:§§ PING :foo
-line 26 on_black,bright_green >.. §§:§§:§§ PONG :foo
-line 27 on_black,bright_white <.. §§:§§:§§ PING :bar
-line 28 on_black,bright_green >.. §§:§§:§§ PONG :bar
-line 29 on_black,bright_white <.. §§:§§:§§ PING :baz
-line 30 on_black,bright_green >.. §§:§§:§§ PONG :baz
-line 31 on_black,bright_white <.. §§:§§:§§ PING :0
-line 32 on_black,bright_green >.. §§:§§:§§ PONG :0
-line 33 on_black,bright_white <.. §§:§§:§§ PING :1
-line 34 on_black,bright_green >.. §§:§§:§§ PONG :1
-line 35 on_black,bright_white <.. §§:§§:§§ PING :2
-line 36 on_black,bright_green >.. §§:§§:§§ PONG :2
-line 37 on_black,bright_white <.. §§:§§:§§ PING :3
-line 38 on_black,bright_green >.. §§:§§:§§ PONG :3
-line 39 on_black,bright_white <.. §§:§§:§§ PING :4
-line 40 on_black,bright_green >.. §§:§§:§§ PONG :4
-line 41 on_black,bright_white <.. §§:§§:§§ PING :5
-line 42 on_black,bright_green >.. §§:§§:§§ PONG :5
-line 43 on_black,bright_white <.. §§:§§:§§ PING :6
-line 44 on_black,bright_green >.. §§:§§:§§ PONG :6
-line 45 on_black,bright_white <.. §§:§§:§§ PING :7
-line 46 on_black,bright_green >.. §§:§§:§§ PONG :7
-line 47 on_black,bright_white <.. §§:§§:§§ PING :8
-line 48 on_black,bright_green >.. §§:§§:§§ PONG :8
-line 49 on_black,bright_white <.. §§:§§:§§ PING :9
-line 50 on_black,bright_green >.. §§:§§:§§ PONG :9
-line 51 on_black,bright_white <.. §§:§§:§§ PING :10
-line 52 on_black,bright_green >.. §§:§§:§§ PONG :10
-line 53 on_black,bright_white <.. §§:§§:§§ PING :11
-line 54 on_black,bright_green >.. §§:§§:§§ PONG :11
-line 55 on_black,bright_white <.. §§:§§:§§ PING :12
-line 56 on_black,bright_green >.. §§:§§:§§ PONG :12
-line 57 on_black,bright_white <.. §§:§§:§§ PING :13
-line 58 on_black,bright_green >.. §§:§§:§§ PONG :13
-line 59 on_black,bright_white <.. §§:§§:§§ PING :14
-line 60 on_black,bright_green >.. §§:§§:§§ PONG :14
-line 61 on_black,bright_white <.. §§:§§:§§ PING :15
-line 62 on_black,bright_green >.. §§:§§:§§ PONG :15
-line 63 on_black,bright_white <.. §§:§§:§§ PING :16
-line 64 on_black,bright_green >.. §§:§§:§§ PONG :16
-line 65 on_black,bright_white <.. §§:§§:§§ PING :17
-line 66 on_black,bright_green >.. §§:§§:§§ PONG :17
-line 67 on_black,bright_white <.. §§:§§:§§ PING :18
-line 68 on_black,bright_green >.. §§:§§:§§ PONG :18
-line 69 on_black,bright_white <.. §§:§§:§§ PING :19
-line 70 on_black,bright_green >.. §§:§§:§§ PONG :19
-line 71 on_black,bright_white <.. §§:§§:§§ PING :20
-line 72 on_black,bright_green >.. §§:§§:§§ PONG :20
-line 73 on_black,bright_white <.. §§:§§:§§ PING :21
-line 74 on_black,bright_green >.. §§:§§:§§ PONG :21
-line 75 on_black,bright_white <.. §§:§§:§§ PING :22
-line 76 on_black,bright_green >.. §§:§§:§§ PONG :22
-line 77 on_black,bright_white <.. §§:§§:§§ PING :23
-line 78 on_black,bright_green >.. §§:§§:§§ PONG :23
+line 25 on_black,bright_white < §§:§§:§§ PING :foo
+line 26 on_black,bright_green > §§:§§:§§ PONG :foo
+line 27 on_black,bright_white < §§:§§:§§ PING :bar
+line 28 on_black,bright_green > §§:§§:§§ PONG :bar
+line 29 on_black,bright_white < §§:§§:§§ PING :baz
+line 30 on_black,bright_green > §§:§§:§§ PONG :baz
+line 31 on_black,bright_white < §§:§§:§§ PING :0
+line 32 on_black,bright_green > §§:§§:§§ PONG :0
+line 33 on_black,bright_white < §§:§§:§§ PING :1
+line 34 on_black,bright_green > §§:§§:§§ PONG :1
+line 35 on_black,bright_white < §§:§§:§§ PING :2
+line 36 on_black,bright_green > §§:§§:§§ PONG :2
+line 37 on_black,bright_white < §§:§§:§§ PING :3
+line 38 on_black,bright_green > §§:§§:§§ PONG :3
+line 39 on_black,bright_white < §§:§§:§§ PING :4
+line 40 on_black,bright_green > §§:§§:§§ PONG :4
+line 41 on_black,bright_white < §§:§§:§§ PING :5
+line 42 on_black,bright_green > §§:§§:§§ PONG :5
+line 43 on_black,bright_white < §§:§§:§§ PING :6
+line 44 on_black,bright_green > §§:§§:§§ PONG :6
+line 45 on_black,bright_white < §§:§§:§§ PING :7
+line 46 on_black,bright_green > §§:§§:§§ PONG :7
+line 47 on_black,bright_white < §§:§§:§§ PING :8
+line 48 on_black,bright_green > §§:§§:§§ PONG :8
+line 49 on_black,bright_white < §§:§§:§§ PING :9
+line 50 on_black,bright_green > §§:§§:§§ PONG :9
+line 51 on_black,bright_white < §§:§§:§§ PING :10
+line 52 on_black,bright_green > §§:§§:§§ PONG :10
+line 53 on_black,bright_white < §§:§§:§§ PING :11
+line 54 on_black,bright_green > §§:§§:§§ PONG :11
+line 55 on_black,bright_white < §§:§§:§§ PING :12
+line 56 on_black,bright_green > §§:§§:§§ PONG :12
+line 57 on_black,bright_white < §§:§§:§§ PING :13
+line 58 on_black,bright_green > §§:§§:§§ PONG :13
+line 59 on_black,bright_white < §§:§§:§§ PING :14
+line 60 on_black,bright_green > §§:§§:§§ PONG :14
+line 61 on_black,bright_white < §§:§§:§§ PING :15
+line 62 on_black,bright_green > §§:§§:§§ PONG :15
+line 63 on_black,bright_white < §§:§§:§§ PING :16
+line 64 on_black,bright_green > §§:§§:§§ PONG :16
+line 65 on_black,bright_white < §§:§§:§§ PING :17
+line 66 on_black,bright_green > §§:§§:§§ PONG :17
+line 67 on_black,bright_white < §§:§§:§§ PING :18
+line 68 on_black,bright_green > §§:§§:§§ PONG :18
+line 69 on_black,bright_white < §§:§§:§§ PING :19
+line 70 on_black,bright_green > §§:§§:§§ PONG :19
+line 71 on_black,bright_white < §§:§§:§§ PING :20
+line 72 on_black,bright_green > §§:§§:§§ PONG :20
+line 73 on_black,bright_white < §§:§§:§§ PING :21
+line 74 on_black,bright_green > §§:§§:§§ PONG :21
+line 75 on_black,bright_white < §§:§§:§§ PING :22
+line 76 on_black,bright_green > §§:§§:§§ PONG :22
+line 77 on_black,bright_white < §§:§§:§§ PING :23
+line 78 on_black,bright_green > §§:§§:§§ PONG :23
 
 ×
 
@@ -265,7 +265,7 @@ insert status-[0]-prompt : +22
 
 # non-empty command input starts log at bottom, with date above it
 > foo
-log 0 #!. invalid prompt command: not prefixed by /
+log 0 # invalid prompt command: not prefixed by /
 insert lines-empty :20 +0
 insert history_0 :2 +20
 insert status-[0]-prompt : +22
@@ -282,7 +282,7 @@ insert status-[0]-prompt : +22
 
 # further inputs grow log upwards
 > /foo
-log 0 #!. invalid prompt command: /foo unknown
+log 0 # invalid prompt command: /foo unknown
 insert lines-empty :19 +0
 insert history_0 :3 +19
 insert status-[0]-prompt : +22
@@ -307,18 +307,18 @@ insert history_0 :1 +20
 insert scrolldown-2 : +21
 insert status-[0]-prompt : +22
 > /help
-log 0 #.. commands available in this window:
-log 0 #..   /connect HOST_PORT [NICKNAME_PW] [REALNAME_USERNAME]
-log 0 #..   /help
-log 0 #..   /list
-log 0 #..   /prompt_enter
-log 0 #..   /quit
-log 0 #..   /window TOWARDS
-log 0 #..   /window.history.scroll DIRECTION
-log 0 #..   /window.paste
-log 0 #..   /window.prompt.backspace
-log 0 #..   /window.prompt.move_cursor DIRECTION
-log 0 #..   /window.prompt.scroll DIRECTION
+log 0 # commands available in this window:
+log 0 #   /connect HOST_PORT [NICKNAME_PW] [REALNAME_USERNAME]
+log 0 #   /help
+log 0 #   /list
+log 0 #   /prompt_enter
+log 0 #   /quit
+log 0 #   /window TOWARDS
+log 0 #   /window.history.scroll DIRECTION
+log 0 #   /window.paste
+log 0 #   /window.prompt.backspace
+log 0 #   /window.prompt.move_cursor DIRECTION
+log 0 #   /window.prompt.scroll DIRECTION
 insert lines-empty :20 +0
 insert history_0 :1 +20
 insert scrolldown-14 : +21
@@ -349,21 +349,21 @@ insert lines-empty :7 +0
 insert history_0 :15 +7
 insert status-[0]-prompt : +22
 > /0
-log 0 #!. invalid prompt command: /0 unknown
+log 0 # invalid prompt command: /0 unknown
 > /1
-log 0 #!. invalid prompt command: /1 unknown
+log 0 # invalid prompt command: /1 unknown
 > /2
-log 0 #!. invalid prompt command: /2 unknown
+log 0 # invalid prompt command: /2 unknown
 > /3
-log 0 #!. invalid prompt command: /3 unknown
+log 0 # invalid prompt command: /3 unknown
 > /4
-log 0 #!. invalid prompt command: /4 unknown
+log 0 # invalid prompt command: /4 unknown
 > /5
-log 0 #!. invalid prompt command: /5 unknown
+log 0 # invalid prompt command: /5 unknown
 > /6
-log 0 #!. invalid prompt command: /6 unknown
+log 0 # invalid prompt command: /6 unknown
 > /7
-log 0 #!. invalid prompt command: /7 unknown
+log 0 # invalid prompt command: /7 unknown
 insert history_0 1:23 +0
 insert status-[0]-prompt : +22
 
@@ -381,10 +381,10 @@ insert status-[0]-prompt : +22
 
 # check wrapping
 > /window.history.scroll down
-> /foo_0123456789_0123456789_01234567
-log 0 #!. invalid prompt command: /foo_0123456789_0123456789_01234567 unknown
-> /foo_0123456789_0123456789_012345678
-log 0 #!. invalid prompt command: /foo_0123456789_0123456789_012345678 unknown
+> /foo_0123456789_0123456789_0123456789
+log 0 # invalid prompt command: /foo_0123456789_0123456789_0123456789 unknown
+> /foo_0123456789_0123456789_0123456789_
+log 0 # invalid prompt command: /foo_0123456789_0123456789_0123456789_ unknown
 insert history_0 4:26 +0
 insert status-[0]-prompt : +22
 
@@ -405,9 +405,9 @@ insert history_0 :15 +6
 insert scrolldown-10 : +21
 insert status-[0]-prompt : +22
 
-# check wrapped input only increases below-scroll count by one 
-> /bar_0123456789_0123456789_012345678
-log 0 #!. invalid prompt command: /bar_0123456789_0123456789_012345678 unknown
+# check wrapped input only increases below-scroll count by one
+> /bar_0123456789_0123456789_0123456789_
+log 0 # invalid prompt command: /bar_0123456789_0123456789_0123456789_ unknown
 insert lines-empty :6 +0
 insert history_0 :15 +6
 insert scrolldown-11 : +21
@@ -438,26 +438,26 @@ insert status-[0:1]-prompt : +22
 
 # check that triggering creation of new window with new lines adds it to status, with unread-lines count
 > /connect foo.bar.baz foo bar:baz
-log 1 $.. isupport cleared
-log 1 $.. isupport:CHANTYPES set to: [#&]
-log 1 $.. isupport:PREFIX set to: [(ov)@+]
-log 1 $.. isupport:USERLEN set to: [10]
-log 1 $.. caps cleared
-log 1 $.. users cleared
-log 1 $.. channels cleared
-log , $.. DISCONNECTED
-log 1 $.. hostname set to: [foo.bar.baz]
-log 1 $.. port set to: [-1]
-log 1 $.. nick_wanted set to: [foo]
-log 1 $.. user_wanted set to: [baz]
-log 1 $.. realname set to: [bar]
-log 1 $.. port set to: [6697]
-log 1 $.. connection_state set to: [connecting]
-log 1 $.. connection_state set to: [connected]
-log , $.. CONNECTED
-log 1 >.. CAP LS :302
-log 1 >.. USER baz 0 * :bar
-log 1 >.. NICK :foo
+log 1 $ isupport cleared
+log 1 $ isupport:CHANTYPES set to: [#&]
+log 1 $ isupport:PREFIX set to: [(ov)@+]
+log 1 $ isupport:USERLEN set to: [10]
+log 1 $ caps cleared
+log 1 $ users cleared
+log 1 $ channels cleared
+log , $ DISCONNECTED
+log 1 $ hostname set to: [foo.bar.baz]
+log 1 $ port set to: [-1]
+log 1 $ nick_wanted set to: [foo]
+log 1 $ user_wanted set to: [baz]
+log 1 $ realname set to: [bar]
+log 1 $ port set to: [6697]
+log 1 $ connection_state set to: [connecting]
+log 1 $ connection_state set to: [connected]
+log , $ CONNECTED
+log 1 > CAP LS :302
+log 1 > USER baz 0 * :bar
+log 1 > NICK :foo
 insert lines-empty :20 +0
 insert history_0 :1 +20
 insert scrolldown-25 : +21
@@ -519,19 +519,19 @@ insert status-[0]-1-prompt : +22
 
 # check new lines push bookmark up
 > /list
-log 0 #.. windows available via /window:
-log 0 #..   0) :start
-log 0 #..   1) foo.bar.baz:debug
+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 : +22
 
 # 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 :123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
-log 1 >.. PONG :123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+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
@@ -546,8 +546,8 @@ insert status-0-[1]-prompt : +22
 
 ### # check that growth below scroll does not by itself re-position bookmark in history
 > /window.history.scroll up
-loggedservermsg 0 1 <.. PING :foo
-log 1 >.. PONG :foo
+loggedservermsg 0 1 < PING :foo
+log 1 > PONG :foo
 insert lines-empty :6 +0
 insert history_1 0:15 +6
 insert scrolldown-10 : +21
@@ -572,8 +572,8 @@ insert status-0-[1:2]-prompt : +22
 
 # 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
+loggedservermsg 0 1 < PING :bar
+log 1 > PONG :bar
 insert history_0 10:31 +0
 insert bookmark : +21
 insert status-[0]-1:4-prompt : +22
@@ -590,8 +590,8 @@ insert history_1 :15 +6
 insert scrolldown-12 : +21
 insert status-0-[1:4]-prompt : +22
 > /window 0
-loggedservermsg 0 1 <.. PING :baz
-log 1 >.. PONG :baz
+loggedservermsg 0 1 < PING :baz
+log 1 > PONG :baz
 insert history_0 10:31 +0
 insert bookmark : +21
 insert status-[0]-1:6-prompt : +22
@@ -612,8 +612,8 @@ insert history_1 25:31 +16
 insert status-0-[1]-prompt : +22
 
 # check log growth beyond max depth only remarkable after scrolling up to limit
-loggedservermsg 0 1 <.. PING :0
-log 1 >.. PONG :0
+loggedservermsg 0 1 < PING :0
+log 1 > PONG :0
 insert history_1 12:25 +0
 insert bookmark : +13
 insert history_1 25:33 +14
@@ -634,8 +634,8 @@ insert scrolldown-29 : +21
 insert status-0-[1]-prompt : +22
 
 # check cut-off log growth seen from topmost scroll not affecting scrolldown count, but unread-lines status
-loggedservermsg 0 1 <.. PING :0
-log 1 >.. PONG :0
+loggedservermsg 0 1 < PING :0
+log 1 > PONG :0
 insert lines-empty :20 +0
 insert history_1 3:4 +20
 insert scrolldown-29 : +21
@@ -646,36 +646,36 @@ insert status-0-[1:2]-prompt : +22
 insert history_0 10:31 +0
 insert bookmark : +21
 insert status-[0]-1:2-prompt : +22
-loggedservermsg 0 1 <.. PING :1
-log 1 >.. PONG :1
-loggedservermsg 0 1 <.. PING :2
-log 1 >.. PONG :2
-loggedservermsg 0 1 <.. PING :3
-log 1 >.. PONG :3
-loggedservermsg 0 1 <.. PING :4
-log 1 >.. PONG :4
-loggedservermsg 0 1 <.. PING :5
-log 1 >.. PONG :5
-loggedservermsg 0 1 <.. PING :6
-log 1 >.. PONG :6
-loggedservermsg 0 1 <.. PING :7
-log 1 >.. PONG :7
-loggedservermsg 0 1 <.. PING :8
-log 1 >.. PONG :8
-loggedservermsg 0 1 <.. PING :9
-log 1 >.. PONG :9
-loggedservermsg 0 1 <.. PING :10
-log 1 >.. PONG :10
-loggedservermsg 0 1 <.. PING :11
-log 1 >.. PONG :11
-loggedservermsg 0 1 <.. PING :12
-log 1 >.. PONG :12
-loggedservermsg 0 1 <.. PING :13
-log 1 >.. PONG :13
-loggedservermsg 0 1 <.. PING :14
-log 1 >.. PONG :14
-loggedservermsg 0 1 <.. PING :15
-log 1 >.. PONG :15
+loggedservermsg 0 1 < PING :1
+log 1 > PONG :1
+loggedservermsg 0 1 < PING :2
+log 1 > PONG :2
+loggedservermsg 0 1 < PING :3
+log 1 > PONG :3
+loggedservermsg 0 1 < PING :4
+log 1 > PONG :4
+loggedservermsg 0 1 < PING :5
+log 1 > PONG :5
+loggedservermsg 0 1 < PING :6
+log 1 > PONG :6
+loggedservermsg 0 1 < PING :7
+log 1 > PONG :7
+loggedservermsg 0 1 < PING :8
+log 1 > PONG :8
+loggedservermsg 0 1 < PING :9
+log 1 > PONG :9
+loggedservermsg 0 1 < PING :10
+log 1 > PONG :10
+loggedservermsg 0 1 < PING :11
+log 1 > PONG :11
+loggedservermsg 0 1 < PING :12
+log 1 > PONG :12
+loggedservermsg 0 1 < PING :13
+log 1 > PONG :13
+loggedservermsg 0 1 < PING :14
+log 1 > PONG :14
+loggedservermsg 0 1 < PING :15
+log 1 > PONG :15
 insert history_0 10:31 +0
 insert bookmark : +21
 insert status-[0]-1:32-prompt : +22
@@ -700,8 +700,8 @@ insert history_1 41:61 +0
 insert status-0-[1]-prompt : +22
 
 # check bookmark remains absent with log growing while scrolled to bottom, …
-loggedservermsg 0 1 <.. PING :16
-log 1 >.. PONG :16
+loggedservermsg 0 1 < PING :16
+log 1 > PONG :16
 insert history_1 43:63 +0
 insert status-0-[1]-prompt : +22
 
@@ -711,8 +711,8 @@ insert lines-empty :2 +0
 insert history_1 35:54 +2
 insert scrolldown-11 : +21
 insert status-0-[1]-prompt : +22
-loggedservermsg 0 1 <.. PING :17
-log 1 >.. PONG :17
+loggedservermsg 0 1 < PING :17
+log 1 > PONG :17
 insert lines-empty :4 +0
 insert history_1 37:54 +4
 insert scrolldown-13 : +21
@@ -731,36 +731,36 @@ insert lines-empty :2 +0
 insert history_1 37:54 +2
 insert scrolldown-11 : +21
 insert status-0-[1]-prompt : +22
-loggedservermsg 0 1 <.. PING :18
-log 1 >.. PONG :18
-loggedservermsg 0 1 <.. PING :19
-log 1 >.. PONG :19
-loggedservermsg 0 1 <.. PING :20
-log 1 >.. PONG :20
-loggedservermsg 0 1 <.. PING :21
-log 1 >.. PONG :21
-loggedservermsg 0 1 <.. PING :22
-log 1 >.. PONG :22
-loggedservermsg 0 1 <.. PING :23
-log 1 >.. PONG :23
-loggedservermsg 0 1 <.. PING :24
-log 1 >.. PONG :24
-loggedservermsg 0 1 <.. PING :25
-log 1 >.. PONG :25
-loggedservermsg 0 1 <.. PING :26
-log 1 >.. PONG :26
-loggedservermsg 0 1 <.. PING :27
-log 1 >.. PONG :27
-loggedservermsg 0 1 <.. PING :28
-log 1 >.. PONG :28
-loggedservermsg 0 1 <.. PING :29
-log 1 >.. PONG :29
-loggedservermsg 0 1 <.. PING :30
-log 1 >.. PONG :30
-loggedservermsg 0 1 <.. PING :31
-log 1 >.. PONG :31
-loggedservermsg 0 1 <.. PING :32
-log 1 >.. PONG :32
+loggedservermsg 0 1 < PING :18
+log 1 > PONG :18
+loggedservermsg 0 1 < PING :19
+log 1 > PONG :19
+loggedservermsg 0 1 < PING :20
+log 1 > PONG :20
+loggedservermsg 0 1 < PING :21
+log 1 > PONG :21
+loggedservermsg 0 1 < PING :22
+log 1 > PONG :22
+loggedservermsg 0 1 < PING :23
+log 1 > PONG :23
+loggedservermsg 0 1 < PING :24
+log 1 > PONG :24
+loggedservermsg 0 1 < PING :25
+log 1 > PONG :25
+loggedservermsg 0 1 < PING :26
+log 1 > PONG :26
+loggedservermsg 0 1 < PING :27
+log 1 > PONG :27
+loggedservermsg 0 1 < PING :28
+log 1 > PONG :28
+loggedservermsg 0 1 < PING :29
+log 1 > PONG :29
+loggedservermsg 0 1 < PING :30
+log 1 > PONG :30
+loggedservermsg 0 1 < PING :31
+log 1 > PONG :31
+loggedservermsg 0 1 < PING :32
+log 1 > PONG :32
 insert lines-empty :20 +0
 insert history_1 67:68 +20
 insert scrolldown-29 : +21
index fbf3ade5cd92f9ebc24f41a2e416f4f5a26e4fa7..48b418ddc5c9d03a9848b78035ae500b10ef8916 100644 (file)
@@ -1,76 +1,76 @@
 > /connect foo.bar.baz foo bar:baz
-log 1 $.. isupport cleared
-log 1 $.. isupport:CHANTYPES set to: [#&]
-log 1 $.. isupport:PREFIX set to: [(ov)@+]
-log 1 $.. isupport:USERLEN set to: [10]
-log 1 $.. caps cleared
-log 1 $.. users cleared
-log 1 $.. channels cleared
-log , $.. DISCONNECTED
-log 1 $.. hostname set to: [foo.bar.baz]
-log 1 $.. port set to: [-1]
-log 1 $.. nick_wanted set to: [foo]
-log 1 $.. user_wanted set to: [baz]
-log 1 $.. realname set to: [bar]
-log 1 $.. port set to: [6697]
-log 1 $.. connection_state set to: [connecting]
-log 1 $.. connection_state set to: [connected]
-log , $.. CONNECTED
-log 1 >.. CAP LS :302
-log 1 >.. USER baz 0 * :bar
-log 1 >.. NICK :foo
+log 1 $ isupport cleared
+log 1 $ isupport:CHANTYPES set to: [#&]
+log 1 $ isupport:PREFIX set to: [(ov)@+]
+log 1 $ isupport:USERLEN set to: [10]
+log 1 $ caps cleared
+log 1 $ users cleared
+log 1 $ channels cleared
+log , $ DISCONNECTED
+log 1 $ hostname set to: [foo.bar.baz]
+log 1 $ port set to: [-1]
+log 1 $ nick_wanted set to: [foo]
+log 1 $ user_wanted set to: [baz]
+log 1 $ realname set to: [bar]
+log 1 $ port set to: [6697]
+log 1 $ connection_state set to: [connecting]
+log 1 $ connection_state set to: [connected]
+log , $ CONNECTED
+log 1 > CAP LS :302
+log 1 > USER baz 0 * :bar
+log 1 > NICK :foo
 > /window 1
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo :Welcome to the foo.bar.baz network
-log 1 $.. users:me:nick set to: [?]
-log 1 $.. users:me:nick set to: [foo]
+loggedservermsg 0 1 < :foo.bar.baz 001 foo :Welcome to the foo.bar.baz network
+log 1 $ users:me:nick set to: [?]
+log 1 $ users:me:nick set to: [foo]
 
 # check full line not wrapped
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678 0
-line 21 on_black,bright_white <.. §§:§§:§§ :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678 0§§
+loggedservermsg 0 1 < :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678 0
+line 21 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678 0§§
 
 # check wrap if last space-separated item one char too long 
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678 01
-line 20 on_black,bright_white <.. §§:§§:§§ :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678§§
+loggedservermsg 0 1 < :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 12345678 01
+line 20 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 12345678§§
 line 21 on_black,bright_white    01§§
 
 # check wrap if item starts right after width-final space
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 123456789 1
-line 20 on_black,bright_white <.. §§:§§:§§ :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 123456789§§
+loggedservermsg 0 1 < :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 123456789 1
+line 20 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 123456789§§
 line 21 on_black,bright_white    1§§
 
 # check wrap if item starts right after space after item extending to end of width
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 1234567890 2
-line 20 on_black,bright_white <.. §§:§§:§§ :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 1234567890§§
+loggedservermsg 0 1 < :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 1234567890 2
+line 20 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 1234567890§§
 line 21 on_black,bright_white    2§§
 
 # check wrap if item starts right after double-space after item extending to end of width
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 1234567890  3
-line 20 on_black,bright_white <.. §§:§§:§§ :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 1234567890§§
+loggedservermsg 0 1 < :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 1234567890  3
+line 20 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 1234567890§§
 line 21 on_black,bright_white     3§§
 
 # check wrap on item too large to fit into screen width minus indent
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo :2345678_1_2345678_2_2345678_3_2345678_4_2345678_5_2345678_6_2345678_7_2345678
-line 19 on_black,bright_white <.. §§:§§:§§ :foo.bar.baz 001 foo§§
+loggedservermsg 0 1 < :foo.bar.baz 001 foo :2345678_1_2345678_2_2345678_3_2345678_4_2345678_5_2345678_6_2345678_7_2345678
+line 19 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo§§
 line 20 on_black,bright_white    :2345678_1_2345678_2_2345678_3_2345678_4_2345678_5_2345678_6_2345678_7_234567§§
 line 21 on_black,bright_white   8
 
 # check wrapping calculation on double-width character (tbh not much of a test since the tester itself counts specifically this char as two, so it's pretty much the same as above testing with a sequence of two ASCII chars; mostly just ensures that the wrapping code relies on Terminal.length_to_term)
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 1234567 💓
-line 21 on_black,bright_white <.. §§:§§:§§ :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 1234567 💓§§
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678 💓
-line 20 on_black,bright_white <.. §§:§§:§§ :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678§§
+loggedservermsg 0 1 < :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 1234567 💓
+line 21 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 1234567 💓§§
+loggedservermsg 0 1 < :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 12345678 💓
+line 20 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 12345678§§
 line 21 on_black,bright_white    💓§§
-loggedservermsg 0 1 <.. :foo.bar.baz 001 foo :2345678_1_2345678_2_2345678_3_2345678_4_2345678_5_2345678_6_2345678_7_23456💓
-line 19 on_black,bright_white <.. §§:§§:§§ :foo.bar.baz 001 foo§§
+loggedservermsg 0 1 < :foo.bar.baz 001 foo :2345678_1_2345678_2_2345678_3_2345678_4_2345678_5_2345678_6_2345678_7_23456💓
+line 19 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo§§
 line 20 on_black,bright_white    :2345678_1_2345678_2_2345678_3_2345678_4_2345678_5_2345678_6_2345678_7_23456§§
 line 21 on_black,bright_white   💓§§
 
 # check interpretation and escape of formatting characters
-servermsg 0 :*.?.net NOTICE * :*** checking {esc|ape}s, formatting not counting into wrap
-log 1 <.. :*.?.net NOTICE * :*** checking {{esc|ape{}s, formatting not counting into wrap
-log 2 <.. ({bold|server}) *** checking {{esc|ape{}s, formatting not counting into wrap
-line 20 on_black,bright_white <.. §§:§§:§§ :*.?.net NOTICE * :*** checking {esc|ape}s, formatting not counting§§
+servermsg 0 :*.?.net NOTICE * :*** check that {esc|ape}s, formatting not counting into wrap
+log 1 < :*.?.net NOTICE * :*** check that {esc|ape}s, formatting not counting into wrap
+log 2 < (server) *** check that {esc|ape}s, formatting not counting into wrap
+line 20 on_black,bright_white < §§:§§:§§ :*.?.net NOTICE * :*** check that {esc|ape}s, formatting not counting§§
 line 21 on_black,bright_white    into wrap§§
 > /window 2
-line 21 on_black,bright_white <.. §§:§§:§§ (§§§§§§) *** checking {esc|ape}s, formatting not counting into wrap§§
-line 21 on_black,bright_white,bold §§§§§§§§§§§§§§server§
+line 21 on_black,bright_white < §§:§§:§§ (§§§§§§) *** check that {esc|ape}s, formatting not counting into wrap§§
+line 21 on_black,bright_white,bold §§§§§§§§§§§§server§
index 7c7a68bf173a55934528ac5169b22124bbe58772..261d980ad852417da9b6dc5531fa9e935b8ed826 100644 (file)
@@ -5,35 +5,35 @@
 
 # expected complaints on wrong command inputs
 > foo
-log 0 #!. invalid prompt command: not prefixed by /
+log 0 # invalid prompt command: not prefixed by /
 > /foo
-log 0 #!. invalid prompt command: /foo unknown
+log 0 # invalid prompt command: /foo unknown
 > /help foo
-log 0 #!. invalid prompt command: /help given argument(s) while none expected
+log 0 # invalid prompt command: /help given argument(s) while none expected
 > /window
-log 0 #!. invalid prompt command: /window too few arguments (given 0, need 1)
+log 0 # invalid prompt command: /window too few arguments (given 0, need 1)
 
 # some simple expected command successes
 > /help
-log 0 #.. commands available in this window:
-log 0 #..   /connect HOST_PORT [NICKNAME_PW] [REALNAME_USERNAME]
-log 0 #..   /help
-log 0 #..   /list
-log 0 #..   /prompt_enter
-log 0 #..   /quit
-log 0 #..   /window TOWARDS
-log 0 #..   /window.history.scroll DIRECTION
-log 0 #..   /window.paste
-log 0 #..   /window.prompt.backspace
-log 0 #..   /window.prompt.move_cursor DIRECTION
-log 0 #..   /window.prompt.scroll DIRECTION
+log 0 # commands available in this window:
+log 0 #   /connect HOST_PORT [NICKNAME_PW] [REALNAME_USERNAME]
+log 0 #   /help
+log 0 #   /list
+log 0 #   /prompt_enter
+log 0 #   /quit
+log 0 #   /window TOWARDS
+log 0 #   /window.history.scroll DIRECTION
+log 0 #   /window.paste
+log 0 #   /window.prompt.backspace
+log 0 #   /window.prompt.move_cursor DIRECTION
+log 0 #   /window.prompt.scroll DIRECTION
 > /list
-log 0 #.. windows available via /window:
-log 0 #..   0) :start
+log 0 # windows available via /window:
+log 0 #   0) :start
 
 # should probably not be available at all by explicit prompt writing, but for now this be the expected behavior …
 > /prompt_enter
-log 0 #!. invalid prompt command: /prompt_enter would loop into ourselves
+log 0 # invalid prompt command: /prompt_enter would loop into ourselves
 > /window.history.scroll foo
 > /window.prompt.backspace
 > /window.prompt.move_cursor foo