Commit Graph

376 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 2ef7323f26 Fix completion_add_word() 2015-05-10 00:22:49 +02:00
Přemysl Eric Janouch e859693bf2 degesch: review todo items 2015-05-10 00:09:05 +02:00
Přemysl Eric Janouch d05b610636 degesch: remove people from channels when leaving 2015-05-09 23:50:44 +02:00
Přemysl Eric Janouch c52f353894 degesch: implement /disconnect
One bug remaining to make it work.
2015-05-09 23:30:04 +02:00
Přemysl Eric Janouch e3b14e7d36 degesch: fix irc_is_connected()
We've added a new state.
2015-05-09 23:15:24 +02:00
Přemysl Eric Janouch 0df9892391 degesch: /connect restarts if already connecting 2015-05-09 23:14:07 +02:00
Přemysl Eric Janouch 5b9e263ca7 degesch: improve /help display 2015-05-09 23:08:30 +02:00
Přemysl Eric Janouch 789db85915 degesch: add command placeholders 2015-05-09 23:07:48 +02:00
Přemysl Eric Janouch ad4ebc2101 degesch: fix crash when idle 2015-05-09 23:06:19 +02:00
Přemysl Eric Janouch 2eda3110b3 degesch: asynchronous connecting etc.
I'm sorry, couldn't keep the diff small.

