Commit Graph

81 Commits

Author SHA1 Message Date
b9cdabca5d xC: fix relay handling of missing log files
Intermediate error messages would trash the prepared static buffer.
2023-07-28 04:30:45 +02:00
100de5ac2d xC: fix Readline 6.3 compatibility 2023-07-24 07:59:22 +02:00
9e993c50e6 xC: don't crash with unknown terminals
It would be possible to avoid using cur_term fields in this case,
but the program would likely be of little use anyway.
2023-07-07 10:43:15 +02:00
b3e9218b23 Fix Cygwin build warnings 2023-07-07 09:53:20 +02:00
abcff46dc4 xC: fix an OpenBSD build warning
sys/cdefs.h makes _XOPEN_SOURCE cause _POSIX_C_SOURCE to be overriden.
2023-07-04 06:31:02 +02:00
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