Commit Graph

951 Commits (54c632e8c35c3283a890c589f1b7937887c13877)

Author SHA1 Message Date
C. McEnroe 6fe5368ec7 Only call windowUpdate when the shown window needs updating 2020-09-02 15:50:13 -04:00
C. McEnroe 1563eb7d56 Don't consider the alignment tab a wrapping point 2020-09-02 15:48:47 -04:00
C. McEnroe 17898622e3 Call wclear on resize
Otherwise artefects can appear when resizing to smaller width with wide
characters at the right edge of the window.
2020-09-02 02:18:04 -04:00
C. McEnroe a84c9cdda7 Fix line wrapping in various ways
Never split a codepoint, don't set wrapping point unless we're not
already wrapping, wrap on any unicode whitespace, only clear rest of
line if still on the same line...
2020-09-02 01:57:51 -04:00
C. McEnroe 149cafc5ab Render one main window from buffers
Still missing: split scrolling and preserving a blank on reflow either
from resize or ignore toggling.

Anecdata: on one of my instances of catgirl, RAM usage of the previous
release was ~30M, RAM usage of this commit was ~12M.
2020-09-02 00:27:16 -04:00
C. McEnroe 4dc87ab9cd Implement buffer line wrapping
Not yet rendered in the UI! Just done in parallel.
2020-09-01 22:54:26 -04:00
C. McEnroe 8d1d758053 Invert meaning of unreadHard/unreadSoft to match new buffer code
Not sure why I had named them this way. Hard means hard-wrapped.
2020-09-01 20:56:09 -04:00
C. McEnroe ded2b6afb6 Factor buffer out of ui
In preparation for doing line wrapping outside of ncurses.
2020-09-01 20:36:50 -04:00
C. McEnroe a98fd70aac Move styleParse out of ui 2020-09-01 18:05:17 -04:00
C. McEnroe 8190d76086 Use a static buffer for base directory paths 2020-08-21 16:49:10 -04:00
C. McEnroe 1abeece988 Document how cert/priv are searched for
This has always been how it works, but it was previously undocumented.
2020-08-20 21:22:29 -04:00
C. McEnroe d9a0364cb4 Use configPath to load TLS cert/priv 2020-08-20 14:56:13 -04:00
C. McEnroe f432bd72fa Refactor base dir functions to iterate over paths 2020-08-20 14:08:51 -04:00
C. McEnroe b06470294d Match mentions case-sensitively
The mention coloring code already matches case-sensitively, and any
proper ping should be using tab-complete anyway so there's no reason for
differing case. And the month of June should not ping me.
2020-08-18 21:26:17 -04:00
C. McEnroe 1891c77535 Preserve colon from previous tab-complete
This fixes the case when pinging multiple nicks and one of them needs to
be cycled through.
2020-08-18 10:09:54 -04:00
C. McEnroe 10e953b8b5 Set origin fields to "*" if missing
Also determine if a message is from the server by if the host field has
been copied from the nick field.

EFNet sends NOTICEs with no origin during registration.

RFC 1459 has this to say:

> If the prefix is missing from the message, it is assumed to have
> originated from the connection from which it was received.

