Commit Graph

691 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 5ca07656a1 degesch: fix handling of status messages
That is, messages using the STATUSMSG feature.
2015-09-24 15:41:39 +02:00
Přemysl Eric Janouch f20c6fb28e degesch: fix logging of RPL_INVITING 2015-09-24 15:41:39 +02:00
Přemysl Eric Janouch 1613e75a48 mv 'struct config_item'{_,}
Finally we can get rid of the trailing underscore.
2015-08-17 00:13:05 +02:00
Přemysl Eric Janouch 4ae95be9db degesch: add self to completion in server buffers 2015-08-13 00:23:56 +02:00
Přemysl Eric Janouch 328bf9af1e degesch: display ERROR messages
So that the user knows he was killed.
2015-08-12 23:21:11 +02:00
Přemysl Eric Janouch ce83f8244c degesch: don't ignore data right before an EOF 2015-08-12 23:20:46 +02:00
Přemysl Eric Janouch 8a8ff11887 degesch: don't use black for nicks on 256-color
Except for self.
2015-08-11 21:38:28 +02:00
Přemysl Eric Janouch 131aee6f08 degesch: update comments 2015-08-10 23:24:57 +02:00
Přemysl Eric Janouch 07f6d0b350 degesch: enable bright backgrounds on 8-color terms 2015-08-10 23:07:05 +02:00
Přemysl Eric Janouch 1cc8656368 degesch: precompute the filtered color cube 2015-08-10 07:53:03 +02:00
Přemysl Eric Janouch 4c81112840 degesch: show CTCPs to channels as such 2015-08-10 07:39:43 +02:00
Přemysl Eric Janouch 5dda5661ae degesch: send after-connect joins more cleverly 2015-08-10 07:35:42 +02:00
Přemysl Eric Janouch 628facf286 degesch: properly flush the read marker 2015-08-10 00:09:43 +02:00
Přemysl Eric Janouch 7225b68f74 degesch: safer defaults for backlog helper 2015-08-09 15:05:49 +02:00
Přemysl Eric Janouch e188de5501 degesch: don't show joins etc. as new activity
It's mostly just spam that shouldn't get your attention.
2015-08-08 21:19:25 +02:00
Přemysl Eric Janouch cdf6544c94 degesch: use formatting in the backlog
It's a rather crude solution to just pipe the raw terminfo strings
to less but hey, it works.
2015-08-08 20:44:24 +02:00
Přemysl Eric Janouch a28528d260 degesch: add backlog/scrollback functionality
Finally!  I went with possibly the simplest solution, which is to
run less, instead of badly reimplementing its functionality.
2015-08-08 20:44:24 +02:00
Přemysl Eric Janouch d207c90577 degesch: properly flush formatting resets 2015-08-06 23:58:42 +02:00
Přemysl Eric Janouch 2afc9f99c3 degesch: better name resolution failure messages 2015-08-06 23:53:00 +02:00
Přemysl Eric Janouch 4ab247ead0 degesch: fix /server usage 2015-08-06 23:27:35 +02:00
Přemysl Eric Janouch 1dd464f35c degesch; fix handling of CTCP requests 2015-08-06 23:23:56 +02:00
Přemysl Eric Janouch 955b3728a3 degesch: don't send PART on /close when not joined 2015-08-06 21:58:34 +02:00
Přemysl Eric Janouch cfc78ffdf0 Fix OpenBSD build 2015-07-30 18:29:12 +02:00
Přemysl Eric Janouch 637a3d2bf7 More SSL -> TLS renaming 2015-07-28 20:31:42 +02:00
Přemysl Eric Janouch a912b3f28c degesch: use hopefully better colors for nicks
- exclude white from the 16-color range
 - use colors from the 256-color cube when available
