C. McEnroe
063f2aaa0c
Add -I highlight option and /highlight
2021-01-16 14:15:00 -05:00
C. McEnroe
5a490945ea
Rename ignore code to filter
2021-01-16 13:36:39 -05:00
C. McEnroe
8d57d700a5
Use execl rather than execlp for shell
...
SHELL is an absolute path.
2021-01-07 13:28:54 -05:00
C. McEnroe
4b883177dc
Split ignore fields to avoid over-eager * matching
...
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.
2021-01-01 20:09:10 -05:00
C. McEnroe
519fcc436f
Factor out reply count checking and decrementing
2020-12-30 16:54:03 -05:00
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