Přemysl Eric Janouch
3f9a365d36
xC: improve the --format mode
...
Avoid having formatting spill over the rest of the line,
by placing the automatic formatting reset before newlines.
Also handle longer lines properly.
2023-05-22 04:44:01 +02:00
Přemysl Eric Janouch
26ed2dbc77
xC: fully synchronize input history with frontends
...
The missing parts were:
- frontends to client
- client to frontends after the initial sync
- frontend to other frontends
2022-10-05 00:55:59 +02:00
Přemysl Eric Janouch
a7c3ed7cc1
xC: clean up
2022-09-30 18:30:03 +02:00
Přemysl Eric Janouch
c4707e2803
xC/xP: send buffer input history during sync
...
This transfer is currenly quite simplistic,
but it paves the way for further extensions.
2022-09-30 17:36:29 +02:00
Přemysl Eric Janouch
5b57e9b41b
xC/xP: fix unseen message counting
...
xC: advance unread message counters even with leaked messages,
and don't unnecessarily set the highlighted flag. Plus clean up.
xP: make leaked non-unimportant messages advance the counter
for unimportant messages, so that the buffer doesn't get emboldened.
2022-09-28 21:20:59 +02:00
Přemysl Eric Janouch
f2d8de3ab9
xP: support adding formatting from keyboard
...
Just like in xC, only with some indication.
2022-09-23 09:42:24 +02:00
Přemysl Eric Janouch
e6bf88673f
xP: produce a custom font for IRC formatting
...
Given that the generated file needs a manual adjustment,
its small size, and the dependencies involved,
it will be checked in to the repository.
2022-09-22 20:18:55 +02:00
Přemysl Eric Janouch
d3628928b9
xC/xP: relay and render channel modes
2022-09-21 16:32:35 +02:00
Přemysl Eric Janouch
919b12510b
xC/xP: relay and render channel topics
2022-09-21 12:15:27 +02:00
Přemysl Eric Janouch
8a689c98b4
xC: fix autocomplete in server buffers
2022-09-20 17:34:01 +02:00
Přemysl Eric Janouch
9327333813
xC/xP: show own user's info in frontends
2022-09-20 17:24:30 +02:00
Přemysl Eric Janouch
7806d4bd4e
xC/xP: improve rendering of highlighting actions
2022-09-20 15:30:07 +02:00
Přemysl Eric Janouch
c0e1cd57b2
Make sure to always find installed plugins
2022-09-19 04:26:35 +02:00
Přemysl Eric Janouch
21e5d80ab1
xC: improve Readline completion
...
The autocomplete for /set used to be extremely annoying,
and menu-complete-display-prefix also prevents mistaken highlights.
One downside is that using plain Tab in channels no longer
just inserts the last-talking nickname, one needs to press it twice.
2022-09-18 02:48:28 +02:00
Přemysl Eric Janouch
840b646700
xC: reorganize relay code, improve logging
...
Even with one forward function declaration down,
it was possible to move most code to a more convenient location.
Most logging has thus been fixed to go to buffers.
2022-09-17 00:32:14 +02:00
Přemysl Eric Janouch
126105fa4f
xC: don't abort on accept() failure
...
Just disable the relay.
2022-09-17 00:31:23 +02:00
Přemysl Eric Janouch
e2f3fc2e79
xC: clean up
2022-09-17 00:31:23 +02:00
Přemysl Eric Janouch
d5153fe354
xC/xP: implement M-H in the web frontend
2022-09-16 02:52:16 +02:00
Přemysl Eric Janouch
d31ab67268
xC: mildly optimize relay traffic
2022-09-14 01:01:19 +02:00
Přemysl Eric Janouch
3b6c29d676
xC: silence some compiler warnings
2022-09-11 22:16:35 +02:00
Přemysl Eric Janouch
96fc12bc4c
xC/xP: send buffer type and server state
...
Also make PM highlighting behaviour consistent.
2022-09-11 21:50:08 +02:00
Přemysl Eric Janouch
1493d9998b
xC: clean up
2022-09-11 19:11:47 +02:00
Přemysl Eric Janouch
4bc2f736f2
xC: make terminal attributes abstract
...
And translate them for frontends.
This is very long overdue, and a rather significant cleanup.
Bump liberty.
2022-09-11 01:20:18 +02:00
Přemysl Eric Janouch
0015d26dc8
xC/xP: support hiding unimportant messages at all
2022-09-10 19:01:42 +02:00
Přemysl Eric Janouch
7d5e63be1f
xC: deal with so far unexpected multiline messages
...
And get rid of an outdated unmarked TODO comment.
2022-09-10 18:51:27 +02:00
Přemysl Eric Janouch
e7d0f2380e
xC: split Command.BUFFER_INPUT on newlines
2022-09-10 18:51:27 +02:00
Přemysl Eric Janouch
632ac992ab
xC/xP: only send buffer stats in the initial sync
...
The client and frontends track these separately,
there is no need for hard synchronization.
2022-09-10 17:38:33 +02:00
Přemysl Eric Janouch
3a165a595b
xC: use the relay protocol's RPC for pings
2022-09-08 01:48:46 +02:00
Přemysl Eric Janouch
4ba28c6ed3
xC/xP: mark highlights and buffer activity
...
And more or less finalize out the protocol for this use case.
2022-09-08 01:28:51 +02:00
Přemysl Eric Janouch
a2d5995cf5
xC: don't autoactivate buffers on forced JOINs
2022-09-07 19:10:49 +02:00
Přemysl Eric Janouch
88a7b1a2d9
xP: resolve various issues, mostly in styling
2022-09-07 17:26:43 +02:00
Přemysl Eric Janouch
2341228efd
xP: implement buffer line leakage
...
Rather than on redisplay, these get cleared on reconnect.
2022-09-07 15:34:52 +02:00
Přemysl Eric Janouch
5fd76ba6f9
xC: add a trivial /relay command
...
For there is otherwise no way of getting that information.
2022-09-07 13:01:34 +02:00
Přemysl Eric Janouch
41878a587f
xC: use liberty logging less
...
These messages cannot be relayed to frontends (they could be,
but it's useful to keep them distinct rather than redirected).
2022-09-07 13:01:30 +02:00
Přemysl Eric Janouch
80089a4d65
xC: describe general.editor parse errors
2022-09-07 13:01:29 +02:00
Přemysl Eric Janouch
2d30b6d115
xC: define critical bindings after el_source()
...
And use ^C rather than ^G.
2022-09-06 17:02:36 +02:00
Přemysl Eric Janouch
cf14cb8122
xC: implement buffer completion in the relay
...
And actually support completion with non-UTF-8 locales.
We used to ignore the encoding conversion result.
2022-09-06 17:02:02 +02:00
Přemysl Eric Janouch
31e9c6d2d5
xC/xP: pass timestamps with millisecond precision
...
Future-proofing the protocol.
2022-09-06 14:39:01 +02:00
Přemysl Eric Janouch
d7b0b447b7
xC/xP: turn the action asterisk into a rendition
2022-09-05 23:22:09 +02:00
Přemysl Eric Janouch
25ad5ae0ec
xC/xP: fix colour values, and render them with CSS
2022-09-05 23:22:09 +02:00
Přemysl Eric Janouch
10f6072da9
xC: also force monospace for RPL_MOTDSTART
...
It tends to looks inconsistent without.
2022-09-05 23:07:20 +02:00
Přemysl Eric Janouch
1639235a48
Start X11 and web frontends for xC
...
For this, we needed a wire protocol. After surveying available options,
it was decided to implement an XDR-like protocol code generator
in portable AWK. It now has two backends, per each of:
- xF, the X11 frontend, is in C, and is meant to be the primary
user interface in the future.
- xP, the web frontend, relies on a protocol proxy written in Go,
and is meant for use on-the-go (no pun intended).
They are very much work-in-progress proofs of concept right now,
and the relay protocol is certain to change.
2022-09-05 14:26:00 +02:00
Přemysl Eric Janouch
2160d03794
xC: slightly clean up character encodings
2022-09-02 14:05:03 +02:00
Přemysl Eric Janouch
36f8c7639f
xC: clean up logging
...
Don't treat rendition as flags, separate the two.
Also treat join and part arrows as rendition.
2022-09-02 12:31:42 +02:00
Přemysl Eric Janouch
3af1765261
xC: make alias creation tolerant to prefixed names
...
Those would not work, so skip the first forward slash.
Note that liberty can save arbitrary alias names since 6e93119,
making the removed comment about checking outdated.
2022-08-29 15:22:11 +02:00
Přemysl Eric Janouch
b454920c81
xC: deal with conflicts when renaming buffers
2022-08-29 15:05:02 +02:00
Přemysl Eric Janouch
ef8f25d1dd
xC: deal with any identifier conflicts
...
Invalid UTF-8 converted to UTF-8 may conflict with that
which was valid UTF-8 in the first place.
2022-08-29 14:41:23 +02:00
Přemysl Eric Janouch
313a65180e
xC: fix some corner cases around terminal handling
2022-08-29 14:05:33 +02:00
Přemysl Eric Janouch
91db8e6e54
xC: use the correct way of resetting libedit
...
The only remaining major annoyance is incremental search
seemingly not giving back control.
2022-08-29 10:30:45 +02:00
Přemysl Eric Janouch
dbe95fa298
xC: make libedit history switching more reliable
2022-08-29 09:20:56 +02:00