about summary refs log tree commit diff
path: root/handle.c (follow)
Commit message (Collapse)AuthorAge
* 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.
* Switch back to checking for server by nick with '.'June McEnroe2020-09-18
| | | | | | | | | | This fixes a bug where if you send a private message before joining any channels, your message will be routed to the <network> window. That happens because without a JOIN, self.user remains unset, which means that require will copy self.nick (set by echoMessage) to self.host. The easiest solution is to go back to checking for '.' and add a '.' to the default nick, so now if a server sends a NOTICE with no origin it will look like -*.*- which is kinda cute.
* Don't call completeTouch for ignored messagesJune McEnroe2020-09-02
|
* Match mentions case-sensitivelyJune McEnroe2020-08-18
| | | | | | 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.
* Set origin fields to "*" if missingJune McEnroe2020-08-16
| | | | | | | | | | | | | | | | 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.
* 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!
* Remove use of strlcatJune McEnroe2020-07-30
| | | | catf is not better though and should really be replaced.
* Add current topic to tab-complete so it can editedJune McEnroe2020-07-13
|
* Don't scan ignored messages for URLsJune McEnroe2020-07-09
|
* 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.
* Color mentions up to first ": " rather than just ":"June McEnroe2020-06-16
| | | | Avoids coloring everything up to a ":)".
* Add additional permission for linking with LibreSSLJune McEnroe2020-06-08
| | | | https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
* 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.
* Error on missing MODE parametersJune McEnroe2020-04-05
|
* Error on invalid ISUPPORT valuesJune McEnroe2020-04-05
|
* Use gnu-case-range and gnu-conditional-omitted-operand extensionsJune McEnroe2020-04-03
| | | | | I'm sad to do this but I just can't stand writing (foo ? foo : bar) anymore.
* Add /ignore message filtering patternsJune McEnroe2020-03-31
|
* Replace some declaration; while loops with for loopsJune McEnroe2020-03-30
| | | | | I should have been using this for getopt loops already but the call here is slightly too long to fit on one line as a for loop.
* Rewrite mode formatting again and write to logJune McEnroe2020-03-28
| | | | Going back to one line per mode change again because it's easier.
* Log chat eventsJune McEnroe2020-03-25
| | | | | Still missing is logging MODE changes, which will be hell, unless it just logs the raw stuff.
* 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
|
* Handle RPL_CHANNELMODEISJune McEnroe2020-03-22
|
* Handle user mode changesJune McEnroe2020-03-22
|
* Rewrite handleModeJune McEnroe2020-03-22
|
* Handle RPL_UMODEISJune McEnroe2020-03-18
|
* Ignore 422 ERR_NOMOTDJune McEnroe2020-03-09
| | | | | pounce will start sending these because some silly clients don't think they're connected until some MOTD reply...
* Set self.pos before handling the messageJune McEnroe2020-03-08
| | | | | | | | This intuitively feels wrong, but isn't. Most importantly, handleError immediately exits, but we still need to "consume" that message, otherwise pounce will keep sending it on reconnect. The same goes for any other handler that might cause an exit, such as a require parameter count failure.
* Implement the causal.agency/consumer capabilityJune McEnroe2020-02-29
|
* Add raw modes to mode messageJune McEnroe2020-02-25
|
* Handle changing setParamModes, paramModes and other channel modesJune McEnroe2020-02-25
|
* Fix handling EXCEPTS and INVEX without valuesJune McEnroe2020-02-25
|
* Add /mode, /except, /invex and handle lists repliesJune McEnroe2020-02-25
|
* Accumulate mode changes into a buffer for one messageJune McEnroe2020-02-23
|
* Handle ERR_CHANOPRIVSNEEDEDJune McEnroe2020-02-20
|
* Handle MODE changing channel list modesJune McEnroe2020-02-20
|
* Handle MODE setting channel prefix modesJune McEnroe2020-02-20
|
* Change ban list formattingJune McEnroe2020-02-20
|
* Rearrange some handlersJune McEnroe2020-02-20
|
* Handle RPL_INVITING when no invite-notifyJune McEnroe2020-02-20
|
* Handle ERR_BANLISTFULLJune McEnroe2020-02-20
|
* Add handlers for user-in-channel errorsJune McEnroe2020-02-20
|
* Add generic error reply handlerJune McEnroe2020-02-20
| | | | This should have been in way earlier...
* Add /ban, /unban and handle ban list repliesJune McEnroe2020-02-19
|
* Format WHOIS signon date with %F %TJune McEnroe2020-02-19
|
* Replace a lot of snprintf with a catf implementationJune McEnroe2020-02-16
|