summary refs log tree commit diff
Commit message (Collapse)AuthorAge
...
* Rework UI code for multi-channelJune McEnroe2018-08-11
| | | | | | | | | | | | | | | | | | | | | | Tags are now permanently assigned (and I'm betting on never needing more than 256 of them) and the UI maps tags to a linked list of views for easy reordering and removal. Currently, views can only be added. Views don't have a topic window until they need one. All UI code wants to be functional reactive. Beeping is temporarily removed until message priorities (status, message, ping) can be added to the UI. At that point spawning notify-send should also be possible. Priorities will also help with unnecessary markers, which will not appear for status messages. The tab system is now used to send QUIT and NICK messages to all the relevant tags. Verbose output now goes to its own tag, and sending to it sends raw IRC. IRC colors are now listed in chat.h and handler functions for numeric replies have real names. The color algorithm now uses a real hash function for hopefully better results. QUIT, PART and KICK messages are scanned for URLs.
* Add term.c for extra terminal featuresJune McEnroe2018-08-11
| | | | Look at the cute little state machine!
* Fix isSelf user checkingJune McEnroe2018-08-11
| | | | | | | Other users with the same username are not self. The fun effect of this was that I could tab-complete "june_" but not "june".
* Fix commented out error handlingJune McEnroe2018-08-11
| | | | | Oops. Had commented it out so I could attach a debugger without exiting on EINTR.
* Fix removing entries during tab completeJune McEnroe2018-08-11
| | | | | Since tabNext starts on match->next, if match gets removed, it should be set to match->prev so that tabNext will start in the same spot.
* Become multi-channelJune McEnroe2018-08-10
| | | | There's a lot of UI missing for it, but it technically works.
* Move process spawning onto the event loopJune McEnroe2018-08-10
| | | | | | Child processes weren't being reaped before, either. I wanted to have a function called readEmAndReap but the reaping should actually happen in a signal handler.
* Remove unnecessary va_endJune McEnroe2018-08-10
| | | | va_end must be called before the function returns, but errx is noreturn.
* Rename chan to joinJune McEnroe2018-08-10
| | | | In preparation for multi-channel?
* Add -u option for setting userJune McEnroe2018-08-09
|
* Color brackets around nicksJune McEnroe2018-08-09
| | | | Also switch self-brackets to () since [] can appear in nicks.
* Fix 432 handler paramsJune McEnroe2018-08-09
|
* Add M-b, M-f, M-DEL, M-d, C-wJune McEnroe2018-08-09
|
* Add PASS optionJune McEnroe2018-08-09
| | | | WEBIRC is now -W.
* Ignore trailing space on slash commandsJune McEnroe2018-08-09
|
* Replace shift with a great variadic functionJune McEnroe2018-08-09
| | | | | I am disappointed in the lack of compiler attributes for type-checking variadic functions.
* Only tabTouch nick if not selfJune McEnroe2018-08-09
|
* Add URL detection, listing and openingJune McEnroe2018-08-09
| | | | Might also add /copy, like /open.
* Add commands to tab completeJune McEnroe2018-08-08
|
* Use blank line as unread markerJune McEnroe2018-08-08
|
* Add Homebrew LibreSSL paths to MakefileJune McEnroe2018-08-08
|
* Distinguish self with square bracketsJune McEnroe2018-08-08
|
* Add markers as lines to the logJune McEnroe2018-08-08
|
* Factor out line editing to edit.cJune McEnroe2018-08-08
|
* Set log marker on FocusOut eventJune McEnroe2018-08-08
| | | | | All of this needs refactoring, probably separating the line editing out from the actual input handling.
* Color own messages 15June McEnroe2018-08-08
| | | | | My own settings have "white" slightly darker than the default color, so this helps to distinguish my own messages.
* Use BLACK LEFT-POINTING TRIANGLE for markerJune McEnroe2018-08-08
|
* Reset attrs after addIRCJune McEnroe2018-08-07
| | | | Otherwise the marker inherits whatever was left on.
* Add tab complete UIJune McEnroe2018-08-07
| | | | This definitely needs refactoring.
* Implement cycling tab completeJune McEnroe2018-08-07
| | | | Not properly hooked up to the UI yet.
* Mark log when scrolling upJune McEnroe2018-08-07
|
* Remove extraneous slash from unrecognized commandJune McEnroe2018-08-07
|
* Highlight and beep pingsJune McEnroe2018-08-07
|
* Factor out allocating conversion between wcs and mbsJune McEnroe2018-08-07
|
* Match commands case-insensitivelyJune McEnroe2018-08-07
| | | | | Also include the slash in their names so that they can be added to tab-complete later.
* Convert input to multibyte before handlingJune McEnroe2018-08-07
|
* Populate tab-complete listJune McEnroe2018-08-07
|
* Fix /me formatting side-effectsJune McEnroe2018-08-07
| | | | NEVER pass side-effects to a macro.
* Define ui.c BUF_LEN with enumJune McEnroe2018-08-07
|
* Hack clang into checking uiFmt format stringsJune McEnroe2018-08-07
|
* Handle PART and QUIT without messagesJune McEnroe2018-08-07
|
* Make safe filling the who bufferJune McEnroe2018-08-07
|
* Add reverse and reset IRC formatting codesJune McEnroe2018-08-07
|
* Rewrite line editing again, add formattingJune McEnroe2018-08-06
|
* Fix allocation size in vaswprintfJune McEnroe2018-08-06
| | | | | | This is so embarrassing. It only started crashing once it had strings that were long enough, and then it took me so long to notice this mistake. I was worried I was still doing va_list wrong somehow.
* Implement word wrappingJune McEnroe2018-08-06
|
* Use wchar_t strings for all of UIJune McEnroe2018-08-06
| | | | vaswprintf is a nightmare.
* Rename line editing functionsJune McEnroe2018-08-06
|
* Initialize all possible color pairsJune McEnroe2018-08-05
| | | | This is actually possible with use_default_colors!
* Refactor color initializationJune McEnroe2018-08-05
|