| Commit message (Collapse) | Author |
|
Nothing but the TLS handshake is required, so skip all other setup.
On OpenBSD, unveil() handling needs fixing which will involve code
reshuffling -- this is the first related but standalone step.
Also pledge this one-off code path individually such with simpler and
tighter promises while here.
|
|
Oops!
|
|
The (not perfectly obvious) way catgirl crafts directories gets triggered
by unveilAll() even if no passed option requires filesystem access:
$ env -i TERM=xterm ./catgirl -h irc.hackint.eu -R -n nobody
catgirl: HOME unset
Here unveil(2) is used due to the "restrict" option, but besides terminfo(5)
and certificates catgirl does not need any other files, yet it tries to init
the data path -- passing XDG_DATA_HOME=/var/empty makes above invocation work
showing how the then successful path setup is not required.
Fix this by not unveiling the unneeded data path in the first place.
|
|
"username" alone is ambiguous and without jumping to ENVIRONMENT
explaining the use of USER, catgirl's user- and nickname options read
like pointing at each other:
-n nick | nick = nick
Set nickname to nick. The default nickname is the user's name.
[...]
-u user | user = user
Set username to user. The default username is the same as the
nickname.
Clarify that `-n' does *not* default to `-u's value.
|
|
When waddnstr is called with a string that would extend past the
end of the window, the string is truncated, the cursor remains at
the last column, and ERR is returned. If this error is ignored and
the loop continues, the next call to waddnstr overwrites the character
at this column, resulting in a slight visual artifact. When the
window is too small to fit the full status line, it is effectively
truncated by one space on the right, since the string shown for
each channel begins with a space. Additionally, if the last window
is the current window, the space is shown with a colored background.
To fix this, when waddnstr returns ERR, exit the loop in styleAdd()
early return -1 to propogate this error down to the caller.
|
|
Reuse the /window command to preserve /wi abbreviation.
|
|
|
|
|
|
Without, the mandoc HTML output includes the space and equals in
the class="Cm" element and generates a permalink of #hash_= for
example.
|
|
E.g. ":t debug" will now jump right to the definition just like ":t v"
already did -- at least with mandoc(1) from OpenBSD.
|
|
|
|
|
|
So that the first part of $SSH_CLIENT can be passed as username.
|
|
|
|
|
|
`-H 0,0`/"hash = 0,0" makes catgirl mostly colorless which is great,
but topic changes still hardcode brown/green colors to show differences
which is usually not desired by users (like me) disabling colors.
Go for a less eye stressing topic change message that shows both old
and new in reverse video with default terminal colors.
This isn't perfect, other parts of catgirl still hardcode colors and
`-H 0,0`/"hash = 0,0" was never meant to disable colors completely, but
topics change often enough that avoiding less readable^Waccessible topic
diffs seems sensible enough.
NB: parseHash() is brittle and "0,0" is not the only value disabling
colors...
|
|
|
|
It should have 4, but the handler only uses 3.
|
|
|
|
|
|
Using the +draft/reply client tag, which is supported by BitBot.
This hides the bot's replies to ignored users or ignored bot command
messages.
This commit is dedicated to the land of Estonia.
|
|
I avoided defaulting MANDIR to /usr/local/man because I thought it
didn't work on GNU/Linux and users would be confused, but it turns
out man-db's default configuration includes both /usr/local/man and
/usr/man, so ${PREFIX}/man is a sensical default.
|
|
|
|
In the same way that /query copies the id color from completion.
Also make both first check that a color isn't already set.
|
|
At least in InspIRCd's implementation, you only get invite-notify
INVITEs if you are op, so inviting with no op (where allowed by a
channel mode) results in only a 341. On the other hand, inviting
as an op produces both a 341 and an INVITE, so will be displayed
twice, but showing something sometimes twice is better than not
showing it at all.
|
|
This feature is rarely used, so just skip STATUSMSG prefixes in the
target so messages get routed correctly.
|
|
How long has this been here?
|
|
So you don't have to remember those dang numbers whose order makes
no sense!
|
|
Reflect what will actually be sent.
|
|
|
|
/me shouldn't behave differently from a regular message.
|
|
Those patterns are not specific to the shell, many commands support them.
Notes:
glob(7) does not exist on FreeBSD, but I'm going to consider that
a documentation bug on FreeBSD's part. The page exists in OpenBSD,
NetBSD and even Linux!
|
|
And I think with C-Left and C-Right I can actually say "as expected"
now.
|
|
The recent addition of "#{source_files}" allows us to avoid hardcoding
the file name and instead ask tmux itself for the very file it used to
create the session in the first place, i.e. "-f ./chat.tmux.conf".
|
|
Trust is not certificate pinning and should only be used for
self-signed certificates.
|
|
|
|
Apparently these are common. There's no terminfo for these, so
manually define the xterm sequences.
There's no documentation in the manual for the "intuitive" keys...
I'm not sure if that should continue to be the case or not.
|
|
Don't want to be touching window names much though, otherwise query
window names would interfere with tab completion within a channel.
|
|
A_BLINK has probably always existed, but there's no good reason to
ever use it, so make it do italics instead. Normally all attributes
are set by a single set_attributes string if it's set, so clear it
to force ncurses to use the reassigned enter_blink_mode string. If
the terminal has no enter_italics_mode string, then nothing will
happen.
This makes setting multiple attributes a bit less efficient, but I
don't think it's likely to make much of a difference since using
multiple attributes at once is so uncommon.
|
|
Bad things happen otherwise.
|
|
This restores showing the topic and names for automatic joined
channels, while still avoiding touching the windows, by using Cold
heat.
|
|
OpenBSD's xterm doesn't have bracketed paste mode, and it would be
nice to still be able to paste in several lines and collapse them
with M-q, provided one remembers to type C-z p first...
|
|
|
|
Otherwise it could hit the assertion in editBuffer while converting
to mbs for consumption by the rest of the program.
It's possibly to trigger this with LC_ALL=C and typing C-z C-v M-a,
for example.
|
|
Otherwise expanding a macro could hit the assertion in editBuffer
while converting to mbs for consumption by the rest of the program.
|
|
|
|
The new reference to the COMMANDS section at the beginning of the
manual would get matched instead.
|
|
Provide a hotkey to browser the manual in its own window.
After input, nicm (tmux upstream) added "-S" to tmux(1) such that
the "new-window" command (in combination with "-d") first looks
for the given window name and selects the window if it exists
instead of trying to create a window that already exists.
Given that this makes chat.tmux.conf idempotent, we can now also reload
it at runtime to refresh settings.
|
|
In other words, only automatically switch to an automatically joined
channel window if there's only one. Otherwise, stay on the <network>
window and avoid touching the channel windows with their automatic
topic and names replies.
This fixes unintentionally clearing saved window unread counts when
rejoining channels automatically by switching to them as they are
joined.
|
|
A little annoying to make it a "chord" like this, but C-v is already
used for scrolling, following Emacs-style key bindings (in order
to have a way to scroll without using "special" keys like the arrows
and page up/down), and C-z is at least already in the business of
inserting control characters. This makes it possible to manually
enter some things that are otherwise only possible with /exec printf.
|