summary refs log tree commit diff
path: root/chat.c
AgeCommit message (Collapse)Author
2018-09-02Use PascalCase for constantsCurtis McEnroe
Begone underscores.
2018-08-17Add loggingCurtis McEnroe
The reason logFmt takes a timestamp as a parameter is to support IRCv3 server-time in the future to accurately log the znc buffer. Hopefully.
2018-08-17Add UI "heat" for status/messages/pingsCurtis McEnroe
Bring back the beeps! Allow pings from notices. Also factor out dequoting of part/quit messages.
2018-08-11Rework UI code for multi-channelCurtis McEnroe
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.
2018-08-11Fix commented out error handlingCurtis McEnroe
Oops. Had commented it out so I could attach a debugger without exiting on EINTR.
2018-08-10Become multi-channelCurtis McEnroe
There's a lot of UI missing for it, but it technically works.
2018-08-10Move process spawning onto the event loopCurtis McEnroe
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.
2018-08-10Rename chan to joinCurtis McEnroe
In preparation for multi-channel?
2018-08-09Add -u option for setting userCurtis McEnroe
2018-08-09Add PASS optionCurtis McEnroe
WEBIRC is now -W.
2018-08-09Add URL detection, listing and openingCurtis McEnroe
Might also add /copy, like /open.
2018-08-08Add commands to tab completeCurtis McEnroe
2018-08-07Convert input to multibyte before handlingCurtis McEnroe
2018-08-06Use wchar_t strings for all of UICurtis McEnroe
vaswprintf is a nightmare.
2018-08-04Show source link on exitCurtis McEnroe
2018-08-04Rename ui chat to logCurtis McEnroe
2018-08-04Rename client to ircCurtis McEnroe
2018-08-04Handle terminal resizingCurtis McEnroe
2018-08-04Do not free const string portCurtis McEnroe
2018-08-04Split source into several filesCurtis McEnroe
Can't believe I have to do this.
2018-08-04Exit on zero readCurtis McEnroe
2018-08-04Handle nick errorsCurtis McEnroe
2018-08-04Handle /nick and /quitCurtis McEnroe
/quit doesn't actually... quit, right now. The only way to know that the connection is closed is tls_read returning zero, it seems.
2018-08-04Track own nickCurtis McEnroe
2018-08-04Word all status messages in presentCurtis McEnroe
2018-08-03Handle inputCurtis McEnroe
This turned out a lot better than expected. Still a long way to go in terms of line-editing, but at least backspace works!
2018-08-03Track own usernameCurtis McEnroe
So that we can colour our own messages correctly.
2018-08-03Use a wide pad for the topicCurtis McEnroe
2018-08-03Ignore NOTICEs not sent to the channelCurtis McEnroe
2018-08-03Handle KICK and NICKCurtis McEnroe
2018-08-03Continue on EINTR from pollCurtis McEnroe
Resizing the terminal causes it.
2018-08-03Handle ACTIONsCurtis McEnroe
2018-08-03Use more octal char literalsCurtis McEnroe
I might be coming around to octal.
2018-08-03Send a WHO in response to NAMES to get usernamesCurtis McEnroe
Other than this slight hack, I think coloring by username rather than nick is a much better idea.
2018-08-03Colorize nicks and channelsCurtis McEnroe
2018-08-03Add support for mIRC colorsCurtis McEnroe
2018-08-03Handle bold, italic, underlineCurtis McEnroe
2018-08-03Add prift function for "prefix shift"Curtis McEnroe
Forgive me.
2018-08-02Use libtls "compat" ciphersCurtis McEnroe
irc.mozilla.org, using GnuTLS, doesn't support *any* of the "secure" ciphers!
2018-08-02Add UI and handle some kinds of server messagesCurtis McEnroe
Seems like handling input is going to be the worst thing ever.
2018-08-02Start IRC clientCurtis McEnroe
It dumps lines from the server onto the curses window.