Commit Graph

76 Commits

Author SHA1 Message Date
50f70f93bb
xC: fix a harmless copy-paste error 2023-06-13 09:02:20 +02:00
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
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
a7c3ed7cc1
xC: clean up 2022-09-30 18:30:03 +02:00
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
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
f2d8de3ab9
xP: support adding formatting from keyboard
Just like in xC, only with some indication.
2022-09-23 09:42:24 +02:00
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
d3628928b9
xC/xP: relay and render channel modes 2022-09-21 16:32:35 +02:00
919b12510b
xC/xP: relay and render channel topics 2022-09-21 12:15:27 +02:00
8a689c98b4
xC: fix autocomplete in server buffers 2022-09-20 17:34:01 +02:00
9327333813
xC/xP: show own user's info in frontends 2022-09-20 17:24:30 +02:00
7806d4bd4e
xC/xP: improve rendering of highlighting actions 2022-09-20 15:30:07 +02:00
c0e1cd57b2
Make sure to always find installed plugins 2022-09-19 04:26:35 +02:00
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
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
126105fa4f
xC: don't abort on accept() failure
Just disable the relay.
2022-09-17 00:31:23 +02:00
e2f3fc2e79
xC: clean up 2022-09-17 00:31:23 +02:00
d5153fe354
xC/xP: implement M-H in the web frontend 2022-09-16 02:52:16 +02:00
d31ab67268
xC: mildly optimize relay traffic 2022-09-14 01:01:19 +02:00
3b6c29d676
xC: silence some compiler warnings 2022-09-11 22:16:35 +02:00
96fc12bc4c
xC/xP: send buffer type and server state
Also make PM highlighting behaviour consistent.
2022-09-11 21:50:08 +02:00
1493d9998b
xC: clean up 2022-09-11 19:11:47 +02:00
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
0015d26dc8
xC/xP: support hiding unimportant messages at all 2022-09-10 19:01:42 +02:00
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
e7d0f2380e
xC: split Command.BUFFER_INPUT on newlines 2022-09-10 18:51:27 +02:00
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
3a165a595b
xC: use the relay protocol's RPC for pings 2022-09-08 01:48:46 +02:00
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
a2d5995cf5
xC: don't autoactivate buffers on forced JOINs 2022-09-07 19:10:49 +02:00
88a7b1a2d9
xP: resolve various issues, mostly in styling 2022-09-07 17:26:43 +02:00
2341228efd
xP: implement buffer line leakage
Rather than on redisplay, these get cleared on reconnect.
2022-09-07 15:34:52 +02:00
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
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
80089a4d65
xC: describe general.editor parse errors 2022-09-07 13:01:29 +02:00
2d30b6d115
xC: define critical bindings after el_source()
And use ^C rather than ^G.
2022-09-06 17:02:36 +02:00
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
31e9c6d2d5
xC/xP: pass timestamps with millisecond precision
Future-proofing the protocol.
2022-09-06 14:39:01 +02:00
d7b0b447b7
xC/xP: turn the action asterisk into a rendition 2022-09-05 23:22:09 +02:00
25ad5ae0ec
xC/xP: fix colour values, and render them with CSS 2022-09-05 23:22:09 +02:00
10f6072da9
xC: also force monospace for RPL_MOTDSTART
It tends to looks inconsistent without.
2022-09-05 23:07:20 +02:00
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
2160d03794
xC: slightly clean up character encodings 2022-09-02 14:05:03 +02:00
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
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
b454920c81
xC: deal with conflicts when renaming buffers 2022-08-29 15:05:02 +02:00
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
313a65180e
xC: fix some corner cases around terminal handling 2022-08-29 14:05:33 +02:00
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