Commit Graph

1232 Commits

Author SHA1 Message Date
577fd1b446
CMakeLists.txt: clean up and fix build rules
The multiple-output custom command ran separately for each binary.
2020-10-28 11:23:39 +01:00
500c83231f
Bump minimum CMake version to 3.0
A nice, round number.
2020-10-27 12:02:47 +01:00
4b7649211a
Bump copyright years 2020-10-27 12:02:46 +01:00
9afa4944b6
Bump liberty
Testing in production is discouraged.
2020-10-24 19:10:55 +02:00
e58ce1f02e
Bump liberty, test UTF-8 sanitization 2020-10-21 05:44:27 +02:00
98e95de90e
degesch: add a hidden LOMEM compile option 2020-10-20 02:02:09 +02:00
383f6af344
Improve OpenSSL integration
Ensure the error stack is cleared after errors are processed.

Also handle NULL returns safely.

Makes the debug mode spew more data, though almost none of
the contexts is in reaction to network peer data.
2020-10-20 01:55:46 +02:00
13c85aa361
degesch: comment about improving word wrapper 2020-10-19 23:37:19 +02:00
419b02e9f7
degesch: slightly cut down memory usage
The worst offenders are actually OpenSSL and Lua, this is
mostly about a preventable surprise.

This is more correct because we mix escape sequences for
attributes with text, however in practice no one will use
shit-jizz with degesch.

It is also a clean-up: "struct line_char" has been almost
halved in size.  We used to use it as a cache and now we
recompute the multibyte sequence.

Of course, it'd be best to get rid of the linked list but
it would take a very long time to rewrite the algorithm.
Plus, it's not certain that it could be improved by much.

The change in "struct line_char_attrs" is merely cosmetical.
2020-10-19 06:38:31 +02:00
c89032e4e0
degesch: silence the compiler 2020-10-19 05:17:41 +02:00
474657c7b3
degesch: fix processing WHO replies
We don't want to print the reply for ourselves
nor for unknown or PM-only users.
2020-10-19 04:21:52 +02:00
323a372389
degesch: update an outdated comment 2020-10-16 23:29:05 +02:00
76f4e6faa6
degesch: cleanup
Channels now need a reference to the server,
so don't pass it to functions.
2020-10-16 21:17:57 +02:00
2c48bc9959
degesch: watch away statuses with away-notify/WHO
We're not going to implement polling.  Polling is complex.
Freenode supports away-notify.
2020-10-16 21:17:57 +02:00
e1a4fab40d
degesch: don't eat NAMES for unknown channels 2020-10-16 17:59:51 +02:00
1ff80ddd10
degesch: stubplement TAGMSG 2020-10-16 17:59:50 +02:00
12c8ace6a1
degesch: clarify handling of unexpected JOINs
I got confused about safety.
2020-10-16 17:59:50 +02:00
49706efe86
degesch: improve a function name
3_3_3_3_4 looks awful and it wasn't even precise.
2020-10-16 17:59:43 +02:00
9d8a7a10d0
Tolerate cut-off UTF-8 messages
I've had this happen to me on Russian channels and it's highly
annoying because you lose the entire message.  On the contrary,
this at worst screws up the last few characters of it.

Closes #2
2020-10-12 23:45:27 +02:00
73c3ca3633
Bump liberty 2020-10-12 23:00:43 +02:00
559232ccb5
kike: fix up debug messages 2020-10-12 04:33:39 +02:00
6837fdb7c4
Bump liberty
We've moved most of our configuration test in there.
2020-10-12 04:08:09 +02:00
2759c311fa
kike: use read/write rather than recv/send
read/write support non-sockets, otherwise they're the same here.

This is in preparation for fuzzing.
2020-10-12 04:04:06 +02:00
529a46ad41
degesch: add support for crossed-out text
Assuming that sgr0 includes rmxx behaviour, which should be true.
2020-10-11 18:07:26 +02:00
f9ef123171
degesch: support more colours 2020-10-11 17:49:31 +02:00
f51dd936f5
degesch: prefer British spelling in comments
Let's say the rest is in Oxford spelling, not sure about it.
2020-10-11 17:48:57 +02:00
7ce1615021
prime.lua: skip colour sequences, add config
Colour sequence skipping is somewhat involved, we might want to
add a helper generator to the "degesch" Lua library, in the form of
{substring, is_formatting}.

