Commit Graph

130 Commits (76670b2fb145307c93f39ff859cfc7cb20c21ce9)

Author SHA1 Message Date
C. McEnroe c3c40d738b Accumulate mode changes into a buffer for one message 2020-02-23 22:44:19 -05:00
C. McEnroe 9609723dc6 Handle ERR_CHANOPRIVSNEEDED 2020-02-20 05:04:58 -05:00
C. McEnroe 50a6d34a55 Handle MODE changing channel list modes 2020-02-20 04:53:06 -05:00
C. McEnroe c2c8595012 Handle MODE setting channel prefix modes 2020-02-20 04:18:25 -05:00
C. McEnroe a3b6d5d9a7 Change ban list formatting 2020-02-20 03:44:57 -05:00
C. McEnroe b3c5458fc9 Rearrange some handlers 2020-02-20 03:18:48 -05:00
C. McEnroe 42ad42887c Handle RPL_INVITING when no invite-notify 2020-02-20 02:32:36 -05:00
C. McEnroe 5c79b16a51 Handle ERR_BANLISTFULL 2020-02-20 02:13:23 -05:00
C. McEnroe 1b01045bf0 Add handlers for user-in-channel errors 2020-02-20 01:52:58 -05:00
C. McEnroe f494fe6edb Add generic error reply handler
This should have been in way earlier...
2020-02-20 01:38:31 -05:00
C. McEnroe 56de4668ac Add /ban, /unban and handle ban list replies 2020-02-19 21:47:16 -05:00
C. McEnroe 2a33ee68dd Format WHOIS signon date with %F %T 2020-02-19 21:29:51 -05:00
C. McEnroe ba524ed804 Replace a lot of snprintf with a catf implementation 2020-02-16 19:12:19 -05:00
C. McEnroe 3885dd5231 Add 379 to WHOIS responses 2020-02-16 18:42:38 -05:00
C. McEnroe edd8855418 Track EXCEPTS and INVEX modes 2020-02-16 18:31:50 -05:00
C. McEnroe f84ab67311 Apply colorMentions to actions
The first-two-words branch works well for "/me verbs nick".
2020-02-16 05:22:28 -05:00
C. McEnroe 700b5d5870 Replace small integers in size_t with uint 2020-02-15 22:19:55 -05:00
C. McEnroe 83df94b359 Still add nick without prefixes to complete 2020-02-15 22:19:05 -05:00
C. McEnroe 9b1ab69908 Track PREFIX modes and CHANMODES 2020-02-15 05:29:54 -05:00
C. McEnroe cd341076c0 Show prefixes in NAMES and WHOIS replies 2020-02-15 05:04:43 -05:00
C. McEnroe 42d106260b Separate network info from self 2020-02-15 04:54:53 -05:00
C. McEnroe 39a343980b Add /invite 2020-02-14 21:36:58 -05:00
C. McEnroe 8aa6dd86f6 Add /away 2020-02-14 21:10:40 -05:00
C. McEnroe be08880fac Only exit on errorneous nick during registration 2020-02-12 19:30:07 -05:00
C. McEnroe 05579773c8 Add 378 to list of WHOIS responses
It's the one (from freenode anyway) that tells you where you're
connecting from.
2020-02-12 19:14:49 -05:00
C. McEnroe 489df70c37 Add /list 2020-02-12 02:39:23 -05:00
C. McEnroe 3a325d3914 Handle RPL_AWAY 2020-02-12 00:17:28 -05:00
C. McEnroe 7c171b8aff Rename query ID on nick change 2020-02-11 18:23:04 -05:00
C. McEnroe 6a5ebb0bab Don't insert color codes for non-mentions 2020-02-11 18:15:25 -05:00
C. McEnroe 4d532ec738 Take first two words in colorMentions
This lets phrases like "hi june" get colored, but still doesn't get
carried away.
2020-02-11 18:08:05 -05:00
C. McEnroe cc80fae758 Set self.nick to * initially
Allows removing a bunch of checks that self.nick is set, and it's what
the server usually calls you before registration.

