Commit Graph

328 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 4dd2a80ba2 degesch: cleanup wrt. quitting 2015-06-02 22:36:22 +02:00
Přemysl Eric Janouch 897bb00af1 degesch: add & use strncasecmp_ascii() 2015-06-02 21:28:41 +02:00
Přemysl Eric Janouch a6782e5e60 degesch: clean up complete_nicknames()
Using new irc_server_strncmp() instead of fnmatch().
2015-06-02 21:05:27 +02:00
Přemysl Eric Janouch 00a8b6616f degesch: add & use irc_server_strcmp() 2015-06-02 20:46:40 +02:00
Přemysl Eric Janouch 57413d53a4 degesch: fix typo 2015-06-01 21:48:31 +02:00
Přemysl Eric Janouch 0757ce424c degesch: make use of values from RPL_ISUPPORT 2015-06-01 21:48:30 +02:00
Přemysl Eric Janouch 328ffd024a degesch: don't compare buffer names using rfc1459 2015-06-01 21:48:30 +02:00
Přemysl Eric Janouch 2242724c34 degesch: parse more of RPL_ISUPPORT 2015-06-01 21:48:30 +02:00
Přemysl Eric Janouch 3c32558a42 degesch: properly unescape RPL_ISUPPORT values 2015-05-30 22:34:09 +02:00
Přemysl Eric Janouch 0b91604acd degesch: some basic RPL_ISUPPORT parsing 2015-05-25 22:54:04 +02:00
Přemysl Eric Janouch 36185ddeee degesch: actually update the list of channel users 2015-05-25 08:23:08 +02:00
Přemysl Eric Janouch 11977cb0b0 degesch: halfplement RPL_NAMES processing 2015-05-24 21:56:46 +02:00
Přemysl Eric Janouch 3ed519c1c5 degesch: fix crash in the logger
Invalid arguments for the format string.
2015-05-23 19:41:44 +02:00
Přemysl Eric Janouch ca36726bf7 degesch: parse and use RPL_USERHOST 2015-05-22 22:13:28 +02:00
Přemysl Eric Janouch b0dbc34f9a degesch: show mode changes 2015-05-21 19:59:37 +02:00
Přemysl Eric Janouch 0260fcd02e degesch: add support for server passwords 2015-05-20 21:18:15 +02:00
Přemysl Eric Janouch 4016c387f8 degesch: naively implement the unimplemented 2015-05-19 21:03:45 +02:00
Přemysl Eric Janouch 310b9c31d3 degesch: naively implement a few user commands
/mode, /topic, /kick, /kickban, /ban, /invite

It's all a bit messy and needs some rewriting.
2015-05-18 22:04:35 +02:00
Přemysl Eric Janouch f2ab9f3937 degesch: implement /cycle 2015-05-17 16:43:58 +02:00
Přemysl Eric Janouch 02160c897a degesch: fix sending the reason in /part 2015-05-17 16:23:32 +02:00
Přemysl Eric Janouch 87352b33d0 degesch: don't cache reconnect configuration
Also make sure the delay isn't negative.
2015-05-16 12:45:39 +02:00
Přemysl Eric Janouch c2c82d20dd degesch: avoid crashing on null user info 2015-05-16 12:39:30 +02:00
Přemysl Eric Janouch ca8540e217 degesch: more multiserver preparations
Almost done now.
2015-05-16 12:33:59 +02:00
Přemysl Eric Janouch bedbadd396 degesch: fix typo 2015-05-16 09:48:57 +02:00
Přemysl Eric Janouch 634d960c8d degesch: unindent some code 2015-05-16 09:40:02 +02:00
Přemysl Eric Janouch 25d3f6e44a degesch: prepare buffers for multiserver
By making them unique among all servers.
2015-05-15 20:05:27 +02:00
Přemysl Eric Janouch 76b0c13adc degesch: actually use buffer_add() 2015-05-15 19:49:25 +02:00
Přemysl Eric Janouch 14df801f53 degesch: allow /quote when not registered 2015-05-15 07:17:08 +02:00
Přemysl Eric Janouch 30191c76c8 degesch: rework registration
Also fixed the annoying reconnect bug.
2015-05-15 05:54:03 +02:00
Přemysl Eric Janouch ebf9403872 degesch: send PINGs with a timestamp
Instead of a username which is of no use to us.

