summary refs log tree commit diff
path: root/chat.h
AgeCommit message (Collapse)Author
2021-03-17Show where too-long-messages will be automatically splitC. McEnroe
2021-03-08Disable nick and channel colors with hash bound 0C. McEnroe
2021-02-21Use separate reply counts for automatic join topics/namesC. McEnroe
This restores showing the topic and names for automatic joined channels, while still avoiding touching the windows, by using Cold heat.
2021-01-27Measure timestamp width using ncursesC. McEnroe
This allows for non-ASCII characters in timestamps, and simplifies things by including the trailing space in the width.
2021-01-27Add toggleable display of timestampsC. McEnroe
2021-01-26Add numbers to buffer linesC. McEnroe
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.
2021-01-23Separate kiosk mode from restrict modeC. McEnroe
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.
2021-01-16Rename ignore code to filterC. McEnroe
2021-01-16Generalize ignore toggling to visibility thresholdC. McEnroe
2021-01-11Save and load the URL ring in the save file 1.4C. McEnroe
2021-01-10Print chain to stdout with -oC. McEnroe
2021-01-09Add -o and -t options to trust self-signed certificatesC. McEnroe
2021-01-09Allow configuring the upper bound of the hash functionC. McEnroe
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?
2021-01-01Split ignore fields to avoid over-eager * matchingC. McEnroe
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.
2020-12-30Factor out reply count checking and decrementingC. McEnroe
2020-12-30Add /whowasC. McEnroe
2020-12-30Show setnames like nick changesC. McEnroe
2020-12-29Add /setname commandC. McEnroe
I'm not sure about that replies check in handleStandardReply. If more of those are added the reply counter system will definitely need refactoring.
2020-10-12Avoid eating C-c while connectingC. McEnroe
Split UI initialization into two steps either side of the call to connect, so that C-c works as interrupt while it's blocked.
2020-10-09Factor out styleStripC. McEnroe
2020-10-02Double up /help for server helpC. McEnroe
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.
2020-09-30Use WHO for /opsC. McEnroe
Accumulate names in a buffer and show away status.
2020-09-30Add /ops commandC. McEnroe
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.
2020-09-02Recalculate unreadHard on reflowC. McEnroe
2020-09-02Hide ignored messages at the soft -> hard buffer layerC. McEnroe
This restores normal scrolling behaviour.
2020-09-02Actually insert blank lines in the soft bufferC. McEnroe
So they can be preserved forever!
2020-09-02Render one main window from buffersC. McEnroe
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-01Implement buffer line wrappingC. McEnroe
Not yet rendered in the UI! Just done in parallel.
2020-09-01Factor buffer out of uiC. McEnroe
In preparation for doing line wrapping outside of ncurses.
2020-09-01Move styleParse out of uiC. McEnroe
2020-08-21Use a static buffer for base directory pathsC. McEnroe
2020-08-20Use configPath to load TLS cert/privC. McEnroe
2020-08-20Refactor base dir functions to iterate over pathsC. McEnroe
2020-08-04Say "OpenSSL" in additional permission noticesC. McEnroe
LibreSSL is "a modified version of that library".
2020-07-30Replace catf with something that tracks lenC. McEnroe
Also the old catf would be broken with -DNDEBUG oops!
2020-07-30Define explicit_bzero using memset_s on macOSC. McEnroe
2020-07-30Remove use of strlcatC. McEnroe
catf is not better though and should really be replaced.
2020-06-24Bump ParamCap to 254C. McEnroe
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-08Add additional permission for linking with LibreSSLC. McEnroe
https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
2020-05-07Mark global variables in chat.h as externMichael Forney
This fixes the build with gcc 10, which enables -fno-common by default.
2020-04-07Check ignores against idC. McEnroe
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.
2020-04-07Add M-q to collapse whitespaceC. McEnroe
2020-03-31Add /ignore message filtering patternsC. McEnroe
2020-03-30Add text macrosC. McEnroe
2020-03-25Add logging functionsC. McEnroe
The mkdir dance is a bit awkward...
2020-03-23Track MODE in repliesC. McEnroe
2020-03-23Assume worst case for unknown user and host in splitMessageC. McEnroe
The default USERLEN of 9 doesn't have a great source, the RFC only says that nicks are length 9, so my assumption is that usernames are not longer.
2020-03-22Track own host, handle CHGHOSTC. McEnroe
2020-02-29Implement the causal.agency/consumer capabilityC. McEnroe
2020-02-25Add /mode, /except, /invex and handle lists repliesC. McEnroe