Never highlight notices as mentions.
2020-02-11 17:52:55 -05:00
C. McEnroe 83a8952cf5 Move base64 out of chat.h 2020-02-11 17:40:08 -05:00
C. McEnroe ac4876718f Fix whois idle unit calculation
Rookie mistake.
2020-02-11 04:00:25 -05:00
C. McEnroe 36e0bbc4cd Split on <> in colorMentions
This allows it to color the nick in the common case of pasting "<nick>
something they said" into the chat. Technically it should color the
brackets too but that would be too much work.
2020-02-10 20:58:14 -05:00
C. McEnroe 80a79467ef Only automatically switch to expected joins 2020-02-10 20:24:07 -05:00
C. McEnroe 8e55c049b5 Avoid coloring mentions if there are control codes
This was breaking leading color codes.
2020-02-10 03:58:25 -05:00
C. McEnroe fabb89077d Update prompt when own nick changes 2020-02-10 01:29:30 -05:00
C. McEnroe 3436cd1068 Add /whois 2020-02-09 16:45:49 -05:00
C. McEnroe 82cf445858 Add self.nick to completion in Network, not None 2020-02-09 02:16:17 -05:00
C. McEnroe a212a7ae2c Show realname on JOIN if it is different from nick 2020-02-09 00:55:41 -05:00
C. McEnroe b30b93f672 Use fmemopen to build colored mentions string 2020-02-08 23:29:32 -05:00
C. McEnroe ec73174c4c Use unexpected NAMES replies to populate complete 2020-02-08 22:55:11 -05:00
C. McEnroe 9cbec9ca7e Color mentions
Sort of like Textual does, but only in the first part of the messaage,
either before a colon or before a space. Hopefully this makes it less
costly than it would be, and prevents false positives on people with
common nouns for nicks.
2020-02-08 22:51:13 -05:00
C. McEnroe f502260dd0 Scan messages for URLs 2020-02-08 18:29:01 -05:00
C. McEnroe b6bf6d62b0 Only show expected topic/names replies 2020-02-08 03:15:17 -05:00
C. McEnroe b5707af4b8 Handle KICK
See I knew the color cache in complete would be useful in at least one
place!
2020-02-08 00:58:17 -05:00
C. McEnroe f14175ebed Handle QUIT 2020-02-08 00:36:23 -05:00
C. McEnroe 7ebfeea330 Handle NAMES reply 2020-02-08 00:25:09 -05:00
C. McEnroe 58e1d5b4e2 Handle NICK 2020-02-08 00:01:59 -05:00
C. McEnroe 8b7cc1a0ed Clear completion for ID on self-part 2020-02-07 23:44:03 -05:00
C. McEnroe d314523b90 Update completion on join, part, privmsg 2020-02-07 23:33:23 -05:00
C. McEnroe 87e42cc627 Color notices LightGray by default 2020-02-06 22:59:49 -05:00
C. McEnroe 34514cf2ee Render actions in italic
Also render italic as normal if it's unsupported, as that is what would
happen anyway if curses has A_ITALIC but the terminal has no sitm. That
format string is kinda bad.
2020-02-06 18:48:49 -05:00
C. McEnroe e1f10958c9 Never consider notices hot 2020-02-06 04:37:28 -05:00
C. McEnroe 32ec697092 Handle mentions 2020-02-06 04:18:15 -05:00
C. McEnroe 30b3780e57 Route own query messages correctly 2020-02-06 04:01:11 -05:00
C. McEnroe 1e6e533538 Send CAP END if CAP LS doesn't list anything good 2020-02-06 03:44:49 -05:00
C. McEnroe 5e98d83f83 Handle TOPIC and replies 2020-02-06 02:07:39 -05:00
C. McEnroe 5fb492f8cd Handle PART 2020-02-06 01:16:35 -05:00
C. McEnroe db499dc5f5 Send self.join without colon
If someone is weird enough to use channel keys, they can -j '#foo key'.
2020-02-06 01:03:21 -05:00
C. McEnroe 3085779d86 Handle ERROR 2020-02-05 23:27:43 -05:00
C. McEnroe 7414a8a11c Save own username for message echoing 2020-02-05 00:40:24 -05:00
C. McEnroe 37ec1e8232 Align MOTD after - 2020-02-05 00:24:54 -05:00
C. McEnroe de4c9df074 Align join messages after nick 2020-02-04 20:40:49 -05:00
C. McEnroe ea93c9a6d9 Set self.color 2020-02-04 20:27:18 -05:00
C. McEnroe d57df09511 Align word wrapping with tab character
Also fixes handling whitespace directly after control codes.
2020-02-04 19:50:23 -05:00
C. McEnroe 26e9dd9adf Use time_t rather than struct tm 2020-02-03 18:41:52 -05:00
C. McEnroe 2f9a9c663a Remove services TODO
Two goals:

 1. Messages should always be routed to the same place.
 2. You should be able to see your messages to *Serv and its responses
    together.
2020-02-02 17:50:28 -05:00
C. McEnroe aec28a9327 Check queries against chanTypes 2020-02-02 17:45:19 -05:00
C. McEnroe 0d6a60cc66 Save NETWORK, CHANTYPES, PREFIX from ISUPPORT 2020-02-02 17:37:36 -05:00
C. McEnroe b535f0abdd Handle notices and actions 2020-02-02 17:26:20 -05:00
C. McEnroe dce7891331 Add extremely basid handlePrivmsg 2020-02-02 03:43:18 -05:00
C. McEnroe 052cd2ed26 Remove style string macros 2020-02-02 03:34:05 -05:00
C. McEnroe 8bb9ea7b7f Add idColors 2020-02-02 03:27:50 -05:00
C. McEnroe ec83332e15 Implement window switching and status line 2020-02-02 03:13:50 -05:00
C. McEnroe 14066b79d4 Handle nickname errors 2020-02-02 02:30:35 -05:00
C. McEnroe 8ef0af34ef Parse time tag 2020-02-02 01:58:03 -05:00
C. McEnroe e5363bcae0 Implement the beginnings of UI
It takes so much code to do anything in curses...
2020-02-01 19:37:55 -05:00
C. McEnroe 856d40d121 Fix CapNames array indices 2020-02-01 02:19:55 -05:00
C. McEnroe 8431602363 Blindly implement login flow 2020-02-01 01:18:01 -05:00