I suppose a more correct implementation would be to set the origin to
the hostname of the server, but we don't store that globally, so this
is good enough.
2020-08-16 22:52:01 -04:00
C. McEnroe 1c8054f226 Set OPENSSL_BIN to /usr/bin/openssl on FreeBSD 2020-08-06 16:15:53 -04:00
C. McEnroe cdb6bacb06 Say for instead of with 2020-08-05 12:51:44 -04:00
C. McEnroe 9bd001ad4f Mention LibreTLS in install instructions 2020-08-04 14:38:23 -04:00
C. McEnroe 814c36223a Say "OpenSSL" in additional permission notices
LibreSSL is "a modified version of that library".
2020-08-04 12:19:14 -04:00
C. McEnroe 52a676155b Fix --mandir rendering in README
Fl Fl renders correctly in text but leaves a space between the hyphens
in HTML output.
2020-08-03 18:15:18 -04:00
C. McEnroe 9bd10d768d Add \banhammer macro
From the Textual extras command /banhammer.
2020-08-02 18:08:08 -04:00
C. McEnroe bd8997ef09 Check return value of asprintf
On the awful operating system GNU, asprintf leaves the destination
pointer UNDEFINED on failure.
2020-08-01 22:18:58 -04:00
C. McEnroe 387f2c1fa3 Use ldd to automatically copy libs into chroot 2020-07-31 13:04:48 -04:00
C. McEnroe 27866c5657 Fix path of cert.pem in chroot 2020-07-31 13:04:33 -04:00
C. McEnroe 444d4bda9a Fix chroot-man path 2020-07-31 12:49:54 -04:00
C. McEnroe 4c1b1fc6a3 Replace catf with something that tracks len
Also the old catf would be broken with -DNDEBUG oops!
2020-07-30 14:37:46 -04:00
C. McEnroe 09e6b14794 Remove dependency on libcrypto for compat 2020-07-30 13:37:54 -04:00
C. McEnroe a142ebcf43 Define explicit_bzero using memset_s on macOS 2020-07-30 13:36:17 -04:00
C. McEnroe 5a3b63e444 Remove use of strlcat
catf is not better though and should really be replaced.
2020-07-30 13:05:24 -04:00
C. McEnroe 6bb933c651 Bump .so versions in chroot 2020-07-25 19:03:52 -04:00
C. McEnroe 1b8d589112 Support --prefix and --mandir in configure script 2020-07-23 16:40:46 -04:00
C. McEnroe f37ad399fe Rewrite configure script for all platforms 2020-07-23 16:28:38 -04:00
C. McEnroe 5873d8b5a7 Remove tls_close error handling
It seems that sometimes tls_close returns non-zero but tls_error returns
a null string... We're exiting anyway, so just ignore it.
2020-07-23 14:20:29 -04:00
C. McEnroe ed7d5c0f34 Initialize numHot, numWarm
For some reason gcc thinks that numWarm might be used uninitialized.
It's fine with numHot though, strangely.
2020-07-23 00:22:36 -04:00
C. McEnroe 3e03b7502b Add current topic to tab-complete so it can edited 2020-07-13 10:22:33 -04:00
C. McEnroe 787771bebb Keep scrolled up windows in status line 2020-07-12 09:38:52 -04:00
C. McEnroe e6db22d2bb Don't scan ignored messages for URLs 2020-07-09 22:43:35 -04:00
C. McEnroe e1717e8fdd Add link to "IRC Suite" post in README 2020-07-08 16:59:51 -04:00
C. McEnroe d74ec7e0f3 Avoid copying message to match if no ignores are set 2020-07-06 22:51:15 -04:00
C. McEnroe cb84983dd1 Add message to ignore patterns 2020-07-06 22:41:22 -04:00
C. McEnroe 529028fe4a Use DisableForwarding in sshd_config 2020-06-25 00:40:00 -04:00
C. McEnroe 94fb9798c5 Bump ParamCap to 254
Apparently IRCds have decided that the 15-parameter limit doesn't matter
anymore. 254 is the maximum number of single-byte parameters (following
a single-byte command) which fit in a 512-byte CR-LF-terminated line.
When everyone decides that the 512-byte line length limit doesn't matter
either, I will delete my software and people can use some JavaScript
garbage instead.

This makes struct Message 2080 bytes, but there's only ever one or two
of them around at once. Avoid passing it by value to handle.
2020-06-24 13:36:24 -04:00
C. McEnroe 4fb94a1a22 Color mentions up to first ": " rather than just ":"
Avoids coloring everything up to a ":)".
2020-06-16 23:14:07 -04:00
C. McEnroe 82acea5dfa Add null terminator to modes in channelListMode
Otherwise passing more than 13 parameters reads past the end of the
array.
2020-06-15 20:34:28 -04:00
C. McEnroe cabe285427 Document /quote needing /debug for output 2020-06-12 15:42:39 -04:00
C. McEnroe e43d44b08c Add OpenBSD to README 2020-06-11 17:49:45 -04:00
C. McEnroe 29064fb3f6 Add warning to configure script 2020-06-11 16:06:01 -04:00
C. McEnroe e8f1b928b7 Call static_assert by _Static_assert
OpenBSD assert.h does not #define static_assert, and this is the only
thing that prevents catgirl from compiling without any issues there.
2020-06-11 15:33:59 -04:00
C. McEnroe 721c3a9ee6 Add additional permission for linking with LibreSSL
https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
2020-06-08 17:48:07 -04:00