summary refs log tree commit diff
path: root/chat.c (follow)
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.
* Fix commented out error handlingJune McEnroe2018-08-11
| | | | | Oops. Had commented it out so I could attach a debugger without exiting on EINTR.
* 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.
* Rename chan to joinJune McEnroe2018-08-10
| | | | In preparation for multi-channel?
* Add -u option for setting userJune McEnroe2018-08-09
|
* Add PASS optionJune McEnroe2018-08-09
| | | | WEBIRC is now -W.
* Add URL detection, listing and openingJune McEnroe2018-08-09
| | | | Might also add /copy, like /open.
* Add commands to tab completeJune McEnroe2018-08-08
|
* Convert input to multibyte before handlingJune McEnroe2018-08-07
|
* Use wchar_t strings for all of UIJune McEnroe2018-08-06
| | | | vaswprintf is a nightmare.
* Show source link on exitJune McEnroe2018-08-04
|
* Rename ui chat to logJune McEnroe2018-08-04
|
* Rename client to ircJune McEnroe2018-08-04
|
* Handle terminal resizingJune McEnroe2018-08-04
|
* Do not free const string portJune McEnroe2018-08-04
|
* Split source into several filesJune McEnroe2018-08-04
| | | | Can't believe I have to do this.
* Exit on zero readJune McEnroe2018-08-04
|
* Handle nick errorsJune McEnroe2018-08-04
|
* Handle /nick and /quitJune McEnroe2018-08-04
| | | | | /quit doesn't actually... quit, right now. The only way to know that the connection is closed is tls_read returning zero, it seems.
* Track own nickJune McEnroe2018-08-04
|
* Word all status messages in presentJune McEnroe2018-08-04
|
* Handle inputJune McEnroe2018-08-03
| | | | | This turned out a lot better than expected. Still a long way to go in terms of line-editing, but at least backspace works!
* Track own usernameJune McEnroe2018-08-03
| | | | So that we can colour our own messages correctly.
* Use a wide pad for the topicJune McEnroe2018-08-03
|
* Ignore NOTICEs not sent to the channelJune McEnroe2018-08-03
|
* Handle KICK and NICKJune McEnroe2018-08-03
|
* Continue on EINTR from pollJune McEnroe2018-08-03
| | | | Resizing the terminal causes it.
* Handle ACTIONsJune McEnroe2018-08-03
|
* Use more octal char literalsJune McEnroe2018-08-03
| | | | I might be coming around to octal.
* Send a WHO in response to NAMES to get usernamesJune McEnroe2018-08-03
| | | | | Other than this slight hack, I think coloring by username rather than nick is a much better idea.
* Colorize nicks and channelsJune McEnroe2018-08-03
|
* Add support for mIRC colorsJune McEnroe2018-08-03
|
* Handle bold, italic, underlineJune McEnroe2018-08-03
|
* Add prift function for "prefix shift"June McEnroe2018-08-03
| | | | Forgive me.
* Use libtls "compat" ciphersJune McEnroe2018-08-02
| | | | | irc.mozilla.org, using GnuTLS, doesn't support *any* of the "secure" ciphers!
* Add UI and handle some kinds of server messagesJune McEnroe2018-08-02
| | | | Seems like handling input is going to be the worst thing ever.
* Start IRC clientJune McEnroe2018-08-02
It dumps lines from the server onto the curses window.