2015-07-27 01:29:44 +02:00
Přemysl Eric Janouch 27cd8b3a63 degesch: fix memory leak 2015-07-27 00:08:28 +02:00
Přemysl Eric Janouch 2bde385dc7 degesch: order the nicknames in /names 2015-07-26 23:27:39 +02:00
Přemysl Eric Janouch 74c9759932 degesch: make showing all prefixes optional 2015-07-26 22:44:34 +02:00
Přemysl Eric Janouch f622107592 degesch: fix regression in alias expansion 2015-07-23 21:44:04 +02:00
Přemysl Eric Janouch 67b67cb171 Fix immediate connects
Apparently FreeBSD can do this while Linux can not.
2015-07-23 10:17:28 +02:00
Přemysl Eric Janouch 7be129b72c degesch: fix one last SOCKS corner case 2015-07-23 04:56:40 +02:00
Přemysl Eric Janouch 4a89572089 SOCKS: various fixes to API and code 2015-07-23 04:26:59 +02:00
Přemysl Eric Janouch 318b7400d1 Rewrite socks to async
Not quite working yet, however it's a massive and important change.
2015-07-20 23:56:31 +02:00
Přemysl Eric Janouch 553f06d3ec degesch: fix literal IPv6 server addresses 2015-07-19 23:30:28 +02:00
Přemysl Eric Janouch b947a2e4bc degesch: add a "command_delay" option to servers
E.g. for channels that are for registered users only.
2015-07-18 14:16:10 +02:00
Přemysl Eric Janouch 5c0a2975e8 degesch: refactor and fix reconnect delays 2015-07-18 13:39:30 +02:00
Přemysl Eric Janouch baacb27d4b degesch: allow executing a command when registered
To authenticate with NickServ or whatever.
2015-07-18 13:27:50 +02:00
Přemysl Eric Janouch b3acc4904f degesch: add exponential reconnect backoff 2015-07-17 21:23:01 +02:00
Přemysl Eric Janouch 403dbc83ab degesch: allow multiple commands in aliases
Separated by ;, which can be escaped as $;
2015-07-16 22:12:59 +02:00
Přemysl Eric Janouch 1b56b4ee72 degesch: skip unrecognized config items in /set 2015-07-16 20:40:10 +02:00
Přemysl Eric Janouch 6f3b48e4eb SSL -> TLS; fix error handling 2015-07-15 23:34:36 +02:00
Přemysl Eric Janouch c8496a83d8 Unfuck OpenSSL error messages
We still take just the first error message in the queue, though.
2015-07-15 23:11:12 +02:00
Přemysl Eric Janouch 6351ff387e degesch: set a limit on backlog entries
So that buffers don't grow indefinitely in memory.
2015-07-15 23:05:45 +02:00
Přemysl Eric Janouch bcbbdbc4bc degesch: fix some encoding issues 2015-07-15 22:59:55 +02:00
Přemysl Eric Janouch b257340ad2 Fix compiler warning 2015-07-15 22:57:12 +02:00
Přemysl Eric Janouch ad08545f8f Bump liberty 2015-07-15 22:56:53 +02:00
Přemysl Eric Janouch d6a4ca1434 Bump liberty, fix map iterators 2015-07-14 22:25:30 +02:00
Přemysl Eric Janouch 955552f4fa degesch: implement /server rename 2015-07-14 21:16:35 +02:00
Přemysl Eric Janouch 0c5591fed2 degesch: fix server loading 2015-07-14 07:49:28 +02:00
Přemysl Eric Janouch 855a9d81ba degesch: simplify check_server_name_for_addition() 2015-07-14 07:29:30 +02:00
Přemysl Eric Janouch c573435996 degesch: implement /server remove 2015-07-14 06:50:39 +02:00
Přemysl Eric Janouch 880a8ef080 degesch: finally fix rearm_date_change_timer() 2015-07-14 06:43:15 +02:00
Přemysl Eric Janouch 6f966d4aee degesch: factor out buffer_remove_safe() 2015-07-14 06:11:14 +02:00
Přemysl Eric Janouch 1285ba2d13 degesch: make "/server" alone list all servers 2015-07-13 20:51:23 +02:00
Přemysl Eric Janouch a3074ef83d degesch: fix the date change timer 2015-07-13 02:39:28 +02:00
Přemysl Eric Janouch 606f0b1faa degesch: fix /server add 2015-07-13 00:13:14 +02:00
Přemysl Eric Janouch e86dc2fbcd Disable SSL 2 and 3 2015-07-13 00:13:14 +02:00
Přemysl Eric Janouch de61f9ce5b degesch: don't save on quit after a parse error 2015-07-13 00:13:14 +02:00
Přemysl Eric Janouch efe5112a8f degesch: force a TLS handshake
This is sort of a no-op.
2015-07-13 00:13:10 +02:00
Přemysl Eric Janouch fc87d54649 Cleanup 2015-07-12 17:39:29 +02:00
Přemysl Eric Janouch 3c1bbbc513 degesch: add an "ssl_ciphers" option to servers 2015-07-12 17:15:33 +02:00
Přemysl Eric Janouch 88b2200051 degesch: log certificate verification errors
At last, there should be no more serious issues with TLS.
2015-07-12 06:03:28 +02:00
Přemysl Eric Janouch d5a153bbe3 Call ERR_clear_error() where necessary 2015-07-12 05:30:13 +02:00
Přemysl Eric Janouch 4ead42f4e3 degesch: fix certificate verification
Also print some certificate information while connecting.
2015-07-12 01:58:38 +02:00
Přemysl Eric Janouch 20b317db30 degesch: fix failure handling in SSL_CTX creation 2015-07-12 00:43:52 +02:00
Přemysl Eric Janouch fe95f97101 degesch: rejoin channels on reconnect
Unless we've left them and the buffer just stays open, that is.
2015-07-12 00:30:10 +02:00
Přemysl Eric Janouch 5b96f2ccb7 degesch: fix the date change timer
It used absolute time, while we need relative.
2015-07-12 00:08:56 +02:00
Přemysl Eric Janouch 0ce4872254 degesch: fix nick cycling 2015-07-11 18:04:07 +02:00
Přemysl Eric Janouch b3876260b9 degesch: make /disconnect abort reconnect timer 2015-07-11 17:54:49 +02:00
Přemysl Eric Janouch 0c4b727961 Bump liberty 2015-07-11 17:54:38 +02:00
Přemysl Eric Janouch 5692da47be Fix various issues reported by Coverity 2015-07-11 14:48:00 +02:00
Přemysl Eric Janouch 4865f91eb0 degesch: add "autoconnect" option for servers 2015-07-11 06:16:53 +02:00
Přemysl Eric Janouch 8ed93ae03e degesch: write date change messages earlier 2015-07-11 06:10:46 +02:00
Přemysl Eric Janouch ccc167d120 degesch: print a marker for unread messages 2015-07-11 05:41:39 +02:00
Přemysl Eric Janouch d48adf4557 degesch: log CAP traffic 2015-07-11 05:04:17 +02:00
Přemysl Eric Janouch f2a6c0f299 degesch: log disconnection in all buffers 2015-07-11 04:55:34 +02:00
Přemysl Eric Janouch d27a23a7d6 degesch: sanitize terminal output 2015-07-11 04:55:34 +02:00
Přemysl Eric Janouch e2c0240a84 degesch: move the -d option to configuration 2015-07-11 04:28:34 +02:00
Přemysl Eric Janouch 8f587117f7 degesch: add aliases to /help and autocomplete 2015-07-11 03:58:53 +02:00
Přemysl Eric Janouch a24c068a3b degesch: mostly finish /alias sans name checking 2015-07-11 03:29:52 +02:00
Přemysl Eric Janouch b987b2cc64 degesch: add config_item_string_from_cstr() 2015-07-11 03:29:52 +02:00
Přemysl Eric Janouch 30252e069d degesch: add an /unalias command 2015-07-11 03:29:52 +02:00
Přemysl Eric Janouch 8f1d81eefb degesch: add an option to save config on quit 2015-07-11 03:29:52 +02:00
Přemysl Eric Janouch 0a657a0294 degesch: silence compiler warnings 2015-07-11 01:53:04 +02:00
Přemysl Eric Janouch 5ddf963e33 degesch: actually avoid recursive aliases 2015-07-11 01:46:11 +02:00
Přemysl Eric Janouch dcb1d2f97b degesch: fix argument checking 2015-07-11 01:44:58 +02:00
Přemysl Eric Janouch 5da45877d6 degesch: add /alias that only lists aliases 2015-07-10 01:45:39 +02:00
Přemysl Eric Janouch 0fd53af0d1 degesch: factor out get_aliases_config() 2015-07-10 01:44:02 +02:00
Přemysl Eric Janouch c839649551 degesch: add some default aliases 2015-07-10 00:55:13 +02:00
Přemysl Eric Janouch 4ddded3512 degesch: print the logo in a buffer 2015-07-10 00:55:13 +02:00
Přemysl Eric Janouch 3e17bfb54c degesch: add a first time help 2015-07-10 00:55:13 +02:00
Přemysl Eric Janouch 7a7192d327 degesch: unfuck debug logging
We can store most of the messages in buffers, which gives us the nice
possibility of using the formatter to fix encodings, as well as the
ability to redisplay the debug prints.

