AmendHub

jcs

/

wallops

/

amendments

/

irc.c

Amendments on January 17, 2023


Amendments on January 11, 2023

*: Add tabbed view for multiple channels

jcs made amendment 46 about 1 year ago

irc: Check for input commands case-insensitively

I keep typing "/joiN #"
jcs made amendment 43 about 1 year ago

*: Large reorganization in preparation for multiple chat windows

Each channel belongs to a connection, and each channel belongs to
a chatter. Right now they're all the same chatter, but eventually
they'll be different windows or different TE buffers on the same
window.
The connection and channel are passed to chatter_printf so it can
eventually determine where to print the text.
jcs made amendment 42 about 1 year ago

Amendments on September 6, 2022

irc: Update titlebar after we change to nick_

jcs made amendment 37 about 1 year ago

irc: On 433 nick in use, try registering with nick_

jcs made amendment 34 about 1 year ago

*: Use xfree, malloc notes

jcs made amendment 33 about 1 year ago

Amendments on February 10, 2022

focusable: Let each dictate the minimum sleep time for WaitNextEvent

When a window is hiding in the background, we can sleep up to a whole
second
jcs made amendment 28 over 2 years ago

irc: Print dying gasps in irc_recv, catch nick list trailing space

An Unreal3.2.10.2 server returned a trailing space at the end of
nick lists when joining a channel, causing an infinite loop in
sorting.
jcs made amendment 27 over 2 years ago

irc: Support some more numerics seen in WHOIS output

jcs made amendment 26 over 2 years ago

irc: Copy msg to arg[0] if it's blank

Some servers like InspIRCd-3 send a JOIN like "JOIN :#channel" instead
of "JOIN #channel" (which seems to go against RFC2812, but whatever).
jcs made amendment 25 over 2 years ago

chatter+irc: Rewrite nick list handling

Use a linked list to sort the array of nicks to avoid having to
shuffle around struct members on every re-sort. This also lets us
process JOINs and PARTs/QUITs on an individual nick level to just
do one corresponding list add or remove and avoid re-sorting or
reloading the entire list.
This makes it possible to join channels with many hundreds of people
in them and keep running smoothly. The initial load still takes a
while, but it works.
jcs made amendment 24 over 2 years ago

Amendments on February 8, 2022

irc: Yet another protocol rewrite, add /whois command and parsing

Instead of trying to map protocol message parts to specific things
like dest/channel/msg, just map them all to arg[0]-arg[5] and let
each command-specific printer use the args it cares about.
jcs made amendment 21 over 2 years ago

irc: Fix PONG, print TCP errors rather than use warn()

jcs made amendment 16 over 2 years ago

Amendments on February 7, 2022

irc: Handle /me and CTCP VERSION, move vers resource handling to util

Also try to properly send a QUIT message when we cmd+q
jcs made amendment 14 over 2 years ago

irc: Support IRC server passwords for automatic NickServ identification

This was much harder than it needed to be because there is no
way to have password fields in a dialog box. We are now faking it by
intercepting keystrokes on such fields and manipulating a char array
behind the scenes while just passing • characters to the TextEdit
control.
jcs made amendment 13 over 2 years ago

Amendments on February 6, 2022

irc: Handle /nick command and handle others changing nicks

jcs made amendment 10 over 2 years ago

Amendments on February 4, 2022

chatter: More performant text display, hide on close

Properly handle multiple focusables and restack as needed
jcs made amendment 6 over 2 years ago

Amendments on February 2, 2022