Commit Graph

42 Commits (3d9906b00fee2f7a8b69d0e6a1683e306e31b4e6)

Author SHA1 Message Date
Curtis McEnroe d7659376d1
Add basic log replay 2018-11-29 18:20:24 -05:00
Curtis McEnroe 139036dd5a
Handle no such nick error 2018-11-29 05:52:27 -05:00
Curtis McEnroe e4eb97e512
Add /whois 2018-11-29 05:40:26 -05:00
Curtis McEnroe 3e2a9c2056
Factor out uiPrompt to call on nick change 2018-09-14 23:37:09 -04:00
Curtis McEnroe 0d7854c0d4
Move color selection to format.c 2018-09-13 16:16:11 -04:00
Curtis McEnroe 4c4d91b449
Rewrite UI again
The persistent topic is gone and the status line is now at the top. The
status formatting still needs to be reworked. I also want to try showing
the nick in the input window so it really looks like your next message.
2018-09-13 01:03:47 -04:00
Curtis McEnroe 2c65f663bf
Don't render every PM as a ping 2018-09-11 14:45:39 -04:00
Curtis McEnroe 240f9ebf84
Use PascalCase for constants
Begone underscores.
2018-09-02 16:13:00 -04:00
Curtis McEnroe 9a63155b2d
Treat all direct messages as pings 2018-09-02 01:12:41 -04:00
Curtis McEnroe 359b08b335
Simplify invalid nick messages 2018-09-02 00:13:27 -04:00
Curtis McEnroe 20e5126fdc
Remove FIXME for tracking tags in WHO handling
I don't think it'll ever be a problem.
2018-08-20 19:30:57 -04:00
Curtis McEnroe b4ca3a5dfc
Don't clobber tab order on /who 2018-08-20 19:11:44 -04:00
Curtis McEnroe 431dd32cf1
Fix missing stdint.h include 2018-08-20 16:29:31 -04:00
Curtis McEnroe 9469db993c
Add logging
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-17 21:50:45 -04:00
Curtis McEnroe 38fc42f03d
Add UI "heat" for status/messages/pings
Bring back the beeps! Allow pings from notices. Also factor out
dequoting of part/quit messages.
2018-08-17 14:00:08 -04:00
Curtis McEnroe 7082820299
Detect pings in ACTIONs 2018-08-14 21:26:27 -04:00
Curtis McEnroe 398f752322
Keep hashing '\0' until color is not black
Actually uses the rest of the hash state this way.
2018-08-14 14:04:20 -04:00
Curtis McEnroe 1ca6974b64
Don't ping self 2018-08-13 19:54:26 -04:00
Curtis McEnroe 372b79b59e
Detect pings anywhere in message 2018-08-13 14:37:37 -04:00
Curtis McEnroe 2ae5b6b9ab
Add /query, /part and /close
Closing a channel before parting it is a bit weird, but if I send a PART
on /close, it would get reopened again to show the part message.
2018-08-13 13:49:03 -04:00
Curtis McEnroe a281f89592
Rework UI code for multi-channel
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-11 20:02:03 -04:00
Curtis McEnroe fec5e51d78
Fix isSelf user checking
Other users with the same username are not self.

The fun effect of this was that I could tab-complete "june_" but not
"june".
2018-08-11 12:50:56 -04:00
Curtis McEnroe 07c750d25c
Become multi-channel
There's a lot of UI missing for it, but it technically works.
2018-08-10 23:31:20 -04:00
Curtis McEnroe b740e937df
Remove unnecessary va_end
va_end must be called before the function returns, but errx is noreturn.
2018-08-10 12:45:37 -04:00
Curtis McEnroe 1a9ae050d6
Rename chan to join
In preparation for multi-channel?
2018-08-10 00:01:35 -04:00
Curtis McEnroe 6dd9eb71e1
Color brackets around nicks
Also switch self-brackets to () since [] can appear in nicks.
2018-08-09 21:37:11 -04:00
Curtis McEnroe c45e192608
Fix 432 handler params 2018-08-09 21:27:48 -04:00
Curtis McEnroe fc113c8ef9
Replace shift with a great variadic function
I am disappointed in the lack of compiler attributes for type-checking
variadic functions.
2018-08-09 17:37:14 -04:00
Curtis McEnroe 05fe4ece20
Only tabTouch nick if not self 2018-08-09 15:50:30 -04:00
Curtis McEnroe a64f1a4ea2
Add URL detection, listing and opening
Might also add /copy, like /open.
2018-08-09 00:24:49 -04:00
Curtis McEnroe 6f9b928e53
Distinguish self with square brackets 2018-08-08 19:22:49 -04:00
Curtis McEnroe c0ee457ab1
Color own messages 15
My own settings have "white" slightly darker than the default color, so
this helps to distinguish my own messages.
2018-08-08 00:42:27 -04:00
Curtis McEnroe 7d76246c3f
Highlight and beep pings 2018-08-07 17:51:23 -04:00
Curtis McEnroe 5d2b5cd51e
Populate tab-complete list 2018-08-07 14:58:32 -04:00
Curtis McEnroe 9ccb25a1a5
Fix /me formatting side-effects
NEVER pass side-effects to a macro.
2018-08-07 14:34:26 -04:00
Curtis McEnroe fa270d9287
Hack clang into checking uiFmt format strings 2018-08-07 14:11:19 -04:00
Curtis McEnroe 36d37bbf67
Handle PART and QUIT without messages 2018-08-07 01:17:22 -04:00
Curtis McEnroe f1b1ffe79f
Make safe filling the who buffer 2018-08-07 00:12:08 -04:00
Curtis McEnroe d6fb797b11
Use wchar_t strings for all of UI
vaswprintf is a nightmare.
2018-08-06 14:19:52 -04:00
Curtis McEnroe 7b5bc5aa41
Rename ui chat to log 2018-08-04 17:59:43 -04:00
Curtis McEnroe 35589a5624
Rename client to irc 2018-08-04 17:54:46 -04:00
Curtis McEnroe ccdeb0c556
Split source into several files
Can't believe I have to do this.
2018-08-04 13:35:29 -04:00