And we can also have some nice colors.
2015-07-10 00:55:13 +02:00
Přemysl Eric Janouch 445837007d degesch: get rid of partial command name matching 2015-07-09 22:34:42 +02:00
Přemysl Eric Janouch 567ce62257 degesch: tiny miscellaneous fixes 2015-07-09 22:34:42 +02:00
Přemysl Eric Janouch ba1ac58d9d degesch: add backend support for aliases 2015-07-09 22:34:42 +02:00
Přemysl Eric Janouch 5e7f9882dd degesch: "nickname" -> "nicks"
Now you can specify multiple nicknames to try.
2015-07-09 02:46:31 +02:00
Přemysl Eric Janouch 2b2da0beab degesch: support CASEMAPPING=rfc1459-strict 2015-07-09 01:48:34 +02:00
Přemysl Eric Janouch f57cc7923d degesch: clean up irc_handle_irc_isupport() 2015-07-09 01:36:19 +02:00
Přemysl Eric Janouch 1ba6db50b6 degesch: split handle_command_help() 2015-07-09 00:10:46 +02:00
Přemysl Eric Janouch f907f1e3dc Add str_cut_until() 2015-07-09 00:10:06 +02:00
Přemysl Eric Janouch d3b1754e14 degesch: introduce transform_str() 2015-07-08 23:15:48 +02:00
Přemysl Eric Janouch aa39445afb Miscellaneous, cleanup
Went through the entire source of degesch and made changes along the way.
2015-07-06 01:54:02 +02:00
Přemysl Eric Janouch 096a179e09 degesch: implement /server add 2015-07-05 20:32:48 +02:00
Přemysl Eric Janouch 15d3129ea3 degesch: mark all unrecognized config values 2015-07-05 18:26:46 +02:00
Přemysl Eric Janouch ff20e74868 degesch: fix usage of "prompt_shown"
It can go very negative.
2015-07-05 17:29:44 +02:00
Přemysl Eric Janouch 550f8baa1a degesch: add "on_change" for behaviour.logging 2015-07-05 17:02:11 +02:00
Přemysl Eric Janouch 8c2c0472cb degesch: add some trivial "on_change" callbacks 2015-07-05 16:28:27 +02:00
Přemysl Eric Janouch 6de7ae9583 degesch: only apply relevant attributes on change 2015-07-05 16:15:30 +02:00
Přemysl Eric Janouch 3a922c3c1a degesch: start using "on_change" notifications
Terminal attributes can be changed on the fly now.
2015-07-05 15:57:53 +02:00
Přemysl Eric Janouch b1dd34a7ba degesch: set "user_data" while loading config
It'd be quite wrong to call "on_change" on them without this.
2015-07-05 02:16:43 +02:00
Přemysl Eric Janouch 9b41256ebf degesch: create servers from configuration
This means that as of now, the only way of creating a server is
to edit the configuration file by hand and add (at least) an empty
object under the server's name.
2015-07-05 02:16:43 +02:00
Přemysl Eric Janouch 0ecd297c6f degesch: stubplement /server 2015-07-04 22:28:59 +02:00
Přemysl Eric Janouch bda1239a33 degesch: /buffer close switches to previous buffer
buffer_next() proved too annoying.
2015-07-04 20:04:20 +02:00
Přemysl Eric Janouch 990e8d7d94 degesch: optimize buffer_print_backlog()
Apparently readline can be really, really slow at redrawing.
2015-07-04 16:58:25 +02:00
Přemysl Eric Janouch ef2b4d9a01 degesch: flush I/O buffers on disconnect
Discovered thanks to weercd.
2015-07-04 16:37:31 +02:00
Přemysl Eric Janouch 4471e0c6cd degesch: periodically flush logs to disk 2015-07-04 15:45:27 +02:00
Přemysl Eric Janouch 94d495fbfa degesch: add logging to file 2015-07-04 15:45:27 +02:00
Přemysl Eric Janouch 3503b76015 degesch: fix unused variable 2015-07-04 01:46:35 +02:00
Přemysl Eric Janouch 6498690999 degesch: decode mIRC formatting in numerics
Just like... why not.  Makes colors in the MOTD and in LIST work.
2015-07-04 01:45:22 +02:00
Přemysl Eric Janouch 8a75c2447f degesch: fix memory issue in Readline
We didn't zero out the pointer for entries.
2015-07-04 01:11:27 +02:00
Přemysl Eric Janouch 7de1309421 degesch: clean up the async code a bit 2015-07-03 23:40:34 +02:00
Přemysl Eric Janouch 2357f1382a degesch: rewrite to use asynchronous I/O 2015-07-03 22:19:12 +02:00
Přemysl Eric Janouch 15882dcdf9 degesch: part channel on /buffer close 2015-07-02 20:50:53 +02:00
Přemysl Eric Janouch be10e61c90 degesch: fix /msg with CAP echo-message 2015-06-29 21:39:40 +02:00
Přemysl Eric Janouch 2b240b6631 degesch: add a #N format specifier
Fixes RPL_TOPICWHOTIME with some servers.
2015-06-29 08:56:43 +02:00
Přemysl Eric Janouch 134e19adf0 degesch: mark an issue with CAP echo-message 2015-06-28 23:01:38 +02:00
Přemysl Eric Janouch fdff5f8c72 degesch: reclaim more memory with Readline 2015-06-28 23:00:46 +02:00
Přemysl Eric Janouch b5d472f0df degesch: clean up log_formatter() 2015-06-28 20:56:45 +02:00
Přemysl Eric Janouch 0074b1eda9 degesch: reorder code 2015-06-28 20:48:43 +02:00
Přemysl Eric Janouch 3f55693400 degesch: don't put dashes in listings
Just reflecting the behaviour of weechat.
2015-06-28 19:56:05 +02:00
Přemysl Eric Janouch c9b33846cb degesch: add an option to beep on highlight 2015-06-28 19:41:31 +02:00
Přemysl Eric Janouch db6939bd60 degesch: fix /ctcp with CAP echo-message 2015-06-28 17:08:42 +02:00
Přemysl Eric Janouch a1fa9d187e degesch: log self nick changes in server buffer 2015-06-28 16:36:51 +02:00
Přemysl Eric Janouch 3e47abdfbb degesch: further logging cleanup 2015-06-28 16:26:51 +02:00
Přemysl Eric Janouch ed349cb1d3 degesch: logging cleanup 2015-06-28 16:16:19 +02:00
Přemysl Eric Janouch 02ab0f743b degesch: remove "ctx" from command handler args 2015-06-28 03:00:19 +02:00
Přemysl Eric Janouch 335aeb599a degesch: refactor logging
- everything coming from the server should be properly transcoded
 - most nicknames should be highlighted
 - some other minor changes here and there
