70 Commits

Author SHA1 Message Date
C. McEnroe
8b6a476c35 Add /whowas 2020-12-30 14:29:32 -05:00
C. McEnroe
05fbcb41c9 Show setnames like nick changes 2020-12-30 00:19:52 -05:00
C. McEnroe
1662b01a5f Add /setname command
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-12-29 23:54:30 -05:00
C. McEnroe
f7f5acbbe2 Double up /help for server help
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-10-02 19:38:37 -04:00
C. McEnroe
f3a56b0d01 Use WHO for /ops
Accumulate names in a buffer and show away status.
2020-09-30 19:21:34 -04:00
C. McEnroe
3e67bf6557 Add /ops command
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-30 17:52:39 -04:00
C. McEnroe
dce6c11cf6 Allow 2-param form of /whois, count comma-separated nicks
I do not feel like documenting the 2-param form of /whois because it is
weird, but it should work for those who already know about it.
2020-09-18 18:26:13 -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
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
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
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
C. McEnroe
db4af9e7ab Voice, devoice self on /voice, /devoice with no params 2020-04-06 16:30:03 -04:00
C. McEnroe
151739e8da Op, deop self on /op, /deop without params 2020-04-06 16:09:49 -04:00
C. McEnroe
75a6aa9258 Use gnu-case-range and gnu-conditional-omitted-operand extensions
I'm sad to do this but I just can't stand writing (foo ? foo : bar)
anymore.
2020-04-03 17:10:52 -04:00
C. McEnroe
6574f012c9 Only treat /open param as count if single digit 2020-04-03 15:16:49 -04:00
C. McEnroe
25f419465f Add /ignore message filtering patterns 2020-03-31 14:30:42 -04:00
C. McEnroe
a0dde10cb6 Add text macros 2020-03-30 14:56:26 -04:00
C. McEnroe
6bfeff71a2 Add /o alias for /open
I can't live without it.
2020-03-30 11:15:44 -04:00
C. McEnroe
ebbb5ad4d2 Add /op, /deop, /voice, /devoice
This collides with using /o for /open which I'm sad about, but I think
these commands should exist...
2020-03-29 12:43:53 -04:00
C. McEnroe
4f40ace9d4 Track MODE in replies 2020-03-23 16:52:24 -04:00
C. McEnroe
35ae4121cb Fix non-multiline command newline handling 2020-03-23 15:47:56 -04:00
C. McEnroe
3cb7cc97f6 Allow commands to take multiline input 2020-03-23 14:54:46 -04:00
C. McEnroe
cf1545870a Assume worst case for unknown user and host in splitMessage
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-23 13:25:10 -04:00
C. McEnroe
3bb3a11454 Implement message splitting 2020-03-22 15:13:33 -04:00
C. McEnroe
be4283b8ff Handle empty input directly in command 2020-03-22 14:38:22 -04:00
C. McEnroe
ccde1c2c8c Add /say 2020-03-22 14:19:11 -04:00
C. McEnroe
5c167e4181 Prevent entering commands in <debug> if restricted
Because the <debug> ID always exists, it's possible to create a window
for it even while restricted with "/window <debug>" and try to enter
commands there.
2020-03-02 19:18:55 -05:00
C. McEnroe
3c5e1c95a4 Add /mode, /except, /invex and handle lists replies 2020-02-25 02:12:35 -05:00
C. McEnroe
a5cd2cd97a Just use "b" to query ban list 2020-02-20 03:48:26 -05:00
C. McEnroe
56de4668ac Add /ban, /unban and handle ban list replies 2020-02-19 21:47:16 -05:00
C. McEnroe
b20be7cbad Various small cleanups
Haven't really gone through ui.c yet.
2020-02-16 23:05:43 -05:00
C. McEnroe
700b5d5870 Replace small integers in size_t with uint 2020-02-15 22:19:55 -05:00
C. McEnroe
91fa136672 Add /ns and /cs 2020-02-15 04:47:46 -05:00
C. McEnroe
ed52ade739 Add /kick 2020-02-14 21:43:27 -05:00
C. McEnroe
39a343980b Add /invite 2020-02-14 21:36:58 -05:00
C. McEnroe
8aa6dd86f6 Add /away 2020-02-14 21:10:40 -05:00
C. McEnroe
46f61dfcdc Add /exec 2020-02-13 22:22:11 -05:00
C. McEnroe
1e226593ef Rename procPipe to utilPipe 2020-02-13 21:57:55 -05:00
C. McEnroe
92ccabaafd Refactor windows into array and add /move
Oof.
2020-02-13 05:05:53 -05:00
C. McEnroe
489df70c37 Add /list 2020-02-12 02:39:23 -05:00
C. McEnroe
10ae7bedbd Add -R restricted flag 2020-02-11 22:39:29 -05:00
C. McEnroe
80a79467ef Only automatically switch to expected joins 2020-02-10 20:24:07 -05:00
C. McEnroe
00f0f94fc8 Delegate to commandPrivmsg from commandMsg 2020-02-10 20:17:21 -05:00
C. McEnroe
3436cd1068 Add /whois 2020-02-09 16:45:49 -05:00
C. McEnroe
2bb3590de9 Add /msg
Services tend to tell you to use /msg so it definitely needs to exist.
2020-02-09 16:19:36 -05:00
C. McEnroe
5254e1035c Add /help
Now with automatic search! Also had to fix the SIGCHLD handling...
2020-02-09 14:09:27 -05:00
C. McEnroe
af14947103 Trim whitespace from both ends of command params 2020-02-08 21:50:29 -05:00
C. McEnroe
3e68684148 Add /copy 2020-02-08 21:44:50 -05:00
C. McEnroe
f502260dd0 Scan messages for URLs 2020-02-08 18:29:01 -05:00
C. McEnroe
b98c7d6863 Add /topic 2020-02-08 03:25:50 -05:00