summaryrefslogtreecommitdiff
path: root/degesch.c
Commit message (Collapse)AuthorAgeFilesLines
* degesch: implement -=/+= for multiple valuesPřemysl Eric Janouch2021-06-141-41/+37
| | | | | | | 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.
* degesch: make /deop and /devoice default to selfPřemysl Eric Janouch2021-06-031-5/+11
| | | | It's pretty annoying to type `/mode -o <user>`, for little reason.
* degesch: make CHGHOST update our own userhost infoPřemysl Eric Janouch2021-05-301-1/+3
| | | | I've almost forgotten that we use this for message spliting.
* degesch: add support for IRCv3 chghostPřemysl Eric Janouch2021-05-301-1/+55
| | | | This is somewhat similar to a nick change.
* degesch: factor out irc_try_finish_cap_negotiation()Přemysl Eric Janouch2021-05-281-6/+13
| | | | Too much repeated, non-obvious code.
* degesch: add trivial SASL EXTERNAL supportPřemysl Eric Janouch2021-05-281-22/+52
| | | | Just set `tls_cert`, and add `sasl` to `capabilities`.
* degesch: support CAP DEL, request cap-notifyPřemysl Eric Janouch2021-05-281-5/+18
| | | | | It doesn't require much effort to cancel capabilities, plus with the newer version we get the respective notification anyway.
* degesch: don't CAP REQ when already registeredPřemysl Eric Janouch2021-05-281-1/+3
| | | | | The list may later be requested manually, which shouldn't have an unexpected side-effect.
* degesch: IRCv3.2 capability negotiationPřemysl Eric Janouch2021-05-281-23/+44
| | | | We can receive and display capability values now.
* degesch: add a /squery command for IRCnetPřemysl Eric Janouch2021-05-281-0/+17
|
* degesch: fix back-parsing outgoing CAP REQPřemysl Eric Janouch2021-05-281-3/+3
| | | | The bug has apparently been there since the beginning.
* degesch: reset away-notify on disconnectPřemysl Eric Janouch2021-05-281-0/+1
| | | | Forgotten to do it when adding the support for it.
* degesch: don't switch to channels while typingPřemysl Eric Janouch2021-04-101-3/+8
| | | | | We might just always set the highlighted bit on, it would be consistent with PMs.
* degesch: make a second SIGINT force-quitPřemysl Eric Janouch2020-11-011-10/+15
| | | | | | 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.
* degesch: buffer creation cleanupPřemysl Eric Janouch2020-10-311-17/+24
|
* degesch: sanitize IRC nicknames/channel namesPřemysl Eric Janouch2020-10-311-4/+6
| | | | Don't trust the IRCd to have them in a subset of UTF-8.
* degesch: implement autocompletion for /setPřemysl Eric Janouch2020-10-311-28/+82
| | | | | | | 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.
* degesch: mark some issues for later resolutionPřemysl Eric Janouch2020-10-311-0/+3
|
* degesch: fix fancy-prompt.lua with libeditPřemysl Eric Janouch2020-10-311-0/+14
| | | | Partly by unifying the interface for prompt hooks to match GNU Readline.
* degesch: make PageUp actually scroll a page upPřemysl Eric Janouch2020-10-311-1/+1
| | | | | | | 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.
* Minor rebrandingPřemysl Eric Janouch2020-10-311-2/+2
| | | | | | There's nothing experimental about this project anymore. It's stable. Maybe we should add a photo of Hitler or something.
* degesch: fix Lua 5.3 buildPřemysl Eric Janouch2020-10-291-1/+1
| | | | Regression from the last release.
* Bump liberty, test UTF-8 sanitizationPřemysl Eric Janouch2020-10-211-6/+14
|
* degesch: add a hidden LOMEM compile optionPřemysl Eric Janouch2020-10-201-1/+21
|
* Improve OpenSSL integrationPřemysl Eric Janouch2020-10-201-4/+4
| | | | | | | | | 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.
* degesch: comment about improving word wrapperPřemysl Eric Janouch2020-10-191-0/+8
|
* degesch: slightly cut down memory usagePřemysl Eric Janouch2020-10-191-16/+25
| | | | | | | | | | | | | | | | | | | 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.
* degesch: silence the compilerPřemysl Eric Janouch2020-10-191-2/+4
|
* degesch: fix processing WHO repliesPřemysl Eric Janouch2020-10-191-4/+4
| | | | | We don't want to print the reply for ourselves nor for unknown or PM-only users.
* degesch: update an outdated commentPřemysl Eric Janouch2020-10-161-1/+1
|
* degesch: cleanupPřemysl Eric Janouch2020-10-161-25/+25
| | | | | Channels now need a reference to the server, so don't pass it to functions.
* degesch: watch away statuses with away-notify/WHOPřemysl Eric Janouch2020-10-161-19/+106
| | | | | We're not going to implement polling. Polling is complex. Freenode supports away-notify.
* degesch: don't eat NAMES for unknown channelsPřemysl Eric Janouch2020-10-161-0/+3
|
* degesch: stubplement TAGMSGPřemysl Eric Janouch2020-10-161-0/+9
|
* degesch: clarify handling of unexpected JOINsPřemysl Eric Janouch2020-10-161-5/+5
| | | | I got confused about safety.
* degesch: improve a function namePřemysl Eric Janouch2020-10-161-2/+2
| | | | 3_3_3_3_4 looks awful and it wasn't even precise.
* Tolerate cut-off UTF-8 messagesPřemysl Eric Janouch2020-10-121-1/+22
| | | | | | | | 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
* Bump libertyPřemysl Eric Janouch2020-10-121-2/+2
|
* Bump libertyPřemysl Eric Janouch2020-10-121-44/+10
| | | | We've moved most of our configuration test in there.
* degesch: add support for crossed-out textPřemysl Eric Janouch2020-10-111-10/+21
| | | | Assuming that sgr0 includes rmxx behaviour, which should be true.
* degesch: support more coloursPřemysl Eric Janouch2020-10-111-4/+21
|
* degesch: prefer British spelling in commentsPřemysl Eric Janouch2020-10-111-23/+23
| | | | Let's say the rest is in Oxford spelling, not sure about it.
* Bump libertyPřemysl Eric Janouch2020-10-101-1/+1
| | | | resolve_relative_runtime_unique_filename() used to have a bug.
* degesch: fix prompt not showing up after changePřemysl Eric Janouch2020-10-061-5/+3
| | | | | | | | | | | | | 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.
* degesch: enable wrapping in the backlog by defaultPřemysl Eric Janouch2020-10-041-1/+1
| | | | The main issue has been eliminated.
* degesch: resolve the issue with less(1) and SO/SIPřemysl Eric Janouch2020-10-041-10/+25
| | | | | | | | | 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.
* degesch: make the unread marker look a bit fancierPřemysl Janouch2020-10-041-1/+27
| | | | | | | | | | | | | | | | | | 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.
* degesch: fix a typoPřemysl Eric Janouch2020-10-041-1/+1
|
* degesch: make use of arguments in _new() functionsPřemysl Eric Janouch2020-10-041-10/+10
|
* degesch: save some memory on channel usersPřemysl Eric Janouch2020-10-041-26/+21
| | | | | `struct str` was mostly unnecessary, we can save 16+ bytes, while performance and code readability is mostly unchanged.