2015-06-28 02:51:31 +02:00
Přemysl Eric Janouch fafe1fde90 degesch: finish implementation of rehashing
I can only hope it works.
2015-06-23 23:20:03 +02:00
Přemysl Eric Janouch e39bb976cb degesch: partially implement rehashing 2015-06-23 22:10:16 +02:00
Přemysl Eric Janouch 63a65f9f7c degesch: stubplement casemapping changes 2015-06-23 21:04:38 +02:00
Přemysl Eric Janouch c3439175d7 degesch: NICK handling cleanup 2015-06-23 21:01:38 +02:00
Přemysl Eric Janouch 9603bae003 degesch: fix logging of NICK in PM buffers 2015-06-22 23:07:09 +02:00
Přemysl Eric Janouch c8c1697e20 degesch: final fix for /query
rl_delete_text() didn't fix rl_point.
2015-06-22 23:07:09 +02:00
Přemysl Eric Janouch de019e7832 degesch: fix handling of buffer collisions 2015-06-22 23:07:09 +02:00
Přemysl Eric Janouch e276fe0022 degesch: fix /query
It changed the buffer, which saved the state, which saved the line
currently being processed (thanks Readline, so obvious).
2015-06-21 23:38:22 +02:00
Přemysl Eric Janouch 1e04fc24a7 degesch: fix /nick handling
When the new nickname was lexicographically identical (for example
User -> uSer), the whole thing broke down.

