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
f9125c38c0
degesch: prepare for printing to buffers
2015-04-17 22:10:43 +02:00
5b9dadcc58
degesch: leak lines from related buffers
2015-04-17 21:48:56 +02:00
7fed628d58
degesch: inline a condition
2015-04-17 21:44:44 +02:00
61ebbe245b
degesch: factor out make_prompt()
2015-04-17 21:40:08 +02:00
8cb55e81b3
degesch: actually send messages
2015-04-17 21:33:52 +02:00
954a9e127a
degesch: more user command handling
...
It's become obvious that I really, really need to finish printing
to buffer first, as I keep adding new TODO comments.
2015-04-17 21:29:18 +02:00
2d91a27714
degesch: factor out buffer_{previous,next}()
2015-04-17 21:26:08 +02:00
e5b52fcd76
degesch: factor out buffer_get_index()
2015-04-17 21:19:51 +02:00
2d4adaefbf
degesch: enhance the prompt
...
- prepend the buffer's index
- don't show modes if they're empty
- don't show the nick in the global buffer
2015-04-16 21:29:35 +02:00
75b2fc1da2
degesch: factor out buffer_goto()
...
And make M-[0-9] ding if there's no such buffer.
2015-04-16 21:20:25 +02:00
0c96563545
degesch: fix quoting a slash
2015-04-16 20:51:50 +02:00
c421532e6e
degesch: some more progress
...
Whoa, this thing is huge.
Started implementing the basis for IRC and user command handlers.
2015-04-16 01:04:32 +02:00
08c0027397
degesch: more buffer-related stuff
2015-04-15 21:22:01 +02:00
51ca5c79e4
degesch: show active buffers in prompt
2015-04-15 21:22:01 +02:00
23298f3a0e
degesch: fix reading in the configuration
2015-04-15 21:22:01 +02:00
06857c6bbb
degesch: add an error buffer line type
2015-04-15 21:22:01 +02:00
c2c9d4dc58
degesch: update TODO/FIXME comments
2015-04-15 21:22:01 +02:00
ba9e51fb9f
degesch: reorder configuration
2015-04-15 21:22:01 +02:00
92ca2df285
degesch: fix Travis CI build
2015-04-15 02:40:11 +02:00
0114d57a0c
degesch: fix Travis CI build (hopefully)
2015-04-15 02:28:57 +02:00
4a0c774e75
degesch: more GNU Readline work
...
I'm not so sure anymore I will be able to achieve my goals with this library.
It's really a terrible mess. A consistent and neatly formatted terrible mess.
2015-04-15 02:10:21 +02:00
3df841f088
degesch: steady progress
...
I'm sorry, I can't do reasonable commit messages in this stage of development.
It's all a total mess slowly converging to an alpha version.
2015-04-13 00:09:10 +02:00
3864cca21d
degesch: actually do add the client
...
Mostly consists of some ZyklonB and some json-rpc-shell code.
The part that actually makes it an IRC client is still unfinished.
2015-04-12 04:53:29 +02:00