Age | Commit message (Collapse) | Author |
|
|
|
|
|
Based on seprint(2) from Plan 9. I'm not sure if my return value
exactly matches Plan 9's in the case of truncation. seprint(2) is
described only as returning a pointer to the terminating '\0', but
if it does so even in the case of truncation, it is awkward for the
caller to detect. This implementation returns end in the truncation
case, so that (ptr == end) indicates truncation.
|
|
Reuse the /window command to preserve /wi abbreviation.
|
|
So that the first part of $SSH_CLIENT can be passed as username.
|
|
Using the +draft/reply client tag, which is supported by BitBot.
This hides the bot's replies to ignored users or ignored bot command
messages.
This commit is dedicated to the land of Estonia.
|
|
This feature is rarely used, so just skip STATUSMSG prefixes in the
target so messages get routed correctly.
|
|
|
|
|
|
This restores showing the topic and names for automatic joined
channels, while still avoiding touching the windows, by using Cold
heat.
|
|
This allows for non-ASCII characters in timestamps, and simplifies
things by including the trailing space in the width.
|
|
|
|
This directly correlates hard-wrapped lines with the soft lines
they were wrapped from.
Choosing uint here because it doesn't change the size of struct
Line. It doesn't at all matter since buffers only hold 1024 lines
at a time anyway.
|
|
Restrict mode will focus on sandboxing, while kiosk will continue
to restrict IRC access through a public kiosk. Kiosk mode without
restrict mode allows execution of man 1 catgirl with /help, assuming
external sandboxing.
The /list and /part commands are also added to the list of disabled
commands in kiosk mode, since they are pointless without access to
/join.
|
|
|
|
|
|
|
|
|
|
|
|
This allows limiting the nick colors used to the 16-color terminal set
without modifying the TERM environment variable. Produces different
results from just using the default configuration in a 16-color
terminal, but what can you do?
|
|
Split ignore fields and match each separately to avoid an early *
eagerly matching across several fields. For example, "* JOIN * *" should
not match messages which happen to contain the word "JOIN" followed by
two other words.
Ignore capacity is reduced to 64 to keep the size of the array the same.
I don't think it's an issue.
|
|
|
|
|
|
|
|
I'm not sure about that replies check in handleStandardReply. If more of
those are added the reply counter system will definitely need
refactoring.
|
|
Split UI initialization into two steps either side of the call to
connect, so that C-c works as interrupt while it's blocked.
|
|
|
|
While the automatic search via LESS is neat, I don't think it's very
useful. Just always open the manual to the COMMANDS section, and fix it
to append to LESS rather than replace it.
|
|
Accumulate names in a buffer and show away status.
|
|
It's pretty awkward with large channels since NAMES isn't sorted by
prefixes or anything... But having it accumulate names across many
replies would require more reworking.
|
|
|
|
This restores normal scrolling behaviour.
|
|
So they can be preserved forever!
|
|
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.
|
|
Not yet rendered in the UI! Just done in parallel.
|
|
In preparation for doing line wrapping outside of ncurses.
|
|
|
|
|
|
|
|
|
|
LibreSSL is "a modified version of that library".
|
|
Also the old catf would be broken with -DNDEBUG oops!
|
|
|
|
catf is not better though and should really be replaced.
|
|
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.
|
|
https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
|
|
This fixes the build with gcc 10, which enables -fno-common by
default.
|
|
Otherwise they do not work correctly for QUIT and NICK. This also lets
you ignore private messages only by putting the nick in the third field.
|
|
|
|
|