Commit Graph

673 Commits

Author SHA1 Message Date
b3876260b9 degesch: make /disconnect abort reconnect timer 2015-07-11 17:54:49 +02:00
0c4b727961 Bump liberty 2015-07-11 17:54:38 +02:00
5692da47be Fix various issues reported by Coverity 2015-07-11 14:48:00 +02:00
4865f91eb0 degesch: add "autoconnect" option for servers 2015-07-11 06:16:53 +02:00
8ed93ae03e degesch: write date change messages earlier 2015-07-11 06:10:46 +02:00
ccc167d120 degesch: print a marker for unread messages 2015-07-11 05:41:39 +02:00
d48adf4557 degesch: log CAP traffic 2015-07-11 05:04:17 +02:00
f2a6c0f299 degesch: log disconnection in all buffers 2015-07-11 04:55:34 +02:00
d27a23a7d6 degesch: sanitize terminal output 2015-07-11 04:55:34 +02:00
e2c0240a84 degesch: move the -d option to configuration 2015-07-11 04:28:34 +02:00
8f587117f7 degesch: add aliases to /help and autocomplete 2015-07-11 03:58:53 +02:00
a24c068a3b degesch: mostly finish /alias sans name checking 2015-07-11 03:29:52 +02:00
b987b2cc64 degesch: add config_item_string_from_cstr() 2015-07-11 03:29:52 +02:00
30252e069d degesch: add an /unalias command 2015-07-11 03:29:52 +02:00
8f1d81eefb degesch: add an option to save config on quit 2015-07-11 03:29:52 +02:00
0a657a0294 degesch: silence compiler warnings 2015-07-11 01:53:04 +02:00
5ddf963e33 degesch: actually avoid recursive aliases 2015-07-11 01:46:11 +02:00
dcb1d2f97b degesch: fix argument checking 2015-07-11 01:44:58 +02:00
5da45877d6 degesch: add /alias that only lists aliases 2015-07-10 01:45:39 +02:00
0fd53af0d1 degesch: factor out get_aliases_config() 2015-07-10 01:44:02 +02:00
c839649551 degesch: add some default aliases 2015-07-10 00:55:13 +02:00
4ddded3512 degesch: print the logo in a buffer 2015-07-10 00:55:13 +02:00
3e17bfb54c degesch: add a first time help 2015-07-10 00:55:13 +02:00
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
445837007d degesch: get rid of partial command name matching 2015-07-09 22:34:42 +02:00
567ce62257 degesch: tiny miscellaneous fixes 2015-07-09 22:34:42 +02:00
ba1ac58d9d degesch: add backend support for aliases 2015-07-09 22:34:42 +02:00
5e7f9882dd degesch: "nickname" -> "nicks"
Now you can specify multiple nicknames to try.
2015-07-09 02:46:31 +02:00
2b2da0beab degesch: support CASEMAPPING=rfc1459-strict 2015-07-09 01:48:34 +02:00
f57cc7923d degesch: clean up irc_handle_irc_isupport() 2015-07-09 01:36:19 +02:00
1ba6db50b6 degesch: split handle_command_help() 2015-07-09 00:10:46 +02:00
f907f1e3dc Add str_cut_until() 2015-07-09 00:10:06 +02:00
d3b1754e14 degesch: introduce transform_str() 2015-07-08 23:15:48 +02:00
aa39445afb Miscellaneous, cleanup
Went through the entire source of degesch and made changes along the way.
2015-07-06 01:54:02 +02:00
096a179e09 degesch: implement /server add 2015-07-05 20:32:48 +02:00
15d3129ea3 degesch: mark all unrecognized config values 2015-07-05 18:26:46 +02:00
ff20e74868 degesch: fix usage of "prompt_shown"
It can go very negative.
2015-07-05 17:29:44 +02:00
550f8baa1a degesch: add "on_change" for behaviour.logging 2015-07-05 17:02:11 +02:00
8c2c0472cb degesch: add some trivial "on_change" callbacks 2015-07-05 16:28:27 +02:00
6de7ae9583 degesch: only apply relevant attributes on change 2015-07-05 16:15:30 +02:00
3a922c3c1a degesch: start using "on_change" notifications
Terminal attributes can be changed on the fly now.
2015-07-05 15:57:53 +02:00
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
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
0ecd297c6f degesch: stubplement /server 2015-07-04 22:28:59 +02:00
bda1239a33 degesch: /buffer close switches to previous buffer
buffer_next() proved too annoying.
2015-07-04 20:04:20 +02:00
990e8d7d94 degesch: optimize buffer_print_backlog()
Apparently readline can be really, really slow at redrawing.
2015-07-04 16:58:25 +02:00
ef2b4d9a01 degesch: flush I/O buffers on disconnect
Discovered thanks to weercd.
2015-07-04 16:37:31 +02:00
4471e0c6cd degesch: periodically flush logs to disk 2015-07-04 15:45:27 +02:00
94d495fbfa degesch: add logging to file 2015-07-04 15:45:27 +02:00
3503b76015 degesch: fix unused variable 2015-07-04 01:46:35 +02:00
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
8a75c2447f degesch: fix memory issue in Readline
We didn't zero out the pointer for entries.
2015-07-04 01:11:27 +02:00
7de1309421 degesch: clean up the async code a bit 2015-07-03 23:40:34 +02:00
2357f1382a degesch: rewrite to use asynchronous I/O 2015-07-03 22:19:12 +02:00
15882dcdf9 degesch: part channel on /buffer close 2015-07-02 20:50:53 +02:00
be10e61c90 degesch: fix /msg with CAP echo-message 2015-06-29 21:39:40 +02:00
2b240b6631 degesch: add a #N format specifier
Fixes RPL_TOPICWHOTIME with some servers.
2015-06-29 08:56:43 +02:00
134e19adf0 degesch: mark an issue with CAP echo-message 2015-06-28 23:01:38 +02:00
fdff5f8c72 degesch: reclaim more memory with Readline 2015-06-28 23:00:46 +02:00
b5d472f0df degesch: clean up log_formatter() 2015-06-28 20:56:45 +02:00
0074b1eda9 degesch: reorder code 2015-06-28 20:48:43 +02:00
3f55693400 degesch: don't put dashes in listings
Just reflecting the behaviour of weechat.
2015-06-28 19:56:05 +02:00
c9b33846cb degesch: add an option to beep on highlight 2015-06-28 19:41:31 +02:00
db6939bd60 degesch: fix /ctcp with CAP echo-message 2015-06-28 17:08:42 +02:00
a1fa9d187e degesch: log self nick changes in server buffer 2015-06-28 16:36:51 +02:00
3e47abdfbb degesch: further logging cleanup 2015-06-28 16:26:51 +02:00
ed349cb1d3 degesch: logging cleanup 2015-06-28 16:16:19 +02:00
02ab0f743b degesch: remove "ctx" from command handler args 2015-06-28 03:00:19 +02:00
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
fafe1fde90 degesch: finish implementation of rehashing
I can only hope it works.
2015-06-23 23:20:03 +02:00
e39bb976cb degesch: partially implement rehashing 2015-06-23 22:10:16 +02:00
63a65f9f7c degesch: stubplement casemapping changes 2015-06-23 21:04:38 +02:00
c3439175d7 degesch: NICK handling cleanup 2015-06-23 21:01:38 +02:00
9603bae003 degesch: fix logging of NICK in PM buffers 2015-06-22 23:07:09 +02:00
c8c1697e20 degesch: final fix for /query
rl_delete_text() didn't fix rl_point.
2015-06-22 23:07:09 +02:00
de019e7832 degesch: fix handling of buffer collisions 2015-06-22 23:07:09 +02:00
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
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
e85c98f315 degesch: implement the rest of buffer merging 2015-06-21 21:50:47 +02:00
ce96be2d5e degesch: show usage on /buffer move failure 2015-06-21 19:52:15 +02:00
b56245cf5b degesch: implement /buffer move 2015-06-21 19:35:35 +02:00
b3a80630aa degesch: change arguments to handle_buffer_close() 2015-06-21 18:39:32 +02:00
85cebbcfa2 degesch: make highlights more obvious
Just the tiniest bit.
2015-06-21 04:00:20 +02:00
1eb38fa5ec degesch: implement /buffer clear
At least somehow.
2015-06-21 03:35:35 +02:00
3c982c7077 degesch: make buffer_send_*() accept a NULL buffer 2015-06-20 23:30:05 +02:00
7bd0eefea8 degesch: fix display of RPL_INVITING 2015-06-20 22:50:28 +02:00
193dd36112 degesch: reset server info on disconnect 2015-06-20 22:42:38 +02:00
974ce75a59 degesch: add support for IRCv3.2 echo-message 2015-06-20 21:38:04 +02:00
935d671a57 degesch: shuffle some code 2015-06-20 21:10:50 +02:00
4970929f1d degesch: fix trivial user command handlers 2015-06-20 20:23:14 +02:00
0875bbfba7 degesch: further cleanups 2015-06-20 20:13:37 +02:00
eaecdda614 degesch: fix invalid free() 2015-06-20 19:53:18 +02:00
390b283233 degesch: refactor user command handling
This was long overdue.
2015-06-20 19:51:14 +02:00
b55494c68f degesch: further cleanups 2015-06-19 23:09:46 +02:00
5be1cad4da degesch: get rid of some repeating code 2015-06-19 22:54:10 +02:00
690e29c78e degesch: fix /join, /part, /cycle
Cycle now remembers the channel key.
2015-06-19 22:26:54 +02:00
86f4578d12 degesch: allow specifying server in /disconnect 2015-06-19 20:47:37 +02:00
1c1cffa6eb degesch: update user command usages and comments 2015-06-18 22:47:56 +02:00
8eb31ad2e1 degesch: fix /invite 2015-06-18 22:35:14 +02:00
bdad7bd7c2 degesch: fix /whois, /whowas 2015-06-18 22:05:32 +02:00
088009d16b degesch: fix /mode after breaking it
The clean up was a bit thoughtless.
2015-06-18 22:02:51 +02:00
27ef5c2ea3 degesch: fix /ban, add /unban 2015-06-18 21:21:49 +02:00
782bc85336 degesch: fix /kickban 2015-06-18 08:47:52 +02:00
5a3b8f8eee degesch: fix sending the reason in /kick 2015-06-18 08:40:44 +02:00
87a44fb807 degesch: cleanup 2015-06-18 08:34:37 +02:00
2261db4caa degesch: fix /mode to work for user modes 2015-06-18 08:07:25 +02:00
a0b98720b9 degesch: fix /mode on servers with +channels 2015-06-17 23:16:44 +02:00
9027889002 degesch: add /op, /deop, /voice, /devoice 2015-06-17 21:34:56 +02:00
178c1b072a degesch: parse MODES from RPL_ISUPPORT 2015-06-17 21:34:56 +02:00
e2a3b48114 degesch: add /stats 2015-06-17 20:29:17 +02:00
7dbec0d273 degesch: fix highlights 2015-06-16 21:48:35 +02:00
e43ffb538e degesch: fix SOCKS failure handling 2015-06-14 19:21:13 +02:00
cd394a1f6e degesch: ask for CAP multi-prefix, invite-notify 2015-06-14 18:33:55 +02:00
ee1f4174fd degesch: process INVITE 2015-06-10 22:37:29 +02:00
c673882670 degesch: handle RPL_UMODEIS 2015-06-10 22:15:58 +02:00
0ddc0458ef degesch: show channel prefixes in PRIVMSG lines 2015-06-07 06:15:31 +02:00
62845876d5 degesch: shuffle code around 2015-06-07 05:28:57 +02:00
5bc259e388 degesch: sort modes on change 2015-06-07 05:23:31 +02:00
de2eff7399 degesch: further refactor MODE processing 2015-06-07 05:21:19 +02:00
2b258007f0 degesch: refactor MODE processing 2015-06-07 04:48:02 +02:00
9816805ee8 degesch: process user mode changes 2015-06-07 04:20:39 +02:00
0553ef857f degesch: enable NAMESX if supported by server 2015-06-07 03:43:42 +02:00
3552b9e1fb degesch: fix memory leak 2015-06-07 01:28:06 +02:00
394b549926 degesch: print server name in debug output 2015-06-07 01:23:52 +02:00
f8d26c2f18 degesch: fix memory leak 2015-06-07 01:23:52 +02:00
6d16dbb16d degesch: process RPL_TOPICWHOTIME 2015-06-07 01:23:52 +02:00
6d720e7a1a degesch: process RPL_CREATIONTIME 2015-06-07 01:23:51 +02:00
e1aa27c90b degesch: parse RPL_CHANNELMODEIS 2015-06-07 00:15:38 +02:00
7c2fe522ba degesch: fix logging empty QUIT/PART reasons 2015-06-06 23:56:43 +02:00
671536bfca degesch: request channel mode after joining 2015-06-06 01:24:44 +02:00
a8dc6ad141 degesch: show our own channel modes in prompt 2015-06-06 01:21:27 +02:00
ab15ec0a9a degesch: save the topic from RPL_TOPIC 2015-06-06 01:18:59 +02:00
ac6ee9ea80 degesch: refactor irc_process_names() 2015-06-06 00:44:09 +02:00
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
2fe17ae79b degesch: remove users missing from RPL_NAMREPLY 2015-06-06 00:10:20 +02:00
4bac248c50 degesch: refactoring 2015-06-05 01:17:32 +02:00
7f57bed563 degesch: correctly update user prefixes 2015-06-05 01:17:32 +02:00
c8aff23ab2 degesch: hack together preliminary MODE parsing 2015-06-05 00:01:05 +02:00
9b1664f968 degesch: store channel modes differently 2015-06-04 22:19:32 +02:00
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
103831e274 degesch: process RPL_NAMREPLY modes properly
Updating information in "channel_user" when needed.
2015-06-03 22:32:18 +02:00
f6da19d5b0 degesch: fix processing RPL_NAMREPLY 2015-06-03 21:53:20 +02:00
f53d1adba8 degesch: show RPL_NAMREPLY contents 2015-06-03 21:53:14 +02:00
5e4f94c38c degesch: log the channel topic after joining 2015-06-02 23:42:04 +02:00
458ac8b7c4 degesch: try to log lines in more specific buffers 2015-06-02 23:31:44 +02:00
4dd2a80ba2 degesch: cleanup wrt. quitting 2015-06-02 22:36:22 +02:00
897bb00af1 degesch: add & use strncasecmp_ascii() 2015-06-02 21:28:41 +02:00
a6782e5e60 degesch: clean up complete_nicknames()
Using new irc_server_strncmp() instead of fnmatch().
2015-06-02 21:05:27 +02:00
00a8b6616f degesch: add & use irc_server_strcmp() 2015-06-02 20:46:40 +02:00
57413d53a4 degesch: fix typo 2015-06-01 21:48:31 +02:00
0757ce424c degesch: make use of values from RPL_ISUPPORT 2015-06-01 21:48:30 +02:00
328ffd024a degesch: don't compare buffer names using rfc1459 2015-06-01 21:48:30 +02:00
2242724c34 degesch: parse more of RPL_ISUPPORT 2015-06-01 21:48:30 +02:00
3c32558a42 degesch: properly unescape RPL_ISUPPORT values 2015-05-30 22:34:09 +02:00
0b91604acd degesch: some basic RPL_ISUPPORT parsing 2015-05-25 22:54:04 +02:00
36185ddeee degesch: actually update the list of channel users 2015-05-25 08:23:08 +02:00
11977cb0b0 degesch: halfplement RPL_NAMES processing 2015-05-24 21:56:46 +02:00
3ed519c1c5 degesch: fix crash in the logger
Invalid arguments for the format string.
2015-05-23 19:41:44 +02:00
ca36726bf7 degesch: parse and use RPL_USERHOST 2015-05-22 22:13:28 +02:00
b0dbc34f9a degesch: show mode changes 2015-05-21 19:59:37 +02:00
0260fcd02e degesch: add support for server passwords 2015-05-20 21:18:15 +02:00
4016c387f8 degesch: naively implement the unimplemented 2015-05-19 21:03:45 +02:00
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
f2ab9f3937 degesch: implement /cycle 2015-05-17 16:43:58 +02:00
02160c897a degesch: fix sending the reason in /part 2015-05-17 16:23:32 +02:00
87352b33d0 degesch: don't cache reconnect configuration
Also make sure the delay isn't negative.
2015-05-16 12:45:39 +02:00
c2c82d20dd degesch: avoid crashing on null user info 2015-05-16 12:39:30 +02:00
ca8540e217 degesch: more multiserver preparations
Almost done now.
2015-05-16 12:33:59 +02:00
bedbadd396 degesch: fix typo 2015-05-16 09:48:57 +02:00
634d960c8d degesch: unindent some code 2015-05-16 09:40:02 +02:00
25d3f6e44a degesch: prepare buffers for multiserver
By making them unique among all servers.
2015-05-15 20:05:27 +02:00
76b0c13adc degesch: actually use buffer_add() 2015-05-15 19:49:25 +02:00
14df801f53 degesch: allow /quote when not registered 2015-05-15 07:17:08 +02:00
30191c76c8 degesch: rework registration
Also fixed the annoying reconnect bug.
2015-05-15 05:54:03 +02:00
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
489a5fa552 degesch: factor out irc_get_or_make_user() 2015-05-15 05:43:59 +02:00
d41e3499c9 degesch: prevent playing with unknown options 2015-05-14 06:45:24 +02:00
a77ab689eb degesch: irc_{host,port} -> addresses
Now you can finally specify multiple addresses to connect to.
2015-05-14 06:25:34 +02:00
c5b38842bf degesch: input_set_prompt() can be called whenever 2015-05-12 07:09:20 +02:00
24546dd724 degesch: refresh prompt on dis/connection 2015-05-12 07:02:14 +02:00
ec52850c7c degesch: remove an outdated TODO comment 2015-05-12 06:53:45 +02:00
5b4513ba65 Silence GCC 2015-05-12 05:45:20 +02:00
e4cbd6cf3f degesch: now we do formatting with M-m 2015-05-12 03:51:37 +02:00
06a24bd252 degesch: add a FIXME 2015-05-12 02:59:07 +02:00
2ac685f2a6 degesch: actually support mIRC italics 2015-05-12 02:55:03 +02:00
24159e0214 degesch: fix mIRC color parsing 2015-05-12 02:48:12 +02:00
2d040cae73 degesch: color cleanup 2015-05-12 02:43:53 +02:00
b5a7ea63c2 degesch: make mIRC formatting actually work 2015-05-11 19:09:42 +02:00
1a24ab7085 degesch: fix a typical signed char problem 2015-05-10 23:11:43 +02:00
502bb26f29 degesch: formatter: simplifications 2015-05-10 23:06:19 +02:00
6deb471423 degesch: halfplement mIRC formatting
Now for the displaying part.
2015-05-10 09:55:44 +02:00
095a2cc16a degesch: fix a stupid segfault 2015-05-10 06:44:34 +02:00
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
0a990ad6f7 degesch: add a way to output mIRC formatting 2015-05-10 02:12:39 +02:00
00b91976b0 degesch: fix QUIT message on C-c 2015-05-10 01:49:26 +02:00
1bbfcbe993 degesch: be a bit less leaky with readline
It spams valgrind.
2015-05-10 00:27:41 +02:00
7c9a1f50da degesch: add nickname autocompletion 2015-05-10 00:23:23 +02:00
2ef7323f26 Fix completion_add_word() 2015-05-10 00:22:49 +02:00
e859693bf2 degesch: review todo items 2015-05-10 00:09:05 +02:00
d05b610636 degesch: remove people from channels when leaving 2015-05-09 23:50:44 +02:00
c52f353894 degesch: implement /disconnect
One bug remaining to make it work.
2015-05-09 23:30:04 +02:00
e3b14e7d36 degesch: fix irc_is_connected()
We've added a new state.
2015-05-09 23:15:24 +02:00
0df9892391 degesch: /connect restarts if already connecting 2015-05-09 23:14:07 +02:00
5b9e263ca7 degesch: improve /help display 2015-05-09 23:08:30 +02:00
789db85915 degesch: add command placeholders 2015-05-09 23:07:48 +02:00
ad4ebc2101 degesch: fix crash when idle 2015-05-09 23:06:19 +02:00
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
19b2eda70e degesch: more shuffling 2015-05-09 06:11:36 +02:00
699636d9a2 degesch: shuffle some code 2015-05-09 06:00:40 +02:00
29db258102 degesch: don't export schemas (make them static) 2015-05-08 23:27:21 +02:00
9a02c90e3e degesch: add server::state, rename stuff
This is in preparation of asynchronous connects.
2015-05-08 17:39:26 +02:00
6414a73d62 degesch: factor out jump_to_buffer() 2015-05-08 07:46:32 +02:00
0b1e4cc41d degesch: better comment 2015-05-08 06:35:45 +02:00
0bdf76edc5 degesch: clean up key binding initialization 2015-05-08 06:23:38 +02:00
cc505090d4 degesch: customize C-l behaviour
Reprint the backlog.
2015-05-08 05:03:36 +02:00
bdbc4b33f0 degesch: prevent segfault on exit with libedit 2015-05-08 04:31:14 +02:00
7636ebb149 degesch: add a fancy logo
It's all about the looks, man.
2015-05-07 22:55:11 +02:00
30c58eede9 degesch: bind F5/F6 to previous/next buffer 2015-05-07 19:48:10 +02:00
2c95c406f4 degesch: colour the user@host part 2015-05-07 19:39:02 +02:00
a15a48ac25 degesch: a bit of cleanup 2015-05-07 18:39:43 +02:00
5271bfb1ee degesch: fix utf8_common-prefix() 2015-05-07 18:27:02 +02:00
772e0d0870 Bump liberty 2015-05-07 08:36:22 +02:00
ae91f9047d degesch: fix more libedit weirdness 2015-05-07 07:52:12 +02:00
715def6555 degesch: fix option completion 2015-05-07 07:47:58 +02:00
e3f1bcecae degesch: further libedit cleanup 2015-05-07 07:40:58 +02:00
85baf5ecec degesch: little libedit details 2015-05-07 07:23:11 +02:00
1d7903ae03 degesch: implement some autocompletion 2015-05-07 06:37:50 +02:00
4ecf8d90da degesch: halfplement word completion
This was a bit painful.
2015-05-07 05:19:13 +02:00
4f5d171799 degesch: add constant for word breaking characters 2015-05-06 22:20:02 +02:00
894c45bef4 degesch: fix readline initialization 2015-05-06 22:01:48 +02:00
06ec2a1388 degesch: stub word completion 2015-05-06 17:32:29 +02:00
99526126e4 degesch: fix libedit initialization 2015-05-05 22:35:51 +02:00
e542aa5acc degesch: some libedit fixes 2015-05-05 20:18:41 +02:00
fa0ee9d65b degesch: better section dividers in soure code
And remove an extra function declaration.
2015-05-05 19:37:17 +02:00
a5a1079a9c degesch: add support for libedit
Just another kind of evil.
2015-05-05 08:54:55 +02:00
53894e3909 degesch: fix a brutal bug 2015-05-05 05:15:08 +02:00
8574c7f450 degesch: further decoupling from Readline 2015-05-05 03:42:40 +02:00
87843f47e4 degesch: try to abstract GNU Readline 2015-05-05 03:23:53 +02:00
87afccc568 degesch: fix the /set command
An extra cut_word() fucked things up.
2015-05-04 02:26:59 +02:00
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
c9a02141f9 degesch: move some code to common.c 2015-05-04 02:17:55 +02:00
56a67d56e0 degesch: add a /connect command 2015-05-03 20:03:21 +02:00
72e5aeba58 degesch: implement /save
Fuck yes. :)
2015-05-03 19:34:48 +02:00
134a627130 degesch: finish /set
One bug remaining to make it work.
2015-05-03 19:26:39 +02:00
1e3a273690 degesch: refactor handle_command_set_assign() 2015-05-03 19:26:39 +02:00
3b5c3c3b4e degesch: implement /set += / -= 2015-05-03 18:40:51 +02:00
4841ba5bd0 degesch: halfplement option assignment 2015-05-03 17:38:58 +02:00
373f6333ef degesch: refactor /help, fix segfault
Forgot to check if the item has a schema.
2015-05-03 16:47:31 +02:00
4928f9ed62 degesch: add a read-only /set command 2015-05-03 16:47:16 +02:00
e000a6b495 degesch: fix segfault 2015-05-03 06:20:36 +02:00
f308b3fb5d degesch: show help for program options 2015-05-03 05:58:56 +02:00
1019cc69b2 degesch: don't queue reconnects on bogus config 2015-05-03 00:13:36 +02:00
b31104784c degesch: connect _after_ starting the UI 2015-05-03 00:13:36 +02:00
6d0fff6a71 degesch: don't require configuration to run
Well, techincally.
2015-05-03 00:13:36 +02:00
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
7e42399ad0 degesch; user color constants from curses 2015-05-02 20:23:02 +02:00
852c2ac158 Move some macros to common.c 2015-05-02 03:43:29 +02:00
57f052a2be Get rid of "All rights reserved" 2015-05-01 23:41:22 +02:00
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
37fa19f4c9 Rename project to uirc3 2015-04-30 01:39:08 +02:00
950f052d1b degesch: refactor for multiserver
Just some basic preparations before it becomes too costly.
2015-04-30 00:02:14 +02:00
b95b916c37 degesch: further unfucking 2015-04-29 21:43:31 +02:00
101ab90100 degesch: unfuck terminal attribute handling 2015-04-29 20:56:26 +02:00
21656d462f degesch: mark some issues 2015-04-28 23:41:13 +02:00
507d444e0d degesch: fix 8-bit input 2015-04-28 23:40:49 +02:00
1ff56bfe5a degesch: simplify formatter_flush() 2015-04-28 23:40:49 +02:00
4013921de7 degesch: add a /nick command
Somehow I've missed it entirely.
2015-04-27 23:06:20 +02:00
6f890c0388 degesch: fix typo 2015-04-27 23:02:15 +02:00
0cb50addbe degesch: make sure "You are now known..." works 2015-04-27 22:59:23 +02:00
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
cdb1d81982 degesch: detect highlights and display differently 2015-04-27 22:40:33 +02:00
87c1775129 degesch: imlement NOTICE handling 2015-04-27 21:52:16 +02:00
6003cc7138 degesch: log outcoming CTCPs 2015-04-27 01:47:21 +02:00
2f6974c7ca degesch: reply to some CTCPs 2015-04-27 01:36:33 +02:00
5ad6d7cfbc degesch: implement /me 2015-04-26 23:32:57 +02:00
21b8e8e539 degesch: implement /list 2015-04-26 23:06:19 +02:00
54262e2d20 degesch: implement /ctcp, stubplement /me 2015-04-26 22:53:38 +02:00
a66bf15e67 degesch: process CTCP in PRIVMSG
Finally we can display /me.
2015-04-26 22:31:07 +02:00
9e548889c7 degesch: add a CTCP parser 2015-04-26 22:30:44 +02:00
e734190979 degesch: set the server buffer as default 2015-04-26 18:59:58 +02:00
b7d6933be6 degesch: brevify /help with no arguments 2015-04-26 18:58:39 +02:00
224073d3b2 degesch: distinguish lines from other buffers 2015-04-26 18:39:38 +02:00
950d64d229 degesch: little fixes 2015-04-26 18:24:19 +02:00
864be7cfc5 degesch: add output text formatting 2015-04-26 18:23:43 +02:00
4393e48145 degesch: encoding fixes
Shouldn't be totally broken anymore.
2015-04-25 14:53:29 +02:00
c38dfced51 degesch: refactor logging a bit 2015-04-25 13:41:10 +02:00
a75fc35295 degesch: refactor handle_command_buffer() a bit 2015-04-25 02:41:52 +02:00
0141bef3cd degesch: print an extra line in /buffer list 2015-04-25 02:09:58 +02:00
40510e26c3 degesch: fix warnings 2015-04-25 02:09:42 +02:00
29da71800a degesch: finish the /help command 2015-04-25 02:08:14 +02:00
05d21e8f3d degesch: print usage on command syntax failure 2015-04-25 01:49:34 +02:00
b2cfbf1501 degesch: refactor wrap_text()
It wasn't very readable.
2015-04-25 01:35:24 +02:00
6ef472beb2 degesch: remove cyclic dependency
Between users and channels.
2015-04-25 00:53:07 +02:00
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
a4d3023874 degesch: fix a double-free 2015-04-24 22:50:53 +02:00
d4413627e6 degesch: better & working text wrapping
Now we respect word boundaries.
2015-04-24 22:34:44 +02:00
2a0dcc2add degesch: fix RPL_WELCOME user@host parsing 2015-04-24 22:33:23 +02:00
dd8bb4c206 degesch: less confusing function name 2015-04-23 03:10:34 +02:00
cc6e9306e6 degesch: refactor command handlers 2015-04-23 03:07:48 +02:00
15032f9ce7 degesch: fix /query 2015-04-23 03:00:19 +02:00
20c36b4b36 degesch: non-functional changes 2015-04-23 02:59:58 +02:00
c088f081d7 degesch: halfplement /msg, /query, /notice
Which involved some refactoring.
2015-04-23 02:48:25 +02:00
2633eda69a degesch: better message autosplit 2015-04-23 00:15:01 +02:00
53b46482f5 degesch: preliminary message autosplitting 2015-04-22 22:41:01 +02:00
f2a2206e49 degesch: parse user@host from RPL_WELCOME 2015-04-22 21:59:50 +02:00
a7ccdc78be degesch: add a note about RPL_ISUPPORT 2015-04-21 22:34:16 +02:00
295e4c8bf9 degesch: preparations for numerics processing 2015-04-21 22:08:18 +02:00
e937ac12d5 degesch: remove extraneous function argument 2015-04-21 21:55:34 +02:00
d0b7545f1e degesch: implement TOPIC handling 2015-04-21 21:47:34 +02:00
9c0f0c0e33 degesch: don't require channels to have buffers 2015-04-21 21:36:59 +02:00
e8e039c11c degesch: non-functional changes 2015-04-21 21:36:44 +02:00
883e777bac degesch: implement PART and KICK handlers 2015-04-21 21:36:16 +02:00
69582c9e14 degesch: shorten/dedup init_colors() 2015-04-21 20:52:41 +02:00
c69c8048b4 degesch: fix a potential SIGSEGV 2015-04-21 00:40:30 +02:00
5632eecd42 degesch: get rid of repeating refcounting code
Macros aren't exactly spectacular but they work.
2015-04-21 00:29:07 +02:00
635c28820d degesch: fix logging a bit
It needs a rewrite.
2015-04-21 00:09:06 +02:00
0a87e43aff degesch: unfuck reference counting
We really needed weak references for the name map.
2015-04-21 00:04:34 +02:00
3cfe01e3a7 degesch: fix some object management 2015-04-20 23:37:34 +02:00
c5695a5f6d degesch: fix SIGSEGV on /quit 2015-04-20 23:09:13 +02:00
5ad6581c57 degesch: halfplement PART handling
Tired.  This thing is enormous.
2015-04-20 23:03:52 +02:00
590fc6cf26 degesch: mostly implement NICK handling
Except for the corner case where two buffers merge.
2015-04-20 22:53:31 +02:00
3fa9a67a59 degesch: make a "struct user" for ourselves 2015-04-20 22:09:56 +02:00
a43051132a degesch: log nick changes 2015-04-20 21:56:32 +02:00
b8bfcfde7c degesch: finish QUIT handling 2015-04-20 21:49:46 +02:00
8e7412eb97 degesch: halfplement NICK and QUIT handlers 2015-04-20 00:08:18 +02:00
8b279dde81 degesch: disallow /quote from the global buffer 2015-04-19 23:09:01 +02:00
10f1575677 degesch: fix creation of encoding converters 2015-04-19 23:07:23 +02:00
d01618ceb7 degesch: fix logging 2015-04-19 23:05:49 +02:00
158f188646 degesch: fix "irc_nickname" and send USERHOST 2015-04-19 22:49:03 +02:00
51415c1db6 degesch: factor out send_message_to_target()
And check that we're actually connected.
2015-04-19 22:26:30 +02:00
953bc72e2b degesch: implement PRIVMSG handling 2015-04-19 22:19:52 +02:00
56ae38b19a degesch: implement JOIN handling 2015-04-19 22:19:26 +02:00
63d01191b6 degesch: fix sending messages
Now that the data model has changed.
2015-04-19 21:34:52 +02:00
c3d96a8b2d degesch: add some comments 2015-04-19 21:34:33 +02:00
c946c46f1f degesch: implement /join and /part 2015-04-19 21:34:11 +02:00
392c2e7a5f degesch: fix struct channel_user
A user can have multiple channel modes.
2015-04-19 21:33:13 +02:00
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
8c38b1b9b8 degesch: some non-functional changes 2015-04-18 22:09:05 +02:00
da472bc4f6 degesch: count unseen messages 2015-04-18 21:50:42 +02:00
14077ff209 degesch: capitalize buffer messages
They looked too alien.
2015-04-18 17:51:28 +02:00
3bf1ffa559 degesch: fix some remaining print_*() 2015-04-18 17:50:56 +02:00
cbda184461 degesch: fix binding Meta keys
At last.
2015-04-18 17:34:35 +02:00
5dbd6eaa7e degesch: print out some basic help 2015-04-18 17:19:56 +02:00
e65b38bff9 degesch: readline cleanup 2015-04-18 16:10:11 +02:00
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
869781c33a degesch: make it work to some extent
GNU Readline still ignores our Meta keyseqs.
2015-04-18 03:25:10 +02:00
583262ae67 degesch: printing to buffers etc. 2015-04-17 23:28:16 +02:00
511c56d2fc degesch: stub IRC command handlers 2015-04-17 22:53:35 +02:00
0d63e59beb degesch: add irc_to_utf8()
And use it.
2015-04-17 22:22:46 +02:00
6c4e7f8fdc degesch: fix irc_process_message() 2015-04-17 22:11:36 +02:00