Commit Graph

47 Commits (238f74efac1348d516516537f8f0d95fbed655ff)

Author SHA1 Message Date
Curtis McEnroe 35705c9eeb
Use first word of params in input commands
Prevents anything weird from happening when tab-completing, which
inserts a space.
2019-02-23 12:44:20 -05:00
Curtis McEnroe c06a457461
Add C-n and C-p key bindings to switch windows 2019-02-23 12:24:39 -05:00
Curtis McEnroe 8bdd1578c7
Add /znc command
Only because ZNC tells you to use it and expects it to work.
2019-02-22 16:07:32 -05:00
Curtis McEnroe 2c07d50415
Reorganize input.c 2019-02-22 15:49:55 -05:00
Curtis McEnroe e20c64d5d7
Reorganize UI code for the umpteenth time
It's actually in a good state now, I think.
2019-02-22 14:11:50 -05:00
Curtis McEnroe f3db938ded
Replace "view" with "window"
I think originally I didn't want to use the same word as curses WINDOW
but it's really much clearer for the user if they're just called
windows. UI code probably needs yet another rewrite though. Still feels
messy.
2019-02-21 23:17:40 -05:00
Curtis McEnroe e8063c35ec
Typedef function types, not pointers 2018-12-30 01:53:30 -05:00
Curtis McEnroe e84c36a0bd
Factor out ircQuit 2018-12-14 16:43:49 -05:00
Curtis McEnroe 9d7e0726c2
Add /raw command 2018-12-05 15:04:34 -05:00
Curtis McEnroe 0d165fadfa
Send input errors to the current tag 2018-12-05 14:53:16 -05:00
Curtis McEnroe 2797ac8abf
Rename verbose to raw
And change the format of the sticky tag names again.
2018-12-05 14:46:34 -05:00
Curtis McEnroe 638be4e775
Show error if disconnected unintentionally 2018-12-04 15:56:10 -05:00
Curtis McEnroe e01b03c963
Revert half-working reconnecting stuff 2018-12-04 14:58:14 -05:00
Curtis McEnroe 5c17393d2b
Crudely handle reconnecting after suspend 2018-12-01 22:05:37 -05:00
Curtis McEnroe d7659376d1
Add basic log replay 2018-11-29 18:20:24 -05:00
Curtis McEnroe e4eb97e512
Add /whois 2018-11-29 05:40:26 -05:00
Curtis McEnroe 85ea911b79
Rename project catgirl
This simplifies things.
2018-11-27 19:13:27 -05:00
Curtis McEnroe 36ec6cf258
Use const char *argv[] signatures
C is really weird about this stuff, but this makes more sense to me.
2018-10-28 02:14:22 -04:00
Curtis McEnroe ede343431f
Never send PRIVMSG to TagStatus or TagVerbose 2018-09-13 22:10:14 -04:00
Curtis McEnroe 3d9f808a60
Add /help equivalent to /man 2018-09-11 16:10:49 -04:00
Curtis McEnroe 068cff107e
Add urlOpenMatch 2018-09-11 14:36:30 -04:00
Curtis McEnroe 86e80edfcd
Add /man command 2018-09-10 19:18:26 -04:00
Curtis McEnroe 240f9ebf84
Use PascalCase for constants
Begone underscores.
2018-09-02 16:13:00 -04:00
Curtis McEnroe e3a344854f
Accept unique prefixes of commands 2018-08-18 20:17:08 -04:00
Curtis McEnroe c1e0128803
Fix /query error handling
Evidence this should be factored somehow else so the extra check is
unnecessary.
2018-08-18 20:14:05 -04:00
Curtis McEnroe e29f67dde5
Alias /n to /view n where n is a number 2018-08-18 18:31:51 -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 a38738c938
Don't treat input as command if word contains extra slash 2018-08-16 22:19:23 -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 1232ce451d
Factor out input param and add tagFind
So that /view can't just invent tags.
2018-08-12 23:55:12 -04:00
Curtis McEnroe 19464369c3
Fix /open ranges by passing all URLs to open(1)
This is going to be incompatible with xdg-open since it takes only one
URL at a time. Write a wrapper script.
2018-08-12 23:44:58 -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 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 1a9ae050d6
Rename chan to join
In preparation for multi-channel?
2018-08-10 00:01:35 -04:00
Curtis McEnroe dbdf13b51a
Ignore trailing space on slash commands 2018-08-09 17:49:31 -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 c024147504
Add commands to tab complete 2018-08-08 21:48:30 -04:00
Curtis McEnroe 41e7105fec
Remove extraneous slash from unrecognized command 2018-08-07 22:19:00 -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 fa270d9287
Hack clang into checking uiFmt format strings 2018-08-07 14:11:19 -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 ababcbb080
Handle /topic 2018-08-04 18:43:04 -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 6e4f98d6eb
Handle /names and /who 2018-08-04 14:33:57 -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