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