Commit Graph

1152 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 3dc6ee9a5b
degesch: sanitize IRC nicknames/channel names
Don't trust the IRCd to have them in a subset of UTF-8.
2020-10-31 23:25:08 +01:00
Přemysl Eric Janouch 821ce04915
degesch: implement autocompletion for /set
It was super annoying to just slightly modify strings and
string arrays, now you can have existing values filled in.

complete_word() looks a bit cleaner now as well.
2020-10-31 23:18:31 +01:00
Přemysl Eric Janouch 2fe3b95ecd
README.adoc: improve backlog helper invocation
When fancy-prompt.lua is enabled, tho prompt is two-lined
and a simple PageUp would skip one line of content.

It works slightly better than it should: when there's under
a page of content to scroll, there is no shift at all.
2020-10-31 20:00:23 +01:00
Přemysl Eric Janouch 32c99c9d66
kike: avoid crash with a wildcard address
A most unfortunate 06d3b3b regression, mostly stemming from
forgetting why the `break` was in place and not documenting it.
2020-10-31 17:34:32 +01:00
Přemysl Eric Janouch cd7133e173
README.adoc: minor documentation update 2020-10-31 16:06:13 +01:00
Přemysl Eric Janouch b4ed52015a
degesch: mark some issues for later resolution 2020-10-31 16:06:12 +01:00
Přemysl Eric Janouch 271689da99
fancy-prompt.lua: allow non-ASCII buffer names
It may theoretically bite us in the ass with non-UTF-8-compliant
IRC servers, and certainly with double-width characters.
2020-10-31 16:05:15 +01:00
Přemysl Eric Janouch 38c23d0d38
degesch: fix fancy-prompt.lua with libedit
Partly by unifying the interface for prompt hooks to match GNU Readline.
2020-10-31 16:04:30 +01:00
Přemysl Eric Janouch 439af8884c
degesch: make PageUp actually scroll a page up
Now that the input to the backlog helper is wrapped the same way
as what we display.  There's a slight issue always triggered by
fancy-prompt.lua where a multiline prompt/command line makes less(1)
go too high up but it's nothing too important.
2020-10-31 16:00:55 +01:00
Přemysl Eric Janouch 8ccf38ad76
Minor rebranding
There's nothing experimental about this project anymore.  It's stable.

Maybe we should add a photo of Hitler or something.
2020-10-31 13:42:56 +01:00
Přemysl Eric Janouch 47a4c8beca
CMakeLists.txt: clean up OpenBSD support
A few things might have changed.
2020-10-29 15:27:09 +01:00
Přemysl Eric Janouch 1de4a2ae34
Bump version, update NEWS 2020-10-29 03:03:07 +01:00
Přemysl Eric Janouch 53cc52e320
Add real manual pages
To some extent they duplicate the README but from a different angle.
2020-10-29 02:46:40 +01:00
Přemysl Eric Janouch cbe4009308
degesch: fix Lua 5.3 build
Regression from the last release.
2020-10-29 02:44:40 +01:00
Přemysl Eric Janouch 06d3b3bd2b
kike: ensure NULL binds to both IPv4 and IPv6 2020-10-29 00:39:57 +01:00
Přemysl Eric Janouch 132e4a38b8
kike: document the "operators" setting usefully
Now our user just needs to be able to guess that it's a hex string.
2020-10-28 23:53:03 +01:00
Přemysl Eric Janouch 8429995cb6
ZyklonB: don't look for plugins in /usr/lib
It's quite unlikely that this project will ever see compiled plugins.
2020-10-28 17:17:48 +01:00
Přemysl Eric Janouch 03ed097353
ZyklonB: use XDG paths by default
Install plugins to /usr/share rather than /usr/lib since they're
arch-independent.  Many precedents can be found for scripted plugins
in /usr/share and fewer for /usr/lib.

Look for plugins in all XDG data directories and repurpose
the "plugin_dir" setting to override this behaviour.

This adds some complexity to the bot but unifies the project.
It might make sense to remove the "plugin_dir" setting.
2020-10-28 17:17:34 +01:00
Přemysl Eric Janouch b68e5ceedc
README.adoc: fix GPL notice 2020-10-28 13:11:46 +01:00
Přemysl Eric Janouch 0d0d0b6863
CMakeLists.txt: omit end{if,foreach} expressions
Their usefulness was almost negative.
2020-10-28 11:30:37 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 500c83231f
Bump minimum CMake version to 3.0
A nice, round number.
2020-10-27 12:02:47 +01:00
Přemysl Eric Janouch 4b7649211a
Bump copyright years 2020-10-27 12:02:46 +01:00
Přemysl Eric Janouch 9afa4944b6
Bump liberty
Testing in production is discouraged.
2020-10-24 19:10:55 +02:00
Přemysl Eric Janouch e58ce1f02e
Bump liberty, test UTF-8 sanitization 2020-10-21 05:44:27 +02:00
Přemysl Eric Janouch 98e95de90e
degesch: add a hidden LOMEM compile option 2020-10-20 02:02:09 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 13c85aa361
degesch: comment about improving word wrapper 2020-10-19 23:37:19 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch c89032e4e0
degesch: silence the compiler 2020-10-19 05:17:41 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 323a372389
degesch: update an outdated comment 2020-10-16 23:29:05 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch e1a4fab40d
degesch: don't eat NAMES for unknown channels 2020-10-16 17:59:51 +02:00
Přemysl Eric Janouch 1ff80ddd10
degesch: stubplement TAGMSG 2020-10-16 17:59:50 +02:00
Přemysl Eric Janouch 12c8ace6a1
degesch: clarify handling of unexpected JOINs
I got confused about safety.
2020-10-16 17:59:50 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 73c3ca3633
Bump liberty 2020-10-12 23:00:43 +02:00
Přemysl Eric Janouch 559232ccb5
kike: fix up debug messages 2020-10-12 04:33:39 +02:00
Přemysl Eric Janouch 6837fdb7c4
Bump liberty
We've moved most of our configuration test in there.
2020-10-12 04:08:09 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch f9ef123171
degesch: support more colours 2020-10-11 17:49:31 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 270d9017e9
degesch: improve ad-hoc IRC parsers in plugins 2020-10-10 17:58:33 +02:00
Přemysl Eric Janouch ee5cac4f21
degesch: add a plugin to highlight prime numbers 2020-10-10 17:55:14 +02:00
Přemysl Eric Janouch 59ac02d91f
Bump liberty
resolve_relative_runtime_unique_filename() used to have a bug.
2020-10-10 04:37:08 +02:00