f39e2a4bc8
degesch: Lua: add autocomplete hooks
2016-01-15 02:39:10 +01:00
56858a97dd
degesch: Lua: allow simulating user input
...
Also added UTF-8 validation to buffer:log() while I'm at it.
2016-01-14 03:34:29 +01:00
331d1842b9
Bump liberty, shuffle some code
2016-01-14 03:26:02 +01:00
32f719dec7
degesch: Lua: pass hostname to on_connected
2016-01-09 06:19:54 +01:00
0b92e9210c
degesch: Lua: set sockets to nonblocking
2016-01-09 05:47:24 +01:00
092e9b5101
Bump liberty
2016-01-09 05:27:45 +01:00
faa0c989f8
degesch: Lua: actually allow filtering out input
2016-01-09 05:05:46 +01:00
53e72dd12d
degesch: Lua: provide a traceback on load error
2016-01-09 05:01:50 +01:00
83c14ba264
degesch: Lua: fix plugin configuration names
2016-01-09 05:01:50 +01:00
64143a5957
degesch: Lua: fix luaL_ref() usage
2016-01-09 05:01:50 +01:00
aca153f575
degesch: Lua: fix configuration loading
...
Not the cleanest solution but it has to do for now.
2016-01-09 05:01:50 +01:00
79f46752d4
degesch: make sure newlines are output correctly
2016-01-08 08:40:40 +01:00
2a180ee084
degesch: Lua: finish implementation of connection
2016-01-07 22:49:53 +01:00
6754c59890
degesch: Lua: avoid resource leak
...
If a connector's on_success callback fails, we need to destroy the connection.
2016-01-07 22:49:53 +01:00
376bbea249
Factor out socket_io_try_{read,write}()
...
To be reused in Lua connection API.
2016-01-07 22:49:53 +01:00
a5ac0d24b8
degesch: fix handling of input editor death
2016-01-07 22:49:53 +01:00
1d3910fd8e
degesch: fix switching of buffers by command
...
Readline used to erase the new buffer's contents.
Defer processing.
2016-01-07 22:49:49 +01:00
a259e96405
degesch: Lua: fix a resource leak
2016-01-06 00:23:54 +01:00
a7be2bf160
degesch: refactor Lua
...
And fix handling of nil returns from filter callbacks.
2016-01-05 23:19:28 +01:00
e1c7b8dcaf
degesch: Lua: halfplement a connector wrapper
...
You can't do anything reasonable with the socket now.
2016-01-05 22:12:22 +01:00
e9b39a1ef7
degesch: Lua: allow arbitrary userdata properties
2016-01-04 23:14:38 +01:00
a227060383
degesch: Lua: use references for hook callbacks
...
Don't associate the callback with the full userdata object,
we'll need this for something else.
2016-01-04 22:24:05 +01:00
4832a99461
degesch: add basic autocomplete for /topic
2016-01-04 22:06:29 +01:00
aeb047260f
Bump liberty, enable TLS SNI
...
Involves some rewrites to fit the new APIs.
SNI has been implemented Mostly just because we can, I don't think it's
widely in use and kike doesn't support this feature of the protocol either.
2016-01-04 01:12:42 +01:00
1a73f1f1d7
degesch: fix a memory leak under libedit
2016-01-01 02:00:02 +01:00
8564297e2a
degesch: fix segfault on /quit under libedit
2015-12-31 23:42:43 +01:00
74bed4bc02
degesch: Alt-Tab switch to the last buffer
2015-12-31 05:07:28 +01:00
8f229f41e1
degesch: avoid fileno() after fork()
...
It's not guaranteed to be async-signal-safe, which may matter once
we start using threads. And it's also cleaner to just pass the FD.
2015-12-31 05:07:28 +01:00
b4d6decc06
degesch: typos
2015-12-31 03:57:09 +01:00
04f87b7587
degesch: enable configuration in Lua plugins
2015-12-28 04:08:45 +01:00
b7dd384048
degesch: little step towards localisation
...
We don't use LC_MESSAGES, though, so it doesn't really matter as of now.
liberty currently isn't prepared for non-ASCII errors or filenames,
and just silently expects everything to be in the same all-compatible
encoding. degesch further expects the encoding to be UTF-8.
All strings should ideally be converted to UTF-8 as soon as possible.
2015-12-25 21:36:56 +01:00
e101afab38
degesch: allow launching an editor for input
...
Useful for editing multiline text (such as making it single-line).
Some refactoring and cleanup.
2015-12-25 05:20:50 +01:00
37e9165548
degesch: better handling of terminal suspension
2015-12-25 05:03:02 +01:00
25bb7a978d
degesch: refactoring
2015-12-25 05:02:58 +01:00
7d531a9bbf
Bump liberty
2015-12-13 22:44:27 +01:00
1c009f394a
Bump liberty
2015-12-11 03:01:25 +01:00
620418fa3b
degesch: add a test for configuration
2015-12-10 21:26:17 +01:00
28e4bc1399
degesch: add more tests, bump liberty
...
The UTF-8 common prefix test discovered a bug in UTF-8 parsing.
Made $[1-9] in aliases insert nothing if there's no argument at that index.
2015-12-10 20:04:26 +01:00
86d7b7aed5
degesch: add a unit test for message wrapping algo
2015-12-09 21:07:01 +01:00
07201b7bdc
degesch: compactify word wrapping algorithm
2015-12-08 23:24:40 +01:00
2ae916fc1a
degesch: clarify text wrapping algorithm
2015-12-08 22:11:11 +01:00
2ba8908024
degesch: fix timer hook resource leak
2015-11-29 17:55:35 +01:00
4a287a724e
degesch: Lua: add a "server" property to buffers
2015-11-24 21:52:31 +01:00
87e1236b30
degesch: Lua: add a "buffer" property to servers
2015-11-24 21:42:08 +01:00
e921a619b0
degesch: readline fixups
...
When a new buffer was created automatically (channel was joined),
we didn't bother to erase the current line buffer.
2015-11-24 03:04:14 +01:00
25282cfe23
degesch: fix a segfault-inducing typo in hooks
2015-11-24 02:32:11 +01:00
79140c3abc
degesch: make auto-away less spammy
2015-11-23 08:33:58 +01:00
4d11be0b85
degesch: implement auto-away
2015-11-22 23:12:18 +01:00
f69edd6606
degesch: optimize prompt changes
...
We used to do lots of unnecessary redisplays.
2015-11-22 17:49:27 +01:00
385de6f4fe
degesch: better terminal suspension
...
Don't print date changes while something else is using the terminal.
2015-11-22 16:43:21 +01:00
0fdffa0e50
degesch: fix hook debug logs
...
Obviously we can receive back the same pointer with different contents.
I just didn't think of that.
2015-11-22 03:01:38 +01:00
36c59ff375
Enable TCP_NODELAY
2015-11-22 02:12:52 +01:00
d135728424
degesch: pop() the Lua error in timer dispatch
2015-11-21 21:29:56 +01:00
02c7c6dcd6
degesch: export timers to Lua
2015-11-21 19:48:15 +01:00
364eb009ca
degesch: hook implementation cleanup
2015-11-21 19:00:56 +01:00
d4cbc576e2
degesch: typos, cleanups
2015-11-21 19:00:56 +01:00
cd8e3d6d41
degesch: make Ctrl-L also fix window size
2015-11-21 14:09:34 +01:00
fa965a85e4
degesch: make /buffer with no arguments print list
2015-11-21 14:09:34 +01:00
59a4c356dd
degesch: export input and IRC hooks
2015-11-21 14:09:34 +01:00
c912726f49
degesch: add ability to hook IRC and user input
...
We're going to make this available to the Lua API soon.
2015-11-21 14:09:34 +01:00
fbfe0ba18a
degesch: add a stubbed Lua plugin loader
2015-11-21 14:09:33 +01:00
5ee210a5b7
degesch: stubplement plugins
2015-11-21 14:09:33 +01:00
5d55d7f6de
degesch: refcountify "struct {buffer,server}"
2015-11-19 19:11:35 +01:00
b952fc1f6d
degesch: extend weak pointers
2015-11-18 23:03:21 +01:00
89065e4d34
degesch: fix highlights
2015-11-17 00:06:48 +01:00
281ef2e93e
degesch: split input text at newlines
...
This makes pasting multiline text possible again.
2015-11-15 15:56:33 +01:00
9b22d72fd1
Extend split_str() for multiple split chars
2015-11-15 15:56:10 +01:00
f11635ed7f
degesch: better SIGTSTP handling
2015-11-15 15:36:03 +01:00
a1e47ca4c9
degesch: cleanup
...
Unnecessary oneliner function.
2015-11-15 01:48:10 +01:00
6c7a2ce3c8
degesch: unseen PMs show up as highlights
...
I used to miss them.
2015-11-15 01:43:00 +01:00
153d8c55d9
degesch: don't spam with all unseen messages
...
On high-traffic channels, it has shown to take quite some time.
2015-11-15 01:32:49 +01:00
d14bc2df53
degesch: have just one input buffer
2015-11-15 01:23:32 +01:00
d8299a1231
degesch: enable and use bracketed paste mode
...
urxvt, xterm and maybe others support quoting text pasted by the user
from clipboard, which prevents leading tabs from changing into
highlights.
The handling isn't perfect so far, just wrong in a different way, as
we mishandle newlines.
2015-11-15 01:07:12 +01:00
465c2e4082
degesch: mv input_insert{_c,}()
2015-11-15 01:07:09 +01:00
2a97c01215
degesch: make the libedit backend work again
2015-11-15 01:07:05 +01:00
152ba0847d
Add a CMake target for clang-tidy
2015-11-13 09:22:48 +01:00
fe88e30bf5
degesch: fix beeping on "unimportant" PM events
...
Which in practice means stop beeping on quits in PM buffers.
2015-10-30 23:49:43 +01:00
a8a852d4b3
degesch: fix reconnect delays
2015-10-28 03:46:41 +01:00
e41f503202
degesch: add an /oper command
...
Mostly just because bitlbee suggested it to me and it didn't work.
2015-10-01 21:39:47 +02:00
762aaffecf
degesch: make text attributes toggle formatting
...
Instead of just setting it on.
Fixes bitlbee.
2015-10-01 21:06:34 +02:00
bc54bf520d
degesch: add Meta-H to open the full log file
...
As opposed to just the visible backlog.
2015-09-24 16:16:31 +02:00
11aaf1b325
degesch: fix logging of outgoing status messages
...
"/msg @#test test" would log "MSG(): test"
2015-09-24 15:41:39 +02:00
5ca07656a1
degesch: fix handling of status messages
...
That is, messages using the STATUSMSG feature.
2015-09-24 15:41:39 +02:00
f20c6fb28e
degesch: fix logging of RPL_INVITING
2015-09-24 15:41:39 +02:00
1613e75a48
mv 'struct config_item'{_,}
...
Finally we can get rid of the trailing underscore.
2015-08-17 00:13:05 +02:00
4ae95be9db
degesch: add self to completion in server buffers
2015-08-13 00:23:56 +02:00
328bf9af1e
degesch: display ERROR messages
...
So that the user knows he was killed.
2015-08-12 23:21:11 +02:00
ce83f8244c
degesch: don't ignore data right before an EOF
2015-08-12 23:20:46 +02:00
8a8ff11887
degesch: don't use black for nicks on 256-color
...
Except for self.
2015-08-11 21:38:28 +02:00
131aee6f08
degesch: update comments
2015-08-10 23:24:57 +02:00
07f6d0b350
degesch: enable bright backgrounds on 8-color terms
2015-08-10 23:07:05 +02:00
1cc8656368
degesch: precompute the filtered color cube
2015-08-10 07:53:03 +02:00
4c81112840
degesch: show CTCPs to channels as such
2015-08-10 07:39:43 +02:00
5dda5661ae
degesch: send after-connect joins more cleverly
2015-08-10 07:35:42 +02:00
628facf286
degesch: properly flush the read marker
2015-08-10 00:09:43 +02:00
7225b68f74
degesch: safer defaults for backlog helper
2015-08-09 15:05:49 +02:00
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
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
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
d207c90577
degesch: properly flush formatting resets
2015-08-06 23:58:42 +02:00
2afc9f99c3
degesch: better name resolution failure messages
2015-08-06 23:53:00 +02:00
4ab247ead0
degesch: fix /server usage
2015-08-06 23:27:35 +02:00
1dd464f35c
degesch; fix handling of CTCP requests
2015-08-06 23:23:56 +02:00
955b3728a3
degesch: don't send PART on /close when not joined
2015-08-06 21:58:34 +02:00
cfc78ffdf0
Fix OpenBSD build
2015-07-30 18:29:12 +02:00
637a3d2bf7
More SSL -> TLS renaming
2015-07-28 20:31:42 +02:00
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
27cd8b3a63
degesch: fix memory leak
2015-07-27 00:08:28 +02:00
2bde385dc7
degesch: order the nicknames in /names
2015-07-26 23:27:39 +02:00
74c9759932
degesch: make showing all prefixes optional
2015-07-26 22:44:34 +02:00
f622107592
degesch: fix regression in alias expansion
2015-07-23 21:44:04 +02:00
67b67cb171
Fix immediate connects
...
Apparently FreeBSD can do this while Linux can not.
2015-07-23 10:17:28 +02:00
7be129b72c
degesch: fix one last SOCKS corner case
2015-07-23 04:56:40 +02:00
4a89572089
SOCKS: various fixes to API and code
2015-07-23 04:26:59 +02:00
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
553f06d3ec
degesch: fix literal IPv6 server addresses
2015-07-19 23:30:28 +02:00
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
5c0a2975e8
degesch: refactor and fix reconnect delays
2015-07-18 13:39:30 +02:00
baacb27d4b
degesch: allow executing a command when registered
...
To authenticate with NickServ or whatever.
2015-07-18 13:27:50 +02:00
b3acc4904f
degesch: add exponential reconnect backoff
2015-07-17 21:23:01 +02:00
403dbc83ab
degesch: allow multiple commands in aliases
...
Separated by ;, which can be escaped as $;
2015-07-16 22:12:59 +02:00
1b56b4ee72
degesch: skip unrecognized config items in /set
2015-07-16 20:40:10 +02:00
6f3b48e4eb
SSL -> TLS; fix error handling
2015-07-15 23:34:36 +02:00
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
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
bcbbdbc4bc
degesch: fix some encoding issues
2015-07-15 22:59:55 +02:00
b257340ad2
Fix compiler warning
2015-07-15 22:57:12 +02:00
ad08545f8f
Bump liberty
2015-07-15 22:56:53 +02:00
d6a4ca1434
Bump liberty, fix map iterators
2015-07-14 22:25:30 +02:00
955552f4fa
degesch: implement /server rename
2015-07-14 21:16:35 +02:00
0c5591fed2
degesch: fix server loading
2015-07-14 07:49:28 +02:00
855a9d81ba
degesch: simplify check_server_name_for_addition()
2015-07-14 07:29:30 +02:00
c573435996
degesch: implement /server remove
2015-07-14 06:50:39 +02:00
880a8ef080
degesch: finally fix rearm_date_change_timer()
2015-07-14 06:43:15 +02:00
6f966d4aee
degesch: factor out buffer_remove_safe()
2015-07-14 06:11:14 +02:00
1285ba2d13
degesch: make "/server" alone list all servers
2015-07-13 20:51:23 +02:00
a3074ef83d
degesch: fix the date change timer
2015-07-13 02:39:28 +02:00
606f0b1faa
degesch: fix /server add
2015-07-13 00:13:14 +02:00
e86dc2fbcd
Disable SSL 2 and 3
2015-07-13 00:13:14 +02:00
de61f9ce5b
degesch: don't save on quit after a parse error
2015-07-13 00:13:14 +02:00
efe5112a8f
degesch: force a TLS handshake
...
This is sort of a no-op.
2015-07-13 00:13:10 +02:00
fc87d54649
Cleanup
2015-07-12 17:39:29 +02:00
3c1bbbc513
degesch: add an "ssl_ciphers" option to servers
2015-07-12 17:15:33 +02:00
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
d5a153bbe3
Call ERR_clear_error() where necessary
2015-07-12 05:30:13 +02:00
4ead42f4e3
degesch: fix certificate verification
...
Also print some certificate information while connecting.
2015-07-12 01:58:38 +02:00
20b317db30
degesch: fix failure handling in SSL_CTX creation
2015-07-12 00:43:52 +02:00
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
5b96f2ccb7
degesch: fix the date change timer
...
It used absolute time, while we need relative.
2015-07-12 00:08:56 +02:00
0ce4872254
degesch: fix nick cycling
2015-07-11 18:04:07 +02:00
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