In addition to that, we used to check if the new nickname exists
and failed in that case.  It _can_, however, exist.  It just mustn't
be us.
2015-06-21 23:38:22 +02:00
Přemysl Eric Janouch e85c98f315 degesch: implement the rest of buffer merging 2015-06-21 21:50:47 +02:00
Přemysl Eric Janouch ce96be2d5e degesch: show usage on /buffer move failure 2015-06-21 19:52:15 +02:00
Přemysl Eric Janouch b56245cf5b degesch: implement /buffer move 2015-06-21 19:35:35 +02:00
Přemysl Eric Janouch b3a80630aa degesch: change arguments to handle_buffer_close() 2015-06-21 18:39:32 +02:00
Přemysl Eric Janouch 85cebbcfa2 degesch: make highlights more obvious
Just the tiniest bit.
2015-06-21 04:00:20 +02:00
Přemysl Eric Janouch 1eb38fa5ec degesch: implement /buffer clear
At least somehow.
2015-06-21 03:35:35 +02:00
Přemysl Eric Janouch 3c982c7077 degesch: make buffer_send_*() accept a NULL buffer 2015-06-20 23:30:05 +02:00
Přemysl Eric Janouch 7bd0eefea8 degesch: fix display of RPL_INVITING 2015-06-20 22:50:28 +02:00
Přemysl Eric Janouch 193dd36112 degesch: reset server info on disconnect 2015-06-20 22:42:38 +02:00
Přemysl Eric Janouch 974ce75a59 degesch: add support for IRCv3.2 echo-message 2015-06-20 21:38:04 +02:00
Přemysl Eric Janouch 935d671a57 degesch: shuffle some code 2015-06-20 21:10:50 +02:00
Přemysl Eric Janouch 4970929f1d degesch: fix trivial user command handlers 2015-06-20 20:23:14 +02:00
Přemysl Eric Janouch 0875bbfba7 degesch: further cleanups 2015-06-20 20:13:37 +02:00
Přemysl Eric Janouch eaecdda614 degesch: fix invalid free() 2015-06-20 19:53:18 +02:00
Přemysl Eric Janouch 390b283233 degesch: refactor user command handling
This was long overdue.
2015-06-20 19:51:14 +02:00
Přemysl Eric Janouch b55494c68f degesch: further cleanups 2015-06-19 23:09:46 +02:00
Přemysl Eric Janouch 5be1cad4da degesch: get rid of some repeating code 2015-06-19 22:54:10 +02:00
Přemysl Eric Janouch 690e29c78e degesch: fix /join, /part, /cycle
Cycle now remembers the channel key.
2015-06-19 22:26:54 +02:00
Přemysl Eric Janouch 86f4578d12 degesch: allow specifying server in /disconnect 2015-06-19 20:47:37 +02:00
Přemysl Eric Janouch 1c1cffa6eb degesch: update user command usages and comments 2015-06-18 22:47:56 +02:00
Přemysl Eric Janouch 8eb31ad2e1 degesch: fix /invite 2015-06-18 22:35:14 +02:00
Přemysl Eric Janouch bdad7bd7c2 degesch: fix /whois, /whowas 2015-06-18 22:05:32 +02:00
Přemysl Eric Janouch 088009d16b degesch: fix /mode after breaking it
The clean up was a bit thoughtless.
2015-06-18 22:02:51 +02:00
Přemysl Eric Janouch 27ef5c2ea3 degesch: fix /ban, add /unban 2015-06-18 21:21:49 +02:00
Přemysl Eric Janouch 782bc85336 degesch: fix /kickban 2015-06-18 08:47:52 +02:00
Přemysl Eric Janouch 5a3b8f8eee degesch: fix sending the reason in /kick 2015-06-18 08:40:44 +02:00
Přemysl Eric Janouch 87a44fb807 degesch: cleanup 2015-06-18 08:34:37 +02:00
Přemysl Eric Janouch 2261db4caa degesch: fix /mode to work for user modes 2015-06-18 08:07:25 +02:00
Přemysl Eric Janouch a0b98720b9 degesch: fix /mode on servers with +channels 2015-06-17 23:16:44 +02:00
Přemysl Eric Janouch 9027889002 degesch: add /op, /deop, /voice, /devoice 2015-06-17 21:34:56 +02:00
Přemysl Eric Janouch 178c1b072a degesch: parse MODES from RPL_ISUPPORT 2015-06-17 21:34:56 +02:00
Přemysl Eric Janouch e2a3b48114 degesch: add /stats 2015-06-17 20:29:17 +02:00
Přemysl Eric Janouch 7dbec0d273 degesch: fix highlights 2015-06-16 21:48:35 +02:00
Přemysl Eric Janouch e43ffb538e degesch: fix SOCKS failure handling 2015-06-14 19:21:13 +02:00
Přemysl Eric Janouch cd394a1f6e degesch: ask for CAP multi-prefix, invite-notify 2015-06-14 18:33:55 +02:00
Přemysl Eric Janouch ee1f4174fd degesch: process INVITE 2015-06-10 22:37:29 +02:00
Přemysl Eric Janouch c673882670 degesch: handle RPL_UMODEIS 2015-06-10 22:15:58 +02:00
Přemysl Eric Janouch 0ddc0458ef degesch: show channel prefixes in PRIVMSG lines 2015-06-07 06:15:31 +02:00
Přemysl Eric Janouch 62845876d5 degesch: shuffle code around 2015-06-07 05:28:57 +02:00
Přemysl Eric Janouch 5bc259e388 degesch: sort modes on change 2015-06-07 05:23:31 +02:00
Přemysl Eric Janouch de2eff7399 degesch: further refactor MODE processing 2015-06-07 05:21:19 +02:00
Přemysl Eric Janouch 2b258007f0 degesch: refactor MODE processing 2015-06-07 04:48:02 +02:00
Přemysl Eric Janouch 9816805ee8 degesch: process user mode changes 2015-06-07 04:20:39 +02:00
Přemysl Eric Janouch 0553ef857f degesch: enable NAMESX if supported by server 2015-06-07 03:43:42 +02:00
Přemysl Eric Janouch 3552b9e1fb degesch: fix memory leak 2015-06-07 01:28:06 +02:00
Přemysl Eric Janouch 394b549926 degesch: print server name in debug output 2015-06-07 01:23:52 +02:00
Přemysl Eric Janouch f8d26c2f18 degesch: fix memory leak 2015-06-07 01:23:52 +02:00
Přemysl Eric Janouch 6d16dbb16d degesch: process RPL_TOPICWHOTIME 2015-06-07 01:23:52 +02:00
Přemysl Eric Janouch 6d720e7a1a degesch: process RPL_CREATIONTIME 2015-06-07 01:23:51 +02:00
Přemysl Eric Janouch e1aa27c90b degesch: parse RPL_CHANNELMODEIS 2015-06-07 00:15:38 +02:00
Přemysl Eric Janouch 7c2fe522ba degesch: fix logging empty QUIT/PART reasons 2015-06-06 23:56:43 +02:00
Přemysl Eric Janouch 671536bfca degesch: request channel mode after joining 2015-06-06 01:24:44 +02:00
Přemysl Eric Janouch a8dc6ad141 degesch: show our own channel modes in prompt 2015-06-06 01:21:27 +02:00
Přemysl Eric Janouch ab15ec0a9a degesch: save the topic from RPL_TOPIC 2015-06-06 01:18:59 +02:00
Přemysl Eric Janouch ac6ee9ea80 degesch: refactor irc_process_names() 2015-06-06 00:44:09 +02:00
Přemysl Eric Janouch f9eddb8ee2 degesch: fix adding user by RPL_NAMREPLY
We didn't create a matching user_channel entry.
2015-06-06 00:29:01 +02:00
Přemysl Eric Janouch 2fe17ae79b degesch: remove users missing from RPL_NAMREPLY 2015-06-06 00:10:20 +02:00
Přemysl Eric Janouch 4bac248c50 degesch: refactoring 2015-06-05 01:17:32 +02:00
Přemysl Eric Janouch 7f57bed563 degesch: correctly update user prefixes 2015-06-05 01:17:32 +02:00
Přemysl Eric Janouch c8aff23ab2 degesch: hack together preliminary MODE parsing 2015-06-05 00:01:05 +02:00
Přemysl Eric Janouch 9b1664f968 degesch: store channel modes differently 2015-06-04 22:19:32 +02:00
Přemysl Eric Janouch b0753438c4 degesch: parse CHANMODES in RPL_ISUPPORT
We're going to need that to parse MODE changes.
2015-06-03 23:17:10 +02:00
Přemysl Eric Janouch 103831e274 degesch: process RPL_NAMREPLY modes properly
Updating information in "channel_user" when needed.
2015-06-03 22:32:18 +02:00
Přemysl Eric Janouch f6da19d5b0 degesch: fix processing RPL_NAMREPLY 2015-06-03 21:53:20 +02:00
Přemysl Eric Janouch f53d1adba8 degesch: show RPL_NAMREPLY contents 2015-06-03 21:53:14 +02:00
Přemysl Eric Janouch 5e4f94c38c degesch: log the channel topic after joining 2015-06-02 23:42:04 +02:00
Přemysl Eric Janouch 458ac8b7c4 degesch: try to log lines in more specific buffers 2015-06-02 23:31:44 +02:00
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