All the ZyklonB heritage code is shit anyway.
2015-05-09 22:14:02 +02:00
Přemysl Eric Janouch 19b2eda70e degesch: more shuffling 2015-05-09 06:11:36 +02:00
Přemysl Eric Janouch 699636d9a2 degesch: shuffle some code 2015-05-09 06:00:40 +02:00
Přemysl Eric Janouch 29db258102 degesch: don't export schemas (make them static) 2015-05-08 23:27:21 +02:00
Přemysl Eric Janouch 9a02c90e3e degesch: add server::state, rename stuff
This is in preparation of asynchronous connects.
2015-05-08 17:39:26 +02:00
Přemysl Eric Janouch 6414a73d62 degesch: factor out jump_to_buffer() 2015-05-08 07:46:32 +02:00
Přemysl Eric Janouch 0b1e4cc41d degesch: better comment 2015-05-08 06:35:45 +02:00
Přemysl Eric Janouch 0bdf76edc5 degesch: clean up key binding initialization 2015-05-08 06:23:38 +02:00
Přemysl Eric Janouch cc505090d4 degesch: customize C-l behaviour
Reprint the backlog.
2015-05-08 05:03:36 +02:00
Přemysl Eric Janouch bdbc4b33f0 degesch: prevent segfault on exit with libedit 2015-05-08 04:31:14 +02:00
Přemysl Eric Janouch 7636ebb149 degesch: add a fancy logo
It's all about the looks, man.
2015-05-07 22:55:11 +02:00
Přemysl Eric Janouch 30c58eede9 degesch: bind F5/F6 to previous/next buffer 2015-05-07 19:48:10 +02:00
Přemysl Eric Janouch 2c95c406f4 degesch: colour the user@host part 2015-05-07 19:39:02 +02:00
Přemysl Eric Janouch a15a48ac25 degesch: a bit of cleanup 2015-05-07 18:39:43 +02:00
Přemysl Eric Janouch 5271bfb1ee degesch: fix utf8_common-prefix() 2015-05-07 18:27:02 +02:00
Přemysl Eric Janouch 772e0d0870 Bump liberty 2015-05-07 08:36:22 +02:00
Přemysl Eric Janouch ae91f9047d degesch: fix more libedit weirdness 2015-05-07 07:52:12 +02:00
Přemysl Eric Janouch 715def6555 degesch: fix option completion 2015-05-07 07:47:58 +02:00
Přemysl Eric Janouch e3f1bcecae degesch: further libedit cleanup 2015-05-07 07:40:58 +02:00
Přemysl Eric Janouch 85baf5ecec degesch: little libedit details 2015-05-07 07:23:11 +02:00
Přemysl Eric Janouch 1d7903ae03 degesch: implement some autocompletion 2015-05-07 06:37:50 +02:00
Přemysl Eric Janouch 4ecf8d90da degesch: halfplement word completion
This was a bit painful.
2015-05-07 05:19:13 +02:00
Přemysl Eric Janouch 4f5d171799 degesch: add constant for word breaking characters 2015-05-06 22:20:02 +02:00
Přemysl Eric Janouch 894c45bef4 degesch: fix readline initialization 2015-05-06 22:01:48 +02:00
Přemysl Eric Janouch 06ec2a1388 degesch: stub word completion 2015-05-06 17:32:29 +02:00
Přemysl Eric Janouch 99526126e4 degesch: fix libedit initialization 2015-05-05 22:35:51 +02:00
Přemysl Eric Janouch e542aa5acc degesch: some libedit fixes 2015-05-05 20:18:41 +02:00
Přemysl Eric Janouch fa0ee9d65b degesch: better section dividers in soure code
And remove an extra function declaration.
2015-05-05 19:37:17 +02:00
Přemysl Eric Janouch a5a1079a9c degesch: add support for libedit
Just another kind of evil.
2015-05-05 08:54:55 +02:00
Přemysl Eric Janouch 53894e3909 degesch: fix a brutal bug 2015-05-05 05:15:08 +02:00
Přemysl Eric Janouch 8574c7f450 degesch: further decoupling from Readline 2015-05-05 03:42:40 +02:00
Přemysl Eric Janouch 87843f47e4 degesch: try to abstract GNU Readline 2015-05-05 03:23:53 +02:00
Přemysl Eric Janouch 87afccc568 degesch: fix the /set command
An extra cut_word() fucked things up.
2015-05-04 02:26:59 +02:00
Přemysl Eric Janouch 8e4a16af3a degesch: force a non-empty realname
At least a space seems to be needed with some ircds.
2015-05-04 02:25:33 +02:00
Přemysl Eric Janouch c9a02141f9 degesch: move some code to common.c 2015-05-04 02:17:55 +02:00
Přemysl Eric Janouch 56a67d56e0 degesch: add a /connect command 2015-05-03 20:03:21 +02:00
Přemysl Eric Janouch 72e5aeba58 degesch: implement /save
Fuck yes. :)
2015-05-03 19:34:48 +02:00
Přemysl Eric Janouch 134a627130 degesch: finish /set
One bug remaining to make it work.
2015-05-03 19:26:39 +02:00
Přemysl Eric Janouch 1e3a273690 degesch: refactor handle_command_set_assign() 2015-05-03 19:26:39 +02:00
Přemysl Eric Janouch 3b5c3c3b4e degesch: implement /set += / -= 2015-05-03 18:40:51 +02:00
Přemysl Eric Janouch 4841ba5bd0 degesch: halfplement option assignment 2015-05-03 17:38:58 +02:00
Přemysl Eric Janouch 373f6333ef degesch: refactor /help, fix segfault
Forgot to check if the item has a schema.
2015-05-03 16:47:31 +02:00
Přemysl Eric Janouch 4928f9ed62 degesch: add a read-only /set command 2015-05-03 16:47:16 +02:00
Přemysl Eric Janouch e000a6b495 degesch: fix segfault 2015-05-03 06:20:36 +02:00
Přemysl Eric Janouch f308b3fb5d degesch: show help for program options 2015-05-03 05:58:56 +02:00
Přemysl Eric Janouch 1019cc69b2 degesch: don't queue reconnects on bogus config 2015-05-03 00:13:36 +02:00
Přemysl Eric Janouch b31104784c degesch: connect _after_ starting the UI 2015-05-03 00:13:36 +02:00
Přemysl Eric Janouch 6d0fff6a71 degesch: don't require configuration to run
Well, techincally.
2015-05-03 00:13:36 +02:00
Přemysl Eric Janouch c23898166c degesch: use the new configuration
This is a simple, almost 1:1 conversion.  Needs further unfucking.
2015-05-02 23:06:19 +02:00
Přemysl Eric Janouch 7e42399ad0 degesch; user color constants from curses 2015-05-02 20:23:02 +02:00
Přemysl Eric Janouch 852c2ac158 Move some macros to common.c 2015-05-02 03:43:29 +02:00
Přemysl Eric Janouch 57f052a2be Get rid of "All rights reserved" 2015-05-01 23:41:22 +02:00
Přemysl Eric Janouch 6bf57d3450 Start writing a new configuration system
For degesch but in the long term for the rest as well.
2015-05-01 17:33:10 +02:00
Přemysl Eric Janouch 37fa19f4c9 Rename project to uirc3 2015-04-30 01:39:08 +02:00
Přemysl Eric Janouch 950f052d1b degesch: refactor for multiserver
Just some basic preparations before it becomes too costly.
2015-04-30 00:02:14 +02:00
Přemysl Eric Janouch b95b916c37 degesch: further unfucking 2015-04-29 21:43:31 +02:00
Přemysl Eric Janouch 101ab90100 degesch: unfuck terminal attribute handling 2015-04-29 20:56:26 +02:00
Přemysl Eric Janouch 21656d462f degesch: mark some issues 2015-04-28 23:41:13 +02:00
Přemysl Eric Janouch 507d444e0d degesch: fix 8-bit input 2015-04-28 23:40:49 +02:00
Přemysl Eric Janouch 1ff56bfe5a degesch: simplify formatter_flush() 2015-04-28 23:40:49 +02:00
Přemysl Eric Janouch 4013921de7 degesch: add a /nick command
Somehow I've missed it entirely.
2015-04-27 23:06:20 +02:00
Přemysl Eric Janouch 6f890c0388 degesch: fix typo 2015-04-27 23:02:15 +02:00
Přemysl Eric Janouch 0cb50addbe degesch: make sure "You are now known..." works 2015-04-27 22:59:23 +02:00
Přemysl Eric Janouch 412cad9328 degesch: add fast buffer switching
When the user tries to M-n the same buffer, it switches to the last.
2015-04-27 22:51:40 +02:00
Přemysl Eric Janouch cdb1d81982 degesch: detect highlights and display differently 2015-04-27 22:40:33 +02:00
Přemysl Eric Janouch 87c1775129 degesch: imlement NOTICE handling 2015-04-27 21:52:16 +02:00
Přemysl Eric Janouch 6003cc7138 degesch: log outcoming CTCPs 2015-04-27 01:47:21 +02:00
Přemysl Eric Janouch 2f6974c7ca degesch: reply to some CTCPs 2015-04-27 01:36:33 +02:00
Přemysl Eric Janouch 5ad6d7cfbc degesch: implement /me 2015-04-26 23:32:57 +02:00
Přemysl Eric Janouch 21b8e8e539 degesch: implement /list 2015-04-26 23:06:19 +02:00
Přemysl Eric Janouch 54262e2d20 degesch: implement /ctcp, stubplement /me 2015-04-26 22:53:38 +02:00
Přemysl Eric Janouch a66bf15e67 degesch: process CTCP in PRIVMSG
Finally we can display /me.
2015-04-26 22:31:07 +02:00
Přemysl Eric Janouch 9e548889c7 degesch: add a CTCP parser 2015-04-26 22:30:44 +02:00
Přemysl Eric Janouch e734190979 degesch: set the server buffer as default 2015-04-26 18:59:58 +02:00
Přemysl Eric Janouch b7d6933be6 degesch: brevify /help with no arguments 2015-04-26 18:58:39 +02:00
Přemysl Eric Janouch 224073d3b2 degesch: distinguish lines from other buffers 2015-04-26 18:39:38 +02:00
Přemysl Eric Janouch 950d64d229 degesch: little fixes 2015-04-26 18:24:19 +02:00
Přemysl Eric Janouch 864be7cfc5 degesch: add output text formatting 2015-04-26 18:23:43 +02:00
Přemysl Eric Janouch 4393e48145 degesch: encoding fixes
Shouldn't be totally broken anymore.
2015-04-25 14:53:29 +02:00
Přemysl Eric Janouch c38dfced51 degesch: refactor logging a bit 2015-04-25 13:41:10 +02:00
Přemysl Eric Janouch a75fc35295 degesch: refactor handle_command_buffer() a bit 2015-04-25 02:41:52 +02:00
Přemysl Eric Janouch 0141bef3cd degesch: print an extra line in /buffer list 2015-04-25 02:09:58 +02:00
Přemysl Eric Janouch 40510e26c3 degesch: fix warnings 2015-04-25 02:09:42 +02:00
Přemysl Eric Janouch 29da71800a degesch: finish the /help command 2015-04-25 02:08:14 +02:00
Přemysl Eric Janouch 05d21e8f3d degesch: print usage on command syntax failure 2015-04-25 01:49:34 +02:00
Přemysl Eric Janouch b2cfbf1501 degesch: refactor wrap_text()
It wasn't very readable.
2015-04-25 01:35:24 +02:00
Přemysl Eric Janouch 6ef472beb2 degesch: remove cyclic dependency
Between users and channels.
2015-04-25 00:53:07 +02:00
Přemysl Eric Janouch 7c2085d528 degesch: memory management fixes
As well as a one serious bug in passing the completely wrong object.
2015-04-24 23:30:48 +02:00
Přemysl Eric Janouch a4d3023874 degesch: fix a double-free 2015-04-24 22:50:53 +02:00
Přemysl Eric Janouch d4413627e6 degesch: better & working text wrapping
Now we respect word boundaries.
2015-04-24 22:34:44 +02:00
Přemysl Eric Janouch 2a0dcc2add degesch: fix RPL_WELCOME user@host parsing 2015-04-24 22:33:23 +02:00
Přemysl Eric Janouch dd8bb4c206 degesch: less confusing function name 2015-04-23 03:10:34 +02:00
Přemysl Eric Janouch cc6e9306e6 degesch: refactor command handlers 2015-04-23 03:07:48 +02:00
Přemysl Eric Janouch 15032f9ce7 degesch: fix /query 2015-04-23 03:00:19 +02:00
Přemysl Eric Janouch 20c36b4b36 degesch: non-functional changes 2015-04-23 02:59:58 +02:00
Přemysl Eric Janouch c088f081d7 degesch: halfplement /msg, /query, /notice
Which involved some refactoring.
2015-04-23 02:48:25 +02:00
Přemysl Eric Janouch 2633eda69a degesch: better message autosplit 2015-04-23 00:15:01 +02:00
Přemysl Eric Janouch 53b46482f5 degesch: preliminary message autosplitting 2015-04-22 22:41:01 +02:00
Přemysl Eric Janouch f2a2206e49 degesch: parse user@host from RPL_WELCOME 2015-04-22 21:59:50 +02:00
Přemysl Eric Janouch a7ccdc78be degesch: add a note about RPL_ISUPPORT 2015-04-21 22:34:16 +02:00
Přemysl Eric Janouch 295e4c8bf9 degesch: preparations for numerics processing 2015-04-21 22:08:18 +02:00
Přemysl Eric Janouch e937ac12d5 degesch: remove extraneous function argument 2015-04-21 21:55:34 +02:00
Přemysl Eric Janouch d0b7545f1e degesch: implement TOPIC handling 2015-04-21 21:47:34 +02:00
Přemysl Eric Janouch 9c0f0c0e33 degesch: don't require channels to have buffers 2015-04-21 21:36:59 +02:00
Přemysl Eric Janouch e8e039c11c degesch: non-functional changes 2015-04-21 21:36:44 +02:00
Přemysl Eric Janouch 883e777bac degesch: implement PART and KICK handlers 2015-04-21 21:36:16 +02:00
Přemysl Eric Janouch 69582c9e14 degesch: shorten/dedup init_colors() 2015-04-21 20:52:41 +02:00
Přemysl Eric Janouch c69c8048b4 degesch: fix a potential SIGSEGV 2015-04-21 00:40:30 +02:00
Přemysl Eric Janouch 5632eecd42 degesch: get rid of repeating refcounting code
Macros aren't exactly spectacular but they work.
2015-04-21 00:29:07 +02:00
Přemysl Eric Janouch 635c28820d degesch: fix logging a bit
It needs a rewrite.
2015-04-21 00:09:06 +02:00
Přemysl Eric Janouch 0a87e43aff degesch: unfuck reference counting
We really needed weak references for the name map.
2015-04-21 00:04:34 +02:00
Přemysl Eric Janouch 3cfe01e3a7 degesch: fix some object management 2015-04-20 23:37:34 +02:00
Přemysl Eric Janouch c5695a5f6d degesch: fix SIGSEGV on /quit 2015-04-20 23:09:13 +02:00
Přemysl Eric Janouch 5ad6581c57 degesch: halfplement PART handling
Tired.  This thing is enormous.
2015-04-20 23:03:52 +02:00
Přemysl Eric Janouch 590fc6cf26 degesch: mostly implement NICK handling
Except for the corner case where two buffers merge.
2015-04-20 22:53:31 +02:00
Přemysl Eric Janouch 3fa9a67a59 degesch: make a "struct user" for ourselves 2015-04-20 22:09:56 +02:00
Přemysl Eric Janouch a43051132a degesch: log nick changes 2015-04-20 21:56:32 +02:00
Přemysl Eric Janouch b8bfcfde7c degesch: finish QUIT handling 2015-04-20 21:49:46 +02:00
Přemysl Eric Janouch 8e7412eb97 degesch: halfplement NICK and QUIT handlers 2015-04-20 00:08:18 +02:00
Přemysl Eric Janouch 8b279dde81 degesch: disallow /quote from the global buffer 2015-04-19 23:09:01 +02:00
Přemysl Eric Janouch 10f1575677 degesch: fix creation of encoding converters 2015-04-19 23:07:23 +02:00
Přemysl Eric Janouch d01618ceb7 degesch: fix logging 2015-04-19 23:05:49 +02:00
Přemysl Eric Janouch 158f188646 degesch: fix "irc_nickname" and send USERHOST 2015-04-19 22:49:03 +02:00
Přemysl Eric Janouch 51415c1db6 degesch: factor out send_message_to_target()
And check that we're actually connected.
2015-04-19 22:26:30 +02:00
Přemysl Eric Janouch 953bc72e2b degesch: implement PRIVMSG handling 2015-04-19 22:19:52 +02:00
Přemysl Eric Janouch 56ae38b19a degesch: implement JOIN handling 2015-04-19 22:19:26 +02:00
Přemysl Eric Janouch 63d01191b6 degesch: fix sending messages
Now that the data model has changed.
2015-04-19 21:34:52 +02:00
Přemysl Eric Janouch c3d96a8b2d degesch: add some comments 2015-04-19 21:34:33 +02:00
Přemysl Eric Janouch c946c46f1f degesch: implement /join and /part 2015-04-19 21:34:11 +02:00
Přemysl Eric Janouch 392c2e7a5f degesch: fix struct channel_user
A user can have multiple channel modes.
2015-04-19 21:33:13 +02:00
Přemysl Eric Janouch 5502975505 degesch: prepare for user/channel buffers
That is, prepare all the required data structures and their relations.