formatter_parse_mirc() isn't useful, a pure Lua implementation
would be more appropriate (where do we put that?)
2020-10-11 16:54:15 +02:00
270d9017e9
degesch: improve ad-hoc IRC parsers in plugins 2020-10-10 17:58:33 +02:00
ee5cac4f21
degesch: add a plugin to highlight prime numbers 2020-10-10 17:55:14 +02:00
59ac02d91f
Bump liberty
resolve_relative_runtime_unique_filename() used to have a bug.
2020-10-10 04:37:08 +02:00
d78cf10f04
degesch: fix prompt not showing up after change
When a backlog helper was running and the prompt changed,
it failed to restore within input_rl_show().

Since before input_rl_show() is called the prompt is empty
and in input_rl__restore() it will be changed to the new
version, just skip invoking any Readline functions within
input_rl_set_prompt() when the prompt is hidden.  Simple
and straight-forward.

This bug is what I hinted at in the previous commit.
2020-10-06 13:42:27 +02:00
572a7cb804
README.adoc: update degesch instructions
There is still one outstanding issue with the backlog helper, though...
2020-10-04 12:27:17 +02:00
03e8ad0a3e
degesch: enable wrapping in the backlog by default
The main issue has been eliminated.
2020-10-04 12:17:09 +02:00
f665f147ff
degesch: resolve the issue with less(1) and SO/SI
Now that I've learnt what exactly these characters are and how they
ended up in attribute strings, we can just eliminate them and disable
`backlog_helper_strip_formatting`.  Saner defaults, again.

I've also added skipping of terminfo delay sequences, so now it's less
of an issue to pipe raw attribute sequences into backlog helpers.
2020-10-04 12:04:24 +02:00
9819b75b64
degesch: make the unread marker look a bit fancier
Upstreamed after who knows how long, in a slightly modified form.
The marker looks fairly ugly without this and defaults should be
desirable.

It's possible to get the previous behaviour by resetting the separator
character in the configuration to an empty string.  It might be
a better idea in general to just disallow this value with a special
validation callback, so that there's only one way to do it.

However given that without fancy-prompt.lua, an optional plugin,
the long line stands out considerably, it might actually be a good
idea to keep the old behaviour as the default.  I'm torn.

Right now we don't care about the situation where the string occupies
more than one terminal cell or is some Unicode BS.  User's problem.
2020-10-04 10:08:30 +02:00
f716e7601f
degesch: fix a typo 2020-10-04 08:44:16 +02:00
eea761d9f7
degesch: make use of arguments in _new() functions 2020-10-04 08:32:15 +02:00
dd8e543a20
degesch: save some memory on channel users
`struct str` was mostly unnecessary, we can save 16+ bytes,
while performance and code readability is mostly unchanged.
2020-10-04 08:28:07 +02:00
dc8b580574
degesch: expand comment about character encoding 2020-10-02 07:09:58 +02:00
2d9856cca8
Bump liberty, use iscntrl_ascii() 2020-10-02 06:52:11 +02:00
289193dd1a
kike: silence an annoying build warning 2020-09-20 13:43:59 +02:00
405848deeb
degesch: remove unnecessary quotes from macro defs
The behaviour is defined by the standard.
2020-09-20 13:43:36 +02:00
b9991d4766
degesch: update comment to reflect reality 2020-09-20 13:43:10 +02:00
1ff82ee907
Update NEWS, bump version 2020-09-02 20:00:12 +02:00
57e92fbb85
Update copyright years 2020-09-02 20:00:11 +02:00
a04dfc59fe
README: improve libasciidoc compatibility 2020-09-02 20:00:11 +02:00
7f69655c54
README: discourage from using libedit 2020-09-02 20:00:10 +02:00
444f97b357
degesch: work around a libedit attribute issue 2020-09-02 20:00:10 +02:00
ed7130a664
degesch: fix a libedit crash 2020-09-02 20:00:10 +02:00
ba1c2357af
degesch: fix Lua 5.4 build
Not sure about how well it works yet.

Lua 5.3 is still made preferential by the order of pkgconfig lookup.
2020-09-02 20:00:09 +02:00