June McEnroe
da1b943fcc
Share a cut buffer between all edit buffers
2022-02-20 16:20:33 -05:00
June McEnroe
e39bba1a8a
Move mbs out of struct Edit, use a global buffer
...
This saves 4K in the edit buffers, not to mention all the heap
allocations for the separate mbs buffers!
There might be a way to be more clever about capacities, but I don't
think it's worth it.
2022-02-20 15:42:24 -05:00
June McEnroe
cca9688cca
Clear edit buffer before running command
...
Otherwise a command that switches windows will update the status
line while the edit buffer still has input "pending", showing an
indicator.
2022-02-20 14:58:33 -05:00
June McEnroe
a281bdc5e1
Show indicator in status when window has pending input
2022-02-20 14:49:17 -05:00
June McEnroe
012fd67539
Use separate edit buffers for each ID
2022-02-20 14:37:51 -05:00
June McEnroe
5c4ecb5a0f
Reimplement tab complete
2022-02-19 22:02:49 -05:00
June McEnroe
da8deff767
Handle errors from editFn, etc.
2022-02-19 20:44:36 -05:00
June McEnroe
143fa1b509
Reimplement text macros
2022-02-19 20:38:12 -05:00
June McEnroe
073cebec7a
Factor out input handling to input.c
2022-02-19 20:20:19 -05:00
C. McEnroe
15ff2a470e
Remove legacy code
2020-02-11 02:45:39 -05:00
Curtis McEnroe
c5718dd82f
Add restricted mode
2019-09-16 16:57:50 -04:00
Curtis McEnroe
3d1f7d8065
Add /list
2019-07-02 22:12:07 -04:00
Curtis McEnroe
fe38982b43
Clean up input parameter handling
2019-07-02 19:34:19 -04:00
Curtis McEnroe
fdbc6f2fda
Split /raw and /quote
...
/quote is common in other IRC clients.
2019-07-02 18:57:57 -04:00
Curtis McEnroe
426be32b1d
Add optional key to /join
2019-07-02 18:33:45 -04:00
Curtis McEnroe
d8cffb8ae7
Add /move command
2019-02-27 00:17:59 -05:00
Curtis McEnroe
4cda410b57
Move nick and tag coloring to color.c
2019-02-25 23:10:40 -05:00
Curtis McEnroe
6b97c59756
Add color to tags
2019-02-25 16:02:41 -05:00
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