I'm not particularly good at this, so let's just hope it will work out.
2015-04-19 02:12:59 +02:00
Přemysl Eric Janouch 8c38b1b9b8 degesch: some non-functional changes 2015-04-18 22:09:05 +02:00
Přemysl Eric Janouch da472bc4f6 degesch: count unseen messages 2015-04-18 21:50:42 +02:00
Přemysl Eric Janouch 14077ff209 degesch: capitalize buffer messages
They looked too alien.
2015-04-18 17:51:28 +02:00
Přemysl Eric Janouch 3bf1ffa559 degesch: fix some remaining print_*() 2015-04-18 17:50:56 +02:00
Přemysl Eric Janouch cbda184461 degesch: fix binding Meta keys
At last.
2015-04-18 17:34:35 +02:00
Přemysl Eric Janouch 5dbd6eaa7e degesch: print out some basic help 2015-04-18 17:19:56 +02:00
Přemysl Eric Janouch e65b38bff9 degesch: readline cleanup 2015-04-18 16:10:11 +02:00
Přemysl Eric Janouch 932548ef4b degesch: make readline work better
By randomly poking at it until it stops being a little shit.

Still no Meta keys.
2015-04-18 16:06:10 +02:00
Přemysl Eric Janouch 869781c33a degesch: make it work to some extent
GNU Readline still ignores our Meta keyseqs.
2015-04-18 03:25:10 +02:00
Přemysl Eric Janouch 583262ae67 degesch: printing to buffers etc. 2015-04-17 23:28:16 +02:00
Přemysl Eric Janouch 511c56d2fc degesch: stub IRC command handlers 2015-04-17 22:53:35 +02:00
Přemysl Eric Janouch 0d63e59beb degesch: add irc_to_utf8()
And use it.
2015-04-17 22:22:46 +02:00
Přemysl Eric Janouch 6c4e7f8fdc degesch: fix irc_process_message() 2015-04-17 22:11:36 +02:00
Přemysl Eric Janouch f9125c38c0 degesch: prepare for printing to buffers 2015-04-17 22:10:43 +02:00
Přemysl Eric Janouch 5b9dadcc58 degesch: leak lines from related buffers 2015-04-17 21:48:56 +02:00
Přemysl Eric Janouch 7fed628d58 degesch: inline a condition 2015-04-17 21:44:44 +02:00
Přemysl Eric Janouch 61ebbe245b degesch: factor out make_prompt() 2015-04-17 21:40:08 +02:00
Přemysl Eric Janouch 8cb55e81b3 degesch: actually send messages 2015-04-17 21:33:52 +02:00
Přemysl Eric Janouch 954a9e127a degesch: more user command handling
It's become obvious that I really, really need to finish printing
to buffer first, as I keep adding new TODO comments.
2015-04-17 21:29:18 +02:00
Přemysl Eric Janouch 2d91a27714 degesch: factor out buffer_{previous,next}() 2015-04-17 21:26:08 +02:00
Přemysl Eric Janouch e5b52fcd76 degesch: factor out buffer_get_index() 2015-04-17 21:19:51 +02:00
Přemysl Eric Janouch 2d4adaefbf degesch: enhance the prompt
- prepend the buffer's index
 - don't show modes if they're empty
 - don't show the nick in the global buffer
