summary refs log tree commit diff
Commit message (Collapse)AuthorAge
* Split /exec lines by \r as well as \nJune McEnroe2020-11-24
| | | | | This fixes local rendering of /exec toilet --irc, which outputs \r\n line endings.
* Add topic diffing to notable features 1.3June McEnroe2020-11-11
|
* Use wmemcpy/wmemmoveJune McEnroe2020-11-08
|
* Remove static buffer from colorMentionsJune McEnroe2020-11-08
|
* Remove static buffer from capListJune McEnroe2020-11-08
|
* Highlight changed portion of topicJune McEnroe2020-11-08
| | | | "%.*ls" is useless.
* Avoid eating C-c while connectingJune McEnroe2020-10-12
| | | | | Split UI initialization into two steps either side of the call to connect, so that C-c works as interrupt while it's blocked.
* Clear wrapping point at alignment tabJune McEnroe2020-10-09
| | | | | This fixes odd wrapping when a nick contains a hyphen and there are no further wrapping points.
* Strip formatting from URLsJune McEnroe2020-10-09
| | | | | Notably this fixes opening URLs from litterbox queries where part of the URL is highlighted.
* Factor out styleStripJune McEnroe2020-10-09
|
* Double up /help for server helpJune McEnroe2020-10-02
| | | | | | 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.
* Use WHO for /opsJune McEnroe2020-09-30
| | | | Accumulate names in a buffer and show away status.
* Add /ops commandJune McEnroe2020-09-30
| | | | | | 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.
* Allow 2-param form of /whois, count comma-separated nicksJune McEnroe2020-09-18
| | | | | 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.
* Switch back to checking for server by nick with '.'June McEnroe2020-09-18
| | | | | | | | | | 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.
* Copy style from wrapping pointJune McEnroe2020-09-11
| | | | | | 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.
* Silence set-but-unused warning 1.2June McEnroe2020-09-09
| | | | getyx is so annoying this way.
* Include DEL in characters ncurses will print in ^A formJune McEnroe2020-09-08
|
* Add blank line to unread if there are already unreadJune McEnroe2020-09-07
| | | | | This fixes the inconsistent M-u behaviour when catgirl is restarting and reconnecting to pounce, for example.
* Call uiWrite to insert blank linesJune McEnroe2020-09-07
| | | | | It only used to use different code to avoid adding the blank line to the soft buffer.
* Let wrapped lines use the last columnJune McEnroe2020-09-07
|
* Handle non-alignment tabs in line wrappingJune McEnroe2020-09-06
|
* Add C-r, C-s for basic scrollback searchJune McEnroe2020-09-06
|
* Add M-n, M-p to jump to highlightsJune McEnroe2020-09-03
|
* Fix M-u behaviour difference before and after reflowJune McEnroe2020-09-03
|
* Recalculate unreadHard on reflowJune McEnroe2020-09-02
|
* Give blank lines timestampsJune McEnroe2020-09-02
| | | | Otherwise the zero timestamps totally break save data loading! Bad!
* Hide ignored messages at the soft -> hard buffer layerJune McEnroe2020-09-02
| | | | This restores normal scrolling behaviour.
* Don't call completeTouch for ignored messagesJune McEnroe2020-09-02
|
* Preserve style after alignmentJune McEnroe2020-09-02
| | | | This makes wrapping text with background colour look much better.
* Still add ignored lines to unreadHardJune McEnroe2020-09-02
| | | | | 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.
* Actually insert blank lines in the soft bufferJune McEnroe2020-09-02
| | | | So they can be preserved forever!
* Reimplement split scrollingJune McEnroe2020-09-02
|
* Fix inserting blank lines BEFORE the new messageJune McEnroe2020-09-02
|
* Only call windowUpdate when the shown window needs updatingJune McEnroe2020-09-02
|
* Don't consider the alignment tab a wrapping pointJune McEnroe2020-09-02
|
* Call wclear on resizeJune McEnroe2020-09-02
| | | | | Otherwise artefects can appear when resizing to smaller width with wide characters at the right edge of the window.
* Fix line wrapping in various waysJune McEnroe2020-09-02
| | | | | | 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...
* Render one main window from buffersJune McEnroe2020-09-02
| | | | | | | | 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.
* Implement buffer line wrappingJune McEnroe2020-09-01
| | | | Not yet rendered in the UI! Just done in parallel.
* Invert meaning of unreadHard/unreadSoft to match new buffer codeJune McEnroe2020-09-01
| | | | Not sure why I had named them this way. Hard means hard-wrapped.
* Factor buffer out of uiJune McEnroe2020-09-01
| | | | In preparation for doing line wrapping outside of ncurses.
* Move styleParse out of uiJune McEnroe2020-09-01
|
* Use a static buffer for base directory pathsJune McEnroe2020-08-21
|
* Document how cert/priv are searched forJune McEnroe2020-08-20
| | | | This has always been how it works, but it was previously undocumented.
* Use configPath to load TLS cert/privJune McEnroe2020-08-20
|
* Refactor base dir functions to iterate over pathsJune McEnroe2020-08-20
|
* Match mentions case-sensitivelyJune McEnroe2020-08-18
| | | | | | 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.
* Preserve colon from previous tab-completeJune McEnroe2020-08-18
| | | | | This fixes the case when pinging multiple nicks and one of them needs to be cycled through.
* Set origin fields to "*" if missingJune McEnroe2020-08-16
| | | | | | | | | | | | | | | | 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.