Přemysl Eric Janouch
ad4ebc2101
degesch: fix crash when idle
2015-05-09 23:06:19 +02:00
Přemysl Eric Janouch
2eda3110b3
degesch: asynchronous connecting etc.
...
I'm sorry, couldn't keep the diff small.
All the ZyklonB heritage code is shit anyway.
2015-05-09 22:14:02 +02:00
Přemysl Eric Janouch
19b2eda70e
degesch: more shuffling
2015-05-09 06:11:36 +02:00
Přemysl Eric Janouch
699636d9a2
degesch: shuffle some code
2015-05-09 06:00:40 +02:00
Přemysl Eric Janouch
29db258102
degesch: don't export schemas (make them static)
2015-05-08 23:27:21 +02:00
Přemysl Eric Janouch
9a02c90e3e
degesch: add server::state, rename stuff
...
This is in preparation of asynchronous connects.
2015-05-08 17:39:26 +02:00
Přemysl Eric Janouch
6414a73d62
degesch: factor out jump_to_buffer()
2015-05-08 07:46:32 +02:00
Přemysl Eric Janouch
0b1e4cc41d
degesch: better comment
2015-05-08 06:35:45 +02:00
Přemysl Eric Janouch
0bdf76edc5
degesch: clean up key binding initialization
2015-05-08 06:23:38 +02:00
Přemysl Eric Janouch
cc505090d4
degesch: customize C-l behaviour
...
Reprint the backlog.
2015-05-08 05:03:36 +02:00
Přemysl Eric Janouch
bdbc4b33f0
degesch: prevent segfault on exit with libedit
2015-05-08 04:31:14 +02:00
Přemysl Eric Janouch
7636ebb149
degesch: add a fancy logo
...
It's all about the looks, man.
2015-05-07 22:55:11 +02:00
Přemysl Eric Janouch
30c58eede9
degesch: bind F5/F6 to previous/next buffer
2015-05-07 19:48:10 +02:00
Přemysl Eric Janouch
2c95c406f4
degesch: colour the user@host part
2015-05-07 19:39:02 +02:00
Přemysl Eric Janouch
a15a48ac25
degesch: a bit of cleanup
2015-05-07 18:39:43 +02:00
Přemysl Eric Janouch
5271bfb1ee
degesch: fix utf8_common-prefix()
2015-05-07 18:27:02 +02:00
Přemysl Eric Janouch
772e0d0870
Bump liberty
2015-05-07 08:36:22 +02:00
Přemysl Eric Janouch
ae91f9047d
degesch: fix more libedit weirdness
2015-05-07 07:52:12 +02:00
Přemysl Eric Janouch
715def6555
degesch: fix option completion
2015-05-07 07:47:58 +02:00
Přemysl Eric Janouch
e3f1bcecae
degesch: further libedit cleanup
2015-05-07 07:40:58 +02:00
Přemysl Eric Janouch
85baf5ecec
degesch: little libedit details
2015-05-07 07:23:11 +02:00
Přemysl Eric Janouch
1d7903ae03
degesch: implement some autocompletion
2015-05-07 06:37:50 +02:00
Přemysl Eric Janouch
4ecf8d90da
degesch: halfplement word completion
...
This was a bit painful.
2015-05-07 05:19:13 +02:00
Přemysl Eric Janouch
4f5d171799
degesch: add constant for word breaking characters
2015-05-06 22:20:02 +02:00
Přemysl Eric Janouch
894c45bef4
degesch: fix readline initialization
2015-05-06 22:01:48 +02:00
Přemysl Eric Janouch
06ec2a1388
degesch: stub word completion
2015-05-06 17:32:29 +02:00
Přemysl Eric Janouch
99526126e4
degesch: fix libedit initialization
2015-05-05 22:35:51 +02:00
Přemysl Eric Janouch
e542aa5acc
degesch: some libedit fixes
2015-05-05 20:18:41 +02:00
Přemysl Eric Janouch
fa0ee9d65b
degesch: better section dividers in soure code
...
And remove an extra function declaration.
2015-05-05 19:37:17 +02:00
Přemysl Eric Janouch
a5a1079a9c
degesch: add support for libedit
...
Just another kind of evil.
2015-05-05 08:54:55 +02:00
Přemysl Eric Janouch
53894e3909
degesch: fix a brutal bug
2015-05-05 05:15:08 +02:00
Přemysl Eric Janouch
8574c7f450
degesch: further decoupling from Readline
2015-05-05 03:42:40 +02:00
Přemysl Eric Janouch
87843f47e4
degesch: try to abstract GNU Readline
2015-05-05 03:23:53 +02:00
Přemysl Eric Janouch
87afccc568
degesch: fix the /set command
...
An extra cut_word() fucked things up.
2015-05-04 02:26:59 +02:00
Přemysl Eric Janouch
8e4a16af3a
degesch: force a non-empty realname
...
At least a space seems to be needed with some ircds.
2015-05-04 02:25:33 +02:00
Přemysl Eric Janouch
c9a02141f9
degesch: move some code to common.c
2015-05-04 02:17:55 +02:00
Přemysl Eric Janouch
56a67d56e0
degesch: add a /connect command
2015-05-03 20:03:21 +02:00
Přemysl Eric Janouch
72e5aeba58
degesch: implement /save
...
Fuck yes. :)
2015-05-03 19:34:48 +02:00
Přemysl Eric Janouch
134a627130
degesch: finish /set
...
One bug remaining to make it work.
2015-05-03 19:26:39 +02:00
Přemysl Eric Janouch
1e3a273690
degesch: refactor handle_command_set_assign()
2015-05-03 19:26:39 +02:00
Přemysl Eric Janouch
3b5c3c3b4e
degesch: implement /set += / -=
2015-05-03 18:40:51 +02:00
Přemysl Eric Janouch
4841ba5bd0
degesch: halfplement option assignment
2015-05-03 17:38:58 +02:00
Přemysl Eric Janouch
373f6333ef
degesch: refactor /help, fix segfault
...
Forgot to check if the item has a schema.
2015-05-03 16:47:31 +02:00
Přemysl Eric Janouch
4928f9ed62
degesch: add a read-only /set command
2015-05-03 16:47:16 +02:00
Přemysl Eric Janouch
e000a6b495
degesch: fix segfault
2015-05-03 06:20:36 +02:00
Přemysl Eric Janouch
f308b3fb5d
degesch: show help for program options
2015-05-03 05:58:56 +02:00
Přemysl Eric Janouch
1019cc69b2
degesch: don't queue reconnects on bogus config
2015-05-03 00:13:36 +02:00
Přemysl Eric Janouch
b31104784c
degesch: connect _after_ starting the UI
2015-05-03 00:13:36 +02:00
Přemysl Eric Janouch
6d0fff6a71
degesch: don't require configuration to run
...
Well, techincally.
2015-05-03 00:13:36 +02:00
Přemysl Eric Janouch
c23898166c
degesch: use the new configuration
...
This is a simple, almost 1:1 conversion. Needs further unfucking.
2015-05-02 23:06:19 +02:00
Přemysl Eric Janouch
7e42399ad0
degesch; user color constants from curses
2015-05-02 20:23:02 +02:00
Přemysl Eric Janouch
852c2ac158
Move some macros to common.c
2015-05-02 03:43:29 +02:00
Přemysl Eric Janouch
57f052a2be
Get rid of "All rights reserved"
2015-05-01 23:41:22 +02:00
Přemysl Eric Janouch
6bf57d3450
Start writing a new configuration system
...
For degesch but in the long term for the rest as well.
2015-05-01 17:33:10 +02:00
Přemysl Eric Janouch
37fa19f4c9
Rename project to uirc3
2015-04-30 01:39:08 +02:00
Přemysl Eric Janouch
950f052d1b
degesch: refactor for multiserver
...
Just some basic preparations before it becomes too costly.
2015-04-30 00:02:14 +02:00
Přemysl Eric Janouch
b95b916c37
degesch: further unfucking
2015-04-29 21:43:31 +02:00
Přemysl Eric Janouch
101ab90100
degesch: unfuck terminal attribute handling
2015-04-29 20:56:26 +02:00
Přemysl Eric Janouch
21656d462f
degesch: mark some issues
2015-04-28 23:41:13 +02:00
Přemysl Eric Janouch
507d444e0d
degesch: fix 8-bit input
2015-04-28 23:40:49 +02:00
Přemysl Eric Janouch
1ff56bfe5a
degesch: simplify formatter_flush()
2015-04-28 23:40:49 +02:00
Přemysl Eric Janouch
4013921de7
degesch: add a /nick command
...
Somehow I've missed it entirely.
2015-04-27 23:06:20 +02:00
Přemysl Eric Janouch
6f890c0388
degesch: fix typo
2015-04-27 23:02:15 +02:00
Přemysl Eric Janouch
0cb50addbe
degesch: make sure "You are now known..." works
2015-04-27 22:59:23 +02:00
Přemysl Eric Janouch
412cad9328
degesch: add fast buffer switching
...
When the user tries to M-n the same buffer, it switches to the last.
2015-04-27 22:51:40 +02:00
Přemysl Eric Janouch
cdb1d81982
degesch: detect highlights and display differently
2015-04-27 22:40:33 +02:00
Přemysl Eric Janouch
87c1775129
degesch: imlement NOTICE handling
2015-04-27 21:52:16 +02:00
Přemysl Eric Janouch
6003cc7138
degesch: log outcoming CTCPs
2015-04-27 01:47:21 +02:00
Přemysl Eric Janouch
2f6974c7ca
degesch: reply to some CTCPs
2015-04-27 01:36:33 +02:00
Přemysl Eric Janouch
5ad6d7cfbc
degesch: implement /me
2015-04-26 23:32:57 +02:00
Přemysl Eric Janouch
21b8e8e539
degesch: implement /list
2015-04-26 23:06:19 +02:00
Přemysl Eric Janouch
54262e2d20
degesch: implement /ctcp, stubplement /me
2015-04-26 22:53:38 +02:00
Přemysl Eric Janouch
a66bf15e67
degesch: process CTCP in PRIVMSG
...
Finally we can display /me.
2015-04-26 22:31:07 +02:00
Přemysl Eric Janouch
9e548889c7
degesch: add a CTCP parser
2015-04-26 22:30:44 +02:00
Přemysl Eric Janouch
e734190979
degesch: set the server buffer as default
2015-04-26 18:59:58 +02:00
Přemysl Eric Janouch
b7d6933be6
degesch: brevify /help with no arguments
2015-04-26 18:58:39 +02:00
Přemysl Eric Janouch
224073d3b2
degesch: distinguish lines from other buffers
2015-04-26 18:39:38 +02:00
Přemysl Eric Janouch
950d64d229
degesch: little fixes
2015-04-26 18:24:19 +02:00
Přemysl Eric Janouch
864be7cfc5
degesch: add output text formatting
2015-04-26 18:23:43 +02:00
Přemysl Eric Janouch
4393e48145
degesch: encoding fixes
...
Shouldn't be totally broken anymore.
2015-04-25 14:53:29 +02:00
Přemysl Eric Janouch
c38dfced51
degesch: refactor logging a bit
2015-04-25 13:41:10 +02:00
Přemysl Eric Janouch
a75fc35295
degesch: refactor handle_command_buffer() a bit
2015-04-25 02:41:52 +02:00
Přemysl Eric Janouch
0141bef3cd
degesch: print an extra line in /buffer list
2015-04-25 02:09:58 +02:00
Přemysl Eric Janouch
40510e26c3
degesch: fix warnings
2015-04-25 02:09:42 +02:00
Přemysl Eric Janouch
29da71800a
degesch: finish the /help command
2015-04-25 02:08:14 +02:00
Přemysl Eric Janouch
05d21e8f3d
degesch: print usage on command syntax failure
2015-04-25 01:49:34 +02:00
Přemysl Eric Janouch
b2cfbf1501
degesch: refactor wrap_text()
...
It wasn't very readable.
2015-04-25 01:35:24 +02:00
Přemysl Eric Janouch
6ef472beb2
degesch: remove cyclic dependency
...
Between users and channels.
2015-04-25 00:53:07 +02:00
Přemysl Eric Janouch
7c2085d528
degesch: memory management fixes
...
As well as a one serious bug in passing the completely wrong object.
2015-04-24 23:30:48 +02:00
Přemysl Eric Janouch
a4d3023874
degesch: fix a double-free
2015-04-24 22:50:53 +02:00
Přemysl Eric Janouch
d4413627e6
degesch: better & working text wrapping
...
Now we respect word boundaries.
2015-04-24 22:34:44 +02:00
Přemysl Eric Janouch
2a0dcc2add
degesch: fix RPL_WELCOME user@host parsing
2015-04-24 22:33:23 +02:00
Přemysl Eric Janouch
dd8bb4c206
degesch: less confusing function name
2015-04-23 03:10:34 +02:00
Přemysl Eric Janouch
cc6e9306e6
degesch: refactor command handlers
2015-04-23 03:07:48 +02:00
Přemysl Eric Janouch
15032f9ce7
degesch: fix /query
2015-04-23 03:00:19 +02:00
Přemysl Eric Janouch
20c36b4b36
degesch: non-functional changes
2015-04-23 02:59:58 +02:00
Přemysl Eric Janouch
c088f081d7
degesch: halfplement /msg, /query, /notice
...
Which involved some refactoring.
2015-04-23 02:48:25 +02:00
Přemysl Eric Janouch
2633eda69a
degesch: better message autosplit
2015-04-23 00:15:01 +02:00
Přemysl Eric Janouch
53b46482f5
degesch: preliminary message autosplitting
2015-04-22 22:41:01 +02:00
Přemysl Eric Janouch
f2a2206e49
degesch: parse user@host from RPL_WELCOME
2015-04-22 21:59:50 +02:00
Přemysl Eric Janouch
a7ccdc78be
degesch: add a note about RPL_ISUPPORT
2015-04-21 22:34:16 +02:00
Přemysl Eric Janouch
295e4c8bf9
degesch: preparations for numerics processing
2015-04-21 22:08:18 +02:00
Přemysl Eric Janouch
e937ac12d5
degesch: remove extraneous function argument
2015-04-21 21:55:34 +02:00
Přemysl Eric Janouch
d0b7545f1e
degesch: implement TOPIC handling
2015-04-21 21:47:34 +02:00
Přemysl Eric Janouch
9c0f0c0e33
degesch: don't require channels to have buffers
2015-04-21 21:36:59 +02:00
Přemysl Eric Janouch
e8e039c11c
degesch: non-functional changes
2015-04-21 21:36:44 +02:00
Přemysl Eric Janouch
883e777bac
degesch: implement PART and KICK handlers
2015-04-21 21:36:16 +02:00
Přemysl Eric Janouch
69582c9e14
degesch: shorten/dedup init_colors()
2015-04-21 20:52:41 +02:00
Přemysl Eric Janouch
c69c8048b4
degesch: fix a potential SIGSEGV
2015-04-21 00:40:30 +02:00
Přemysl Eric Janouch
5632eecd42
degesch: get rid of repeating refcounting code
...
Macros aren't exactly spectacular but they work.
2015-04-21 00:29:07 +02:00
Přemysl Eric Janouch
635c28820d
degesch: fix logging a bit
...
It needs a rewrite.
2015-04-21 00:09:06 +02:00
Přemysl Eric Janouch
0a87e43aff
degesch: unfuck reference counting
...
We really needed weak references for the name map.
2015-04-21 00:04:34 +02:00
Přemysl Eric Janouch
3cfe01e3a7
degesch: fix some object management
2015-04-20 23:37:34 +02:00
Přemysl Eric Janouch
c5695a5f6d
degesch: fix SIGSEGV on /quit
2015-04-20 23:09:13 +02:00
Přemysl Eric Janouch
5ad6581c57
degesch: halfplement PART handling
...
Tired. This thing is enormous.
2015-04-20 23:03:52 +02:00
Přemysl Eric Janouch
590fc6cf26
degesch: mostly implement NICK handling
...
Except for the corner case where two buffers merge.
2015-04-20 22:53:31 +02:00
Přemysl Eric Janouch
3fa9a67a59
degesch: make a "struct user" for ourselves
2015-04-20 22:09:56 +02:00
Přemysl Eric Janouch
a43051132a
degesch: log nick changes
2015-04-20 21:56:32 +02:00
Přemysl Eric Janouch
b8bfcfde7c
degesch: finish QUIT handling
2015-04-20 21:49:46 +02:00
Přemysl Eric Janouch
8e7412eb97
degesch: halfplement NICK and QUIT handlers
2015-04-20 00:08:18 +02:00
Přemysl Eric Janouch
8b279dde81
degesch: disallow /quote from the global buffer
2015-04-19 23:09:01 +02:00
Přemysl Eric Janouch
10f1575677
degesch: fix creation of encoding converters
2015-04-19 23:07:23 +02:00
Přemysl Eric Janouch
d01618ceb7
degesch: fix logging
2015-04-19 23:05:49 +02:00
Přemysl Eric Janouch
158f188646
degesch: fix "irc_nickname" and send USERHOST
2015-04-19 22:49:03 +02:00
Přemysl Eric Janouch
51415c1db6
degesch: factor out send_message_to_target()
...
And check that we're actually connected.
2015-04-19 22:26:30 +02:00
Přemysl Eric Janouch
953bc72e2b
degesch: implement PRIVMSG handling
2015-04-19 22:19:52 +02:00
Přemysl Eric Janouch
56ae38b19a
degesch: implement JOIN handling
2015-04-19 22:19:26 +02:00
Přemysl Eric Janouch
63d01191b6
degesch: fix sending messages
...
Now that the data model has changed.
2015-04-19 21:34:52 +02:00
Přemysl Eric Janouch
c3d96a8b2d
degesch: add some comments
2015-04-19 21:34:33 +02:00
Přemysl Eric Janouch
c946c46f1f
degesch: implement /join and /part
2015-04-19 21:34:11 +02:00
Přemysl Eric Janouch
392c2e7a5f
degesch: fix struct channel_user
...
A user can have multiple channel modes.
2015-04-19 21:33:13 +02:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
8c38b1b9b8
degesch: some non-functional changes
2015-04-18 22:09:05 +02:00
Přemysl Eric Janouch
da472bc4f6
degesch: count unseen messages
2015-04-18 21:50:42 +02:00
Přemysl Eric Janouch
14077ff209
degesch: capitalize buffer messages
...
They looked too alien.
2015-04-18 17:51:28 +02:00
Přemysl Eric Janouch
3bf1ffa559
degesch: fix some remaining print_*()
2015-04-18 17:50:56 +02:00
Přemysl Eric Janouch
cbda184461
degesch: fix binding Meta keys
...
At last.
2015-04-18 17:34:35 +02:00
Přemysl Eric Janouch
5dbd6eaa7e
degesch: print out some basic help
2015-04-18 17:19:56 +02:00
Přemysl Eric Janouch
e65b38bff9
degesch: readline cleanup
2015-04-18 16:10:11 +02:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
869781c33a
degesch: make it work to some extent
...
GNU Readline still ignores our Meta keyseqs.
2015-04-18 03:25:10 +02:00
Přemysl Eric Janouch
583262ae67
degesch: printing to buffers etc.
2015-04-17 23:28:16 +02:00
Přemysl Eric Janouch
511c56d2fc
degesch: stub IRC command handlers
2015-04-17 22:53:35 +02:00
Přemysl Eric Janouch
0d63e59beb
degesch: add irc_to_utf8()
...
And use it.
2015-04-17 22:22:46 +02:00
Přemysl Eric Janouch
6c4e7f8fdc
degesch: fix irc_process_message()
2015-04-17 22:11:36 +02:00
Přemysl Eric Janouch
f9125c38c0
degesch: prepare for printing to buffers
2015-04-17 22:10:43 +02:00
Přemysl Eric Janouch
5b9dadcc58
degesch: leak lines from related buffers
2015-04-17 21:48:56 +02:00
Přemysl Eric Janouch
7fed628d58
degesch: inline a condition
2015-04-17 21:44:44 +02:00
Přemysl Eric Janouch
61ebbe245b
degesch: factor out make_prompt()
2015-04-17 21:40:08 +02:00
Přemysl Eric Janouch
8cb55e81b3
degesch: actually send messages
2015-04-17 21:33:52 +02:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
2d91a27714
degesch: factor out buffer_{previous,next}()
2015-04-17 21:26:08 +02:00
Přemysl Eric Janouch
e5b52fcd76
degesch: factor out buffer_get_index()
2015-04-17 21:19:51 +02:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
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
Přemysl Eric Janouch
0c96563545
degesch: fix quoting a slash
2015-04-16 20:51:50 +02:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
08c0027397
degesch: more buffer-related stuff
2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch
51ca5c79e4
degesch: show active buffers in prompt
2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch
23298f3a0e
degesch: fix reading in the configuration
2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch
06857c6bbb
degesch: add an error buffer line type
2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch
c2c9d4dc58
degesch: update TODO/FIXME comments
2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch
ba9e51fb9f
degesch: reorder configuration
2015-04-15 21:22:01 +02:00
Přemysl Eric Janouch
92ca2df285
degesch: fix Travis CI build
2015-04-15 02:40:11 +02:00
Přemysl Eric Janouch
0114d57a0c
degesch: fix Travis CI build (hopefully)
2015-04-15 02:28:57 +02:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
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
Přemysl Eric Janouch
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