Commit Graph

705 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 50057d5149
Come up with sillier names for the binaries
I'm not entirely sure, but it looks like some people might not like
jokes about the Holocaust.

On a more serious note, the project has become more serious over
the 7 or so years of its existence.
2021-08-06 16:43:59 +02:00
Přemysl Eric Janouch 027bf8666e
degesch: never bump our own chanuser
With IRCv3.2 echo-message, each successfully sent message would
move us to the front of the list used for chanuser autocomplete.

Such behaviour seems useless.

Also abandon the idea of bumping on other kinds of messages.
2021-07-24 09:27:49 +02:00
Přemysl Eric Janouch 7c7e12d8d5
degesch: start with lexically ordered chanusers
This makes nick autocompletion start in a non-arbitrary state.
2021-07-23 19:14:57 +02:00
Přemysl Eric Janouch 3cb93d24e8
degesch: order nick autocomplete by time 2021-07-23 18:43:20 +02:00
Přemysl Eric Janouch acddfe2cfa
degesch: cleanup 2021-07-23 18:43:19 +02:00
Přemysl Eric Janouch da5dd4eb91
degesch: make /ban and /unban respect EXTBAN 2021-06-17 12:21:48 +02:00
Přemysl Eric Janouch 10cb6651c0
degesch: expand/analyze a few TODO comments 2021-06-16 22:10:25 +02:00
Přemysl Eric Janouch 7f28dcd1ef
degesch: make "/help /command" work
Works for aliases as well.  Resolves a TODO entry.
2021-06-16 21:57:47 +02:00
Přemysl Eric Janouch 61c52d793c
degesch: fix a GCC compiler warning 2021-06-15 07:11:35 +02:00
Přemysl Eric Janouch b4dd0052ff
degesch: pick colours based on relative luminance
Replaces the inaccurate Rec. 709 luma we used to use before.

This is the first feature here that requires libm, which doesn't
seem to be a particularly great sacrifice.

Moreover, I've rectified that the input isn't linear in sRGB,
and then was even normalized wrong for the luma formula.
2021-06-15 07:09:23 +02:00
Přemysl Eric Janouch e3c47c33fa
degesch: implement -=/+= for multiple values
It didn't make sense to have these unimplemented,
though perhaps += shouldn't enforce a set.

Sadly, autocomplete is fairly difficult for -= of multiple items.
2021-06-14 09:06:38 +02:00
Přemysl Eric Janouch 80c1e8f8eb
degesch: make /deop and /devoice default to self
It's pretty annoying to type `/mode -o <user>`, for little reason.
2021-06-03 00:12:22 +02:00
Přemysl Eric Janouch 6f62b9c0c7
degesch: make CHGHOST update our own userhost info
I've almost forgotten that we use this for message spliting.
2021-05-30 08:23:23 +02:00
Přemysl Eric Janouch c1d69e3630
degesch: add support for IRCv3 chghost
This is somewhat similar to a nick change.
2021-05-30 08:06:38 +02:00
Přemysl Eric Janouch ddffc71abe
degesch: factor out irc_try_finish_cap_negotiation()
Too much repeated, non-obvious code.
2021-05-28 04:59:21 +02:00
Přemysl Eric Janouch 5a0b2d1c57
degesch: add trivial SASL EXTERNAL support
Just set `tls_cert`, and add `sasl` to `capabilities`.
2021-05-28 04:59:20 +02:00
Přemysl Eric Janouch bb451a5050
degesch: support CAP DEL, request cap-notify
It doesn't require much effort to cancel capabilities, plus with
the newer version we get the respective notification anyway.
2021-05-28 04:59:20 +02:00
Přemysl Eric Janouch 61f15ead8a
degesch: don't CAP REQ when already registered
The list may later be requested manually, which shouldn't have
an unexpected side-effect.
2021-05-28 04:59:20 +02:00
Přemysl Eric Janouch 17f430043a
degesch: IRCv3.2 capability negotiation
We can receive and display capability values now.
2021-05-28 04:59:20 +02:00
Přemysl Eric Janouch 735096d76d
degesch: add a /squery command for IRCnet 2021-05-28 04:06:27 +02:00
Přemysl Eric Janouch 1ba59e6ee0
degesch: fix back-parsing outgoing CAP REQ
The bug has apparently been there since the beginning.
2021-05-28 04:04:44 +02:00
Přemysl Eric Janouch f9ba682c0e
degesch: reset away-notify on disconnect
Forgotten to do it when adding the support for it.
2021-05-28 04:04:23 +02:00
Přemysl Eric Janouch 8e8ffe2c73
degesch: don't switch to channels while typing
We might just always set the highlighted bit on,
it would be consistent with PMs.
2021-04-10 05:11:46 +02:00
Přemysl Eric Janouch d05c85833d
degesch: make a second SIGINT force-quit
Also fixed the possibility of eating a sequence of signals
as we reset the indicators /after/ we took action,
which creates a time window for races.
2020-11-01 15:33:16 +01:00
Přemysl Eric Janouch 8f5dec0456
degesch: buffer creation cleanup 2020-10-31 23:44:18 +01:00
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 b4ed52015a
degesch: mark some issues for later resolution 2020-10-31 16:06:12 +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 cbe4009308
degesch: fix Lua 5.3 build
Regression from the last release.
2020-10-29 02:44:40 +01: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 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 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