Maybe some servers require the argument to be a target but the purpose of this
message is mainly to detect a failed connection at all, and that happens way
faster when you send some data.
2015-05-15 05:45:07 +02:00
Přemysl Eric Janouch 489a5fa552 degesch: factor out irc_get_or_make_user() 2015-05-15 05:43:59 +02:00
Přemysl Eric Janouch d41e3499c9 degesch: prevent playing with unknown options 2015-05-14 06:45:24 +02:00
Přemysl Eric Janouch a77ab689eb degesch: irc_{host,port} -> addresses
Now you can finally specify multiple addresses to connect to.
2015-05-14 06:25:34 +02:00
Přemysl Eric Janouch c5b38842bf degesch: input_set_prompt() can be called whenever 2015-05-12 07:09:20 +02:00
Přemysl Eric Janouch 24546dd724 degesch: refresh prompt on dis/connection 2015-05-12 07:02:14 +02:00
Přemysl Eric Janouch ec52850c7c degesch: remove an outdated TODO comment 2015-05-12 06:53:45 +02:00
Přemysl Eric Janouch 5b4513ba65 Silence GCC 2015-05-12 05:45:20 +02:00
Přemysl Eric Janouch e4cbd6cf3f degesch: now we do formatting with M-m 2015-05-12 03:51:37 +02:00
Přemysl Eric Janouch 06a24bd252 degesch: add a FIXME 2015-05-12 02:59:07 +02:00
Přemysl Eric Janouch 2ac685f2a6 degesch: actually support mIRC italics 2015-05-12 02:55:03 +02:00
Přemysl Eric Janouch 24159e0214 degesch: fix mIRC color parsing 2015-05-12 02:48:12 +02:00
Přemysl Eric Janouch 2d040cae73 degesch: color cleanup 2015-05-12 02:43:53 +02:00
Přemysl Eric Janouch b5a7ea63c2 degesch: make mIRC formatting actually work 2015-05-11 19:09:42 +02:00
Přemysl Eric Janouch 1a24ab7085 degesch: fix a typical signed char problem 2015-05-10 23:11:43 +02:00
Přemysl Eric Janouch 502bb26f29 degesch: formatter: simplifications 2015-05-10 23:06:19 +02:00
Přemysl Eric Janouch 6deb471423 degesch: halfplement mIRC formatting
Now for the displaying part.
2015-05-10 09:55:44 +02:00
Přemysl Eric Janouch 095a2cc16a degesch: fix a stupid segfault 2015-05-10 06:44:34 +02:00
Přemysl Eric Janouch dce14b9961 degesch: preparations for mIRC formatting
We're gonna have to do it the hard way, it seems.

Prepared color mapping for mIRC colors which are totally different
from regular ANSI colors in your terminal.

What's missing now is a solid algorithm for outputting the 16-color
range using what we have (bold, blink, color 8--15, ...)

It also, naturally, has to respect any current attributes that are
in conflict with the colors.
2015-05-10 05:28:12 +02:00
Přemysl Eric Janouch 0a990ad6f7 degesch: add a way to output mIRC formatting 2015-05-10 02:12:39 +02:00
Přemysl Eric Janouch 00b91976b0 degesch: fix QUIT message on C-c 2015-05-10 01:49:26 +02:00
Přemysl Eric Janouch 1bbfcbe993 degesch: be a bit less leaky with readline
It spams valgrind.
2015-05-10 00:27:41 +02:00
Přemysl Eric Janouch 7c9a1f50da degesch: add nickname autocompletion 2015-05-10 00:23:23 +02:00
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