C. McEnroe
53f23942a4
Clear wrapping point at alignment tab
...
This fixes odd wrapping when a nick contains a hyphen and there are no
further wrapping points.
2020-10-09 22:52:44 -04:00
C. McEnroe
1cc61723c9
Strip formatting from URLs
...
Notably this fixes opening URLs from litterbox queries where part of the
URL is highlighted.
2020-10-09 19:15:25 -04:00
C. McEnroe
c48672313b
Factor out styleStrip
2020-10-09 18:45:52 -04: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
2b8a45779d
Switch back to checking for server by nick with '.'
...
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.
2020-09-18 18:13:09 -04:00
C. McEnroe
b2de129e3f
Copy style from wrapping point
...
This fixes a bug when wrapping on a word with style changes inside it,
where the copied style would be different depending on the width of the
terminal.
2020-09-11 19:12:42 -04:00
C. McEnroe
ef59e235eb
Silence set-but-unused warning
...
getyx is so annoying this way.
2020-09-09 18:04:41 -04:00
C. McEnroe
9513542c6d
Include DEL in characters ncurses will print in ^A form
2020-09-08 14:54:51 -04:00
C. McEnroe
cf42595515
Add blank line to unread if there are already unread
...
This fixes the inconsistent M-u behaviour when catgirl is restarting and
reconnecting to pounce, for example.
2020-09-07 22:21:41 -04:00
C. McEnroe
4ca49debb1
Call uiWrite to insert blank lines
...
It only used to use different code to avoid adding the blank line to the
soft buffer.
2020-09-07 22:13:09 -04:00
C. McEnroe
172d01a668
Let wrapped lines use the last column
2020-09-07 17:51:09 -04:00
C. McEnroe
05f94f1b8b
Handle non-alignment tabs in line wrapping
2020-09-06 22:43:50 -04:00
C. McEnroe
f0fe44f355
Add C-r, C-s for basic scrollback search
2020-09-06 20:40:29 -04:00
C. McEnroe
49e626b2f3
Add M-n, M-p to jump to highlights
2020-09-03 16:37:31 -04:00
C. McEnroe
dbc0c3ef40
Fix M-u behaviour difference before and after reflow
2020-09-03 15:50:39 -04:00
C. McEnroe
0968a8ac7c
Recalculate unreadHard on reflow
2020-09-02 21:29:03 -04:00
C. McEnroe
a46fbea0ec
Give blank lines timestamps
...
Otherwise the zero timestamps totally break save data loading! Bad!
2020-09-02 19:31:05 -04:00
C. McEnroe
96386adac3
Hide ignored messages at the soft -> hard buffer layer
...
This restores normal scrolling behaviour.
2020-09-02 18:51:07 -04:00
C. McEnroe
e229931253
Don't call completeTouch for ignored messages
2020-09-02 17:51:51 -04:00
C. McEnroe
16737d4edc
Preserve style after alignment
...
This makes wrapping text with background colour look much better.
2020-09-02 17:08:21 -04:00
C. McEnroe
99612ad8eb
Still add ignored lines to unreadHard
...
Scrolling is still affected by hidden lines (which I'm not sure yet is
good or not), so for M-u to work it needs to count ignored lines.
2020-09-02 16:52:57 -04:00
C. McEnroe
d00b3d3b70
Actually insert blank lines in the soft buffer
...
So they can be preserved forever!
2020-09-02 16:29:38 -04:00
C. McEnroe
9679c7474e
Reimplement split scrolling
2020-09-02 16:06:34 -04:00
C. McEnroe
a0c8a46c75
Fix inserting blank lines BEFORE the new message
2020-09-02 15:57:36 -04:00
C. McEnroe
6fe5368ec7
Only call windowUpdate when the shown window needs updating
2020-09-02 15:50:13 -04:00
C. McEnroe
1563eb7d56
Don't consider the alignment tab a wrapping point
2020-09-02 15:48:47 -04:00
C. McEnroe
17898622e3
Call wclear on resize
...
Otherwise artefects can appear when resizing to smaller width with wide
characters at the right edge of the window.
2020-09-02 02:18:04 -04:00
C. McEnroe
a84c9cdda7
Fix line wrapping in various ways
...
Never split a codepoint, don't set wrapping point unless we're not
already wrapping, wrap on any unicode whitespace, only clear rest of
line if still on the same line...
2020-09-02 01:57:51 -04:00
C. McEnroe
149cafc5ab
Render one main window from buffers
...
Still missing: split scrolling and preserving a blank on reflow either
from resize or ignore toggling.
Anecdata: on one of my instances of catgirl, RAM usage of the previous
release was ~30M, RAM usage of this commit was ~12M.
2020-09-02 00:27:16 -04:00
C. McEnroe
4dc87ab9cd
Implement buffer line wrapping
...
Not yet rendered in the UI! Just done in parallel.
2020-09-01 22:54:26 -04:00
C. McEnroe
8d1d758053
Invert meaning of unreadHard/unreadSoft to match new buffer code
...
Not sure why I had named them this way. Hard means hard-wrapped.
2020-09-01 20:56:09 -04:00
C. McEnroe
ded2b6afb6
Factor buffer out of ui
...
In preparation for doing line wrapping outside of ncurses.
2020-09-01 20:36:50 -04:00
C. McEnroe
a98fd70aac
Move styleParse out of ui
2020-09-01 18:05:17 -04:00
C. McEnroe
8190d76086
Use a static buffer for base directory paths
2020-08-21 16:49:10 -04:00
C. McEnroe
1abeece988
Document how cert/priv are searched for
...
This has always been how it works, but it was previously undocumented.
2020-08-20 21:22:29 -04:00
C. McEnroe
d9a0364cb4
Use configPath to load TLS cert/priv
2020-08-20 14:56:13 -04:00
C. McEnroe
f432bd72fa
Refactor base dir functions to iterate over paths
2020-08-20 14:08:51 -04:00
C. McEnroe
b06470294d
Match mentions case-sensitively
...
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.
2020-08-18 21:26:17 -04:00
C. McEnroe
1891c77535
Preserve colon from previous tab-complete
...
This fixes the case when pinging multiple nicks and one of them needs to
be cycled through.
2020-08-18 10:09:54 -04:00
C. McEnroe
10e953b8b5
Set origin fields to "*" if missing
...
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.
2020-08-16 22:52:01 -04:00
C. McEnroe
1c8054f226
Set OPENSSL_BIN to /usr/bin/openssl on FreeBSD
2020-08-06 16:15:53 -04:00
C. McEnroe
cdb6bacb06
Say for instead of with
2020-08-05 12:51:44 -04:00
C. McEnroe
9bd001ad4f
Mention LibreTLS in install instructions
2020-08-04 14:38:23 -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
52a676155b
Fix --mandir rendering in README
...
Fl Fl renders correctly in text but leaves a space between the hyphens
in HTML output.
2020-08-03 18:15:18 -04:00
C. McEnroe
9bd10d768d
Add \banhammer macro
...
From the Textual extras command /banhammer.
2020-08-02 18:08:08 -04:00
C. McEnroe
bd8997ef09
Check return value of asprintf
...
On the awful operating system GNU, asprintf leaves the destination
pointer UNDEFINED on failure.
2020-08-01 22:18:58 -04:00