Commit Graph

710 Commits (0968a8ac7c5342978fced88af6a897d9b5cdc6ab)

Author SHA1 Message Date
Curtis McEnroe a6ede6f91f
Factor out allocating conversion between wcs and mbs 2018-08-07 16:24:14 -04:00
Curtis McEnroe 2fe8b4e614
Match commands case-insensitively
Also include the slash in their names so that they can be added to
tab-complete later.
2018-08-07 15:59:27 -04:00
Curtis McEnroe fe21b1410f
Convert input to multibyte before handling 2018-08-07 15:46:04 -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 0b429a7ccc
Define ui.c BUF_LEN with enum 2018-08-07 14:14:07 -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 a26a6fee8d
Add reverse and reset IRC formatting codes 2018-08-07 00:09:50 -04:00
Curtis McEnroe d71d040995
Rewrite line editing again, add formatting 2018-08-06 22:14:59 -04:00
Curtis McEnroe 1c2b038396
Fix allocation size in vaswprintf
This is so embarrassing. It only started crashing once it had strings
that were long enough, and then it took me so long to notice this
mistake. I was worried I was still doing va_list wrong somehow.
2018-08-06 22:08:57 -04:00
Curtis McEnroe 3f3fa34d8a
Implement word wrapping 2018-08-06 15:12:13 -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 ea4c70dae5
Rename line editing functions 2018-08-06 11:22:45 -04:00
Curtis McEnroe 5bb96a79e7
Initialize all possible color pairs
This is actually possible with use_default_colors!
2018-08-05 18:34:35 -04:00
Curtis McEnroe dbed1929dc
Refactor color initialization 2018-08-05 15:00:38 -04:00
Curtis McEnroe c1283ed18a
Add ^L redraw 2018-08-05 13:42:37 -04:00
Curtis McEnroe 7beb4c9912
Use 16 colors if available
Fall back to using bold if there are only 8 colors. This also allowed
bright background colors in 16-color terminals.

I must port this system to torus. I'll be able to remove the awful
termcap patch hack.
2018-08-05 13:28:49 -04:00
Curtis McEnroe 7e02eddcf4
Limit parsed colors to number of mIRC colors
Oh boy that's embarrassing.
2018-08-05 11:00:01 -04:00
Curtis McEnroe 6df61b5dda
Show source link on exit 2018-08-04 21:23:28 -04:00
Curtis McEnroe 8fdf2c402d
Implement line editing, scrolling
Don't really have a way to implement the M-* keys, and currently missing
C-w.
2018-08-04 20:54:50 -04:00
Curtis McEnroe ababcbb080
Handle /topic 2018-08-04 18:43:04 -04:00
Curtis McEnroe fbf78ef22b
Add README 2018-08-04 18:00:54 -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 b163492552
Fix chat draw boundaries 2018-08-04 17:08:15 -04:00
Curtis McEnroe aca376bc89
Factor out mIRC color parsing 2018-08-04 16:36:25 -04:00
Curtis McEnroe ea23dcec3b
Scroll the input pad 2018-08-04 16:17:20 -04:00
Curtis McEnroe f8e5648a9a
Copy /usr/share/locale into chroot
Otherwise only ASCII can be entered.
2018-08-04 15:30:27 -04:00
Curtis McEnroe 39507f0f8f
Handle terminal resizing 2018-08-04 15:04:48 -04:00
Curtis McEnroe 6e4f98d6eb
Handle /names and /who 2018-08-04 14:33:57 -04:00
Curtis McEnroe 96888b6c32
Add libedit to chroot
Needed by sh.
2018-08-04 14:17:18 -04:00
Curtis McEnroe 95b46b8559
Define A_ITALIC if not defined
System ncurses on macOS doesn't define it. At least not in El Capitan.
2018-08-04 13:58:44 -04:00
Curtis McEnroe 5217f876b0
Do not free const string port 2018-08-04 13:43:36 -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
Curtis McEnroe c6cd59f5c8
Exit on zero read 2018-08-04 01:38:43 -04:00
Curtis McEnroe fc5bf09c46
Handle nick errors 2018-08-04 01:37:07 -04:00
Curtis McEnroe 7baaff0777
Handle /nick and /quit
/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-04 01:13:06 -04:00
Curtis McEnroe fe938fba53
Track own nick 2018-08-04 01:12:26 -04:00
Curtis McEnroe 5522529e83
Word all status messages in present 2018-08-04 00:09:39 -04:00
Curtis McEnroe 269662d9ca
Handle input
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-03 23:54:28 -04:00
Curtis McEnroe 9f17adce80
Track own username
So that we can colour our own messages correctly.
2018-08-03 23:00:53 -04:00
Curtis McEnroe 1daf23d8a5
Use a wide pad for the topic 2018-08-03 19:48:15 -04:00
Curtis McEnroe 18dcb256ac
Ignore NOTICEs not sent to the channel 2018-08-03 19:34:28 -04:00
Curtis McEnroe 0e99c48912
Handle KICK and NICK 2018-08-03 19:34:19 -04:00
Curtis McEnroe a2ea9a9035
Continue on EINTR from poll
Resizing the terminal causes it.
2018-08-03 19:22:44 -04:00
Curtis McEnroe 674e527b33
Handle ACTIONs 2018-08-03 19:17:29 -04:00
Curtis McEnroe 6ccaf872fc
Use more octal char literals
I might be coming around to octal.
2018-08-03 19:16:46 -04:00
Curtis McEnroe c609684d2b
Send a WHO in response to NAMES to get usernames
Other than this slight hack, I think coloring by username rather than
nick is a much better idea.
2018-08-03 18:58:19 -04:00