summary refs log tree commit diff
path: root/chat.h (follow)
Commit message (Collapse)AuthorAge
* Use separate reply counts for automatic join topics/namesJune McEnroe2021-02-21
| | | | | | This restores showing the topic and names for automatic joined channels, while still avoiding touching the windows, by using Cold heat.
* Measure timestamp width using ncursesJune McEnroe2021-01-27
| | | | | This allows for non-ASCII characters in timestamps, and simplifies things by including the trailing space in the width.
* Add toggleable display of timestampsJune McEnroe2021-01-27
|
* Add numbers to buffer linesJune McEnroe2021-01-26
| | | | | | | | | 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.
* Separate kiosk mode from restrict modeJune McEnroe2021-01-23
| | | | | | | | | | | 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.
* Rename ignore code to filterJune McEnroe2021-01-16
|
* Generalize ignore toggling to visibility thresholdJune McEnroe2021-01-16
|
* Save and load the URL ring in the save file 1.4June McEnroe2021-01-11
|
* Print chain to stdout with -oJune McEnroe2021-01-10
|
* Add -o and -t options to trust self-signed certificatesJune McEnroe2021-01-09
|
* Allow configuring the upper bound of the hash functionJune McEnroe2021-01-09
| | | | | | | 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 to avoid over-eager * matchingJune McEnroe2021-01-01
| | | | | | | | | | 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.
* Factor out reply count checking and decrementingJune McEnroe2020-12-30
|
* Add /whowasJune McEnroe2020-12-30
|
* Show setnames like nick changesJune McEnroe2020-12-30
|
* Add /setname commandJune McEnroe2020-12-29
| | | | | | I'm not sure about that replies check in handleStandardReply. If more of those are added the reply counter system will definitely need refactoring.
* Avoid eating C-c while connectingJune McEnroe2020-10-12
| | | | | Split UI initialization into two steps either side of the call to connect, so that C-c works as interrupt while it's blocked.
* Factor out styleStripJune McEnroe2020-10-09
|
* Double up /help for server helpJune McEnroe2020-10-02
| | | | | | 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.
* Use WHO for /opsJune McEnroe2020-09-30
| | | | Accumulate names in a buffer and show away status.
* Add /ops commandJune McEnroe2020-09-30
| | | | | | 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.
* Recalculate unreadHard on reflowJune McEnroe2020-09-02
|
* Hide ignored messages at the soft -> hard buffer layerJune McEnroe2020-09-02
| | | | This restores normal scrolling behaviour.
* Actually insert blank lines in the soft bufferJune McEnroe2020-09-02
| | | | So they can be preserved forever!
* Render one main window from buffersJune McEnroe2020-09-02
| | | | | | | | 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.
* Implement buffer line wrappingJune McEnroe2020-09-01
| | | | Not yet rendered in the UI! Just done in parallel.
* Factor buffer out of uiJune McEnroe2020-09-01
| | | | In preparation for doing line wrapping outside of ncurses.
* Move styleParse out of uiJune McEnroe2020-09-01
|
* Use a static buffer for base directory pathsJune McEnroe2020-08-21
|
* Use configPath to load TLS cert/privJune McEnroe2020-08-20
|
* Refactor base dir functions to iterate over pathsJune McEnroe2020-08-20
|
* Say "OpenSSL" in additional permission noticesJune McEnroe2020-08-04
| | | | LibreSSL is "a modified version of that library".
* Replace catf with something that tracks lenJune McEnroe2020-07-30
| | | | Also the old catf would be broken with -DNDEBUG oops!
* Define explicit_bzero using memset_s on macOSJune McEnroe2020-07-30
|
* Remove use of strlcatJune McEnroe2020-07-30
| | | | catf is not better though and should really be replaced.
* Bump ParamCap to 254June McEnroe2020-06-24
| | | | | | | | | | | | 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.
* Add additional permission for linking with LibreSSLJune McEnroe2020-06-08
| | | | https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
* Mark global variables in chat.h as externMichael Forney2020-05-07
| | | | | This fixes the build with gcc 10, which enables -fno-common by default.
* Check ignores against idJune McEnroe2020-04-07
| | | | | 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.
* Add M-q to collapse whitespaceJune McEnroe2020-04-07
|
* Add /ignore message filtering patternsJune McEnroe2020-03-31
|
* Add text macrosJune McEnroe2020-03-30
|
* Add logging functionsJune McEnroe2020-03-25
| | | | The mkdir dance is a bit awkward...
* Track MODE in repliesJune McEnroe2020-03-23
|
* Assume worst case for unknown user and host in splitMessageJune McEnroe2020-03-23
| | | | | | 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.
* Track own host, handle CHGHOSTJune McEnroe2020-03-22
|
* Implement the causal.agency/consumer capabilityJune McEnroe2020-02-29
|
* Add /mode, /except, /invex and handle lists repliesJune McEnroe2020-02-25
|
* Add /ban, /unban and handle ban list repliesJune McEnroe2020-02-19
|
* Various small cleanupsJune McEnroe2020-02-16
| | | | Haven't really gone through ui.c yet.