aboutsummaryrefslogtreecommitdiff
path: root/degesch.c
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* degesch: expand comment about character encodingPřemysl Eric Janouch2020-10-021-2/+7
|
* Bump liberty, use iscntrl_ascii()Přemysl Eric Janouch2020-10-021-2/+2
|
* degesch: remove unnecessary quotes from macro defsPřemysl Eric Janouch2020-09-201-16/+16
| | | | The behaviour is defined by the standard.
* degesch: update comment to reflect realityPřemysl Eric Janouch2020-09-201-1/+2
|
* Update copyright yearsPřemysl Eric Janouch2020-09-021-1/+1
|
* degesch: work around a libedit attribute issuePřemysl Eric Janouch2020-09-021-3/+16
|
* degesch: fix a libedit crashPřemysl Eric Janouch2020-09-021-1/+2
|
* degesch: fix Lua 5.4 buildPřemysl Eric Janouch2020-09-021-1/+8
| | | | | | Not sure about how well it works yet. Lua 5.3 is still made preferential by the order of pkgconfig lookup.
* degesch: fix a pointer operation in the libedit layerPřemysl Eric Janouch2020-09-021-1/+2
|
* Name changePřemysl Eric Janouch2020-09-021-1/+1
|
* degesch: fix log reopening after a buffer renamePřemysl Janouch2020-03-231-2/+2
|
* degesch: clean up unused functionsPřemysl Janouch2020-03-221-32/+0
|
* Fix handling terminal resizes while the terminal is suspendedPřemysl Janouch2020-03-211-0/+2
| | | | GNU Readline has a misfeature.
* degesch: fix getpwuid usagePřemysl Janouch2019-12-071-0/+1
| | | | The "entry not found" case doesn't have to touch errno.
* degesch: add a comment about ENOTCONNPřemysl Janouch2018-10-211-0/+2
|
* Relicense to 0BSD, update mail addressPřemysl Janouch2018-06-211-3/+2
| | | | | | | | | I've come to the conclusion that copyright mostly just stands in the way of software development. In my jurisdiction I cannot give up my own copyright and 0BSD seems to be the closest thing to public domain. The updated mail address, also used in my author/committer lines, is shorter and looks nicer. People rarely interact anyway.
* degesch: fix some log messagesPřemysl Janouch2018-06-211-5/+5
| | | | We could use some static analysis for these.
* degesch: introduce cstr_set()Přemysl Janouch2018-01-081-74/+32
|
* degesch: thorough review, no functional changesPřemysl Janouch2018-01-081-20/+61
|
* degesch: fix IPv6:port in irc_split_host_port()Přemysl Janouch2018-01-081-12/+14
|
* degesch: fix a minor bug in buffer_merge()Přemysl Janouch2018-01-081-2/+1
| | | | | The pointer to the last item in the linked list wasn't always fixed, although nothing really touched it afterwards.
* degesch: simplify a popular assertionPřemysl Janouch2018-01-081-20/+10
|
* degesch: simplify the configuration dumperPřemysl Janouch2018-01-081-29/+11
|
* degesch: show an error message on log write failurePřemysl Janouch2018-01-081-2/+17
| | | | Running out of space and I/O errors seem like the most likely causes.