2015-04-16 21:29:35 +02:00
Přemysl Eric Janouch 75b2fc1da2 degesch: factor out buffer_goto()
And make M-[0-9] ding if there's no such buffer.
2015-04-16 21:20:25 +02:00
Přemysl Eric Janouch 0c96563545 degesch: fix quoting a slash 2015-04-16 20:51:50 +02:00
Přemysl Eric Janouch c421532e6e degesch: some more progress
Whoa, this thing is huge.

Started implementing the basis for IRC and user command handlers.
2015-04-16 01:04:32 +02:00
Přemysl Eric Janouch 08c0027397 degesch: more buffer-related stuff 2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch 51ca5c79e4 degesch: show active buffers in prompt 2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch 23298f3a0e degesch: fix reading in the configuration 2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch 06857c6bbb degesch: add an error buffer line type 2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch c2c9d4dc58 degesch: update TODO/FIXME comments 2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch ba9e51fb9f degesch: reorder configuration 2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch 92ca2df285 degesch: fix Travis CI build 2015-04-15 02:40:11 +02:00
Přemysl Eric Janouch 0114d57a0c degesch: fix Travis CI build (hopefully) 2015-04-15 02:28:57 +02:00
Přemysl Eric Janouch 4a0c774e75 degesch: more GNU Readline work
I'm not so sure anymore I will be able to achieve my goals with this library.

It's really a terrible mess.  A consistent and neatly formatted terrible mess.
2015-04-15 02:10:21 +02:00
Přemysl Eric Janouch 3df841f088 degesch: steady progress
I'm sorry, I can't do reasonable commit messages in this stage of development.

It's all a total mess slowly converging to an alpha version.
2015-04-13 00:09:10 +02:00
Přemysl Eric Janouch 3864cca21d degesch: actually do add the client
Mostly consists of some ZyklonB and some json-rpc-shell code.

The part that actually makes it an IRC client is still unfinished.
2015-04-12 04:53:29 +02:00