C. McEnroe
bc29082f9d
Remove use of "%n" to appease de Raadt
...
Sure, it was completely unnecessary, but I resent being told how
to use snprintf.
https://cvsweb.openbsd.org/src/lib/libc/stdio/vfprintf.c?rev=1.79&content-type=text/x-cvsweb-markup
2021-01-23 12:34:30 -05:00
Klemens Nanni
bc3bd95648
Drop filesystem access iff possible
...
Log files and state save/restore both require read/write access to
the filesystem, both during start and exit.
If neither features are used, catgirl may run with "stdio tty".
2021-01-23 00:48:19 -05:00
Klemens Nanni
837c9efce4
Drop exec capability iff restricted
...
Nothing must be executed when running /copy, et al.
2021-01-23 00:48:19 -05:00
Klemens Nanni
c93c56e4e5
Drop network capability after ircConnect()
...
catgirl has no reconnect feature and generally must not do
anything but read/write from/to the connected socket which
does not require "inet" or "dns" promises.
2021-01-23 00:48:19 -05:00
Klemens Nanni
a19f48d840
Call pledge(2) after unveil(2)
...
Simplify logic, be more idiomatic and finalize by pledging after
all unveiling is done by omitting the "unveil" promise and thereby
not allowing further calls to it.
2021-01-23 00:48:19 -05:00
C. McEnroe
95bb627ffb
Separate kiosk mode from restrict mode
...
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-23 00:48:15 -05:00
C. McEnroe
6ee0aea9e5
Simplify windowUpdate loops and factor out windowTop
...
No idea why I made that more complicated than it had to be looping
backwards.
2021-01-21 11:57:23 -05:00
C. McEnroe
6a6456a0dc
Document that M-l shows timestamps
2021-01-21 10:36:29 -05:00
Jeremy O'Brien
1fbc8fe394
Don't lose swapped window when navigating to current buffer
2021-01-19 12:14:43 -05:00
C. McEnroe
965b6987a9
Use Warm heat for manually inserted blank lines
...
Oops, forgot about these.
2021-01-19 10:50:55 -05:00
Klemens Nanni
f944c6455d
Add example tmux(1) config
...
Spawn one catgirl per network and handle reconnects through tmux,
no extra tool required.
2021-01-18 14:44:49 -05:00
C. McEnroe
06683aa4e3
Use Warm heat for blank lines
...
So they're not hidden by M-+.
2021-01-17 00:35:59 -05:00
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
6160b3f18c
Remove join/part/quit ignore example
...
These can now be hidden with M-+.
2021-01-16 13:36:39 -05:00
C. McEnroe
1a1fe1fb7a
Save and load window visibility thresholds
2021-01-16 13:09:55 -05:00
C. McEnroe
43b1dba720
Restore toggling ignore with M--
...
So that pressing M-- repeatedly maintains the previous behavior.
2021-01-16 13:05:01 -05:00
C. McEnroe
d05872303e
Generalize ignore toggling to visibility threshold
2021-01-16 12:58:16 -05:00
C. McEnroe
51c92f94ff
Save and load the URL ring in the save file
2021-01-11 18:05:22 -05:00
C. McEnroe
763802cae6
Don't pass nick to urlScan for MOTD and help
2021-01-11 17:59:12 -05:00
C. McEnroe
0f7518226e
Check fprintf return values rather than ferror
2021-01-10 22:00:40 -05:00
C. McEnroe
df280aa7d6
Sandbox with unveil(2) on OpenBSD in restricted mode
...
I wrote all this in vi and it was nice.
2021-01-10 19:23:01 -05:00
C. McEnroe
c6cd90c2dd
Print chain to stdout with -o
2021-01-10 18:00:41 -05:00
C. McEnroe
cdff668d8f
Allow interspersing flags and config files
...
Don't wait for getopt_long to move all the arguments to the end. This
allows overriding options set by config files by placing flags after
them on the command line.
2021-01-10 13:49:57 -05:00
C. McEnroe
a437761267
Move -o to a separate SYNOPSIS line
2021-01-10 13:20:50 -05:00
C. McEnroe
7b8bd50063
Exit immediately when using -o
2021-01-10 11:47:48 -05:00
C. McEnroe
7bf96ac8e1
Make SYNOPSIS arguments consistent with option names
...
Can't keep the 4-letter pattern forever :(
2021-01-09 19:15:57 -05:00
C. McEnroe
e42b3aa08e
Add -o and -t options to trust self-signed certificates
2021-01-09 19:11:57 -05:00
C. McEnroe
a324795b86
Allow configuring the upper bound of the hash function
...
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-09 17:58:29 -05:00
C. McEnroe
bf70fcbfed
Count width of 2 for invalid multibyte with high bit
2021-01-09 17:28:42 -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
9ea029c580
Sandbox with pledge(2) on OpenBSD
2021-01-06 21:47:56 -05:00
C. McEnroe
3b54425ec1
Collapse whitespace while wrapping and discard trailing space
...
The latter avoids an extra blank line when a message ends with
whitespace that hits the edge of the window.
2021-01-04 14:28:37 -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
b4ed58602b
Handle so-called Standard Replies
2020-12-29 23:11:57 -05:00
C. McEnroe
df577c9cd4
Alphabetize STANDARDS section
2020-12-29 22:58:40 -05:00
C. McEnroe
3bb5a3462b
Document commands which can be filtered
2020-12-08 18:55:54 -05:00
C. McEnroe
65004e8b63
Clarify the optional portions of an ignore
...
Each optional portion requires the optional portions before it,
including a full hostmask.
2020-12-08 17:53:05 -05:00
C. McEnroe
f91a898e13
Fix manual page lints
2020-12-08 17:45:42 -05:00
C. McEnroe
9a81456f0a
Clarify configuration file usage example
...
Point to EXAMPLES and /help from the top of the manual.
2020-12-08 17:19:08 -05:00
C. McEnroe
997c932e83
Handle 437 ERR_UNAVAILRESOURCE like ERR_NICKNAMEINUSE
...
Not totally clear under what conditions 437 is returned, but if it
happens during registration, we should pick a new nick.
2020-12-05 23:06:45 -05:00
C. McEnroe
d6b4aed4df
Split /exec lines by \r as well as \n
...
This fixes local rendering of /exec toilet --irc, which outputs \r\n
line endings.
2020-11-24 19:15:57 -05:00
C. McEnroe
e4aa21d788
Add topic diffing to notable features
2020-11-11 13:27:22 -05:00
C. McEnroe
a1dece3df9
Use wmemcpy/wmemmove
2020-11-08 16:21:34 -05:00
C. McEnroe
ded0455d3e
Remove static buffer from colorMentions
2020-11-08 15:16:25 -05:00
C. McEnroe
a8264f31e0
Remove static buffer from capList
2020-11-08 15:07:13 -05:00