Commit Graph

673 Commits

Author SHA1 Message Date
682f90e989
degesch: simplify the configuration dumper 2018-01-08 22:16:52 +01:00
277af83100
degesch: show an error message on log write failure
Running out of space and I/O errors seem like the most likely causes.
2018-01-08 22:16:36 +01:00
a5a0078def
degesch: make buffer index computation easier to follow 2018-01-08 22:16:10 +01:00
868e34d15c
degesch: fix a Lua error message 2018-01-08 22:16:06 +01:00
dc47b16034
Bump liberty, avoid fall-through warnings 2018-01-07 17:37:19 +01:00
36be830bfc
degesch: better shift state encoding handling
I don't know, probably didn't matter.
2017-07-07 20:55:25 +02:00
a2611cdc3c
Rework constructors/destructors 2017-06-22 22:56:24 +02:00
68bc297809
Bump liberty 2017-06-22 22:39:39 +02:00
c3d62b8799
Avoid the "poller_fd::closed" feature
Reliability enhancement for Linux.

This feature was created for ponymap, however we don't care about an
extra syscall in most places.  Doing it right even saves lines.
2017-05-06 21:35:44 +02:00
ec842db0fb
Update copyright years 2017-04-22 19:41:27 +02:00
0981df485a
degesch: simplify quitting
- send a QUIT on C-c, too
 - shut down the connection on /disconnect, too

Connection management is one of the few fucked up parts
that remain in that state for historical reasons.
2017-04-20 20:55:49 +02:00
9f0c18cc41
degesch: fix confusing message
It seemed like we were connecting albeit we were connected already.
2017-04-20 20:26:04 +02:00
1313a712df
degesch: make a second /disconnect always succeed 2017-04-20 20:25:21 +02:00
9e5725662f
Bump liberty 2017-01-23 23:50:27 +01:00
8e668ff31a
Various fixes related to channel modes
Bugs unnoticed for so long.
2016-12-30 08:08:34 +01:00
eb70bf3fbc
Cleanup 2016-12-28 12:44:27 +01:00
d86a68f510
Add support for OpenSSL 1.1.0 2016-12-28 12:40:47 +01:00
d6be22291d
degesch: /query w/o arguments just opens the query 2016-12-06 13:51:16 +01:00
e2bb051bd3
degesch: replace degesch.connect with async.dial
Halfway there, looks much saner.
2016-11-04 22:02:26 +01:00
52d1ded7df
degesch: move the Lua async code within the file 2016-11-04 20:44:23 +01:00
cb9f187f80
degesch: get rid of Lua timer hooks
Since they were the exception and have been replaced with the async API.
2016-11-04 20:21:46 +01:00
0247c4667a
degesch: Lua coroutine safety 2016-11-04 20:12:28 +01:00
572f4e2ea3
degesch: implement Lua coroutine async basics 2016-11-04 20:11:59 +01:00
b24bb0aded
degesch: fix join/part hiding in the backlog 2016-10-30 16:24:23 +01:00
6cee7159f2
degesch: clean up
Caught by Coverity, however it is quite harmless.
2016-10-29 21:08:15 +02:00
568f9b7123
degesch: tiny fixes for the prompt hook
It should return valid UTF-8.

Also remember to refresh the prompt upon hook removal.
2016-10-29 20:03:31 +02:00
0d499dd125
degesch: avoid senseless indirection in hooks
It's always been one function call only this far.
2016-10-29 19:51:54 +02:00
37e49b54cf
degesch: rename things around terminal attributes 2016-10-29 18:07:28 +02:00
742d590b8d
degesch: simplify "attribute_printer"
Now that the line wrapper took over some of the state.
2016-10-29 17:53:06 +02:00
b6528c73e3
degesch: microoptimization 2016-10-28 18:16:21 +02:00
1e79aaec26
degesch: refresh the prompt when a hook is set 2016-10-28 13:58:37 +02:00
0995da3900
degesch: don't consider all mode changes important 2016-10-28 13:32:29 +02:00
c8a826f016
degesch: optimize Lua weak refs 2016-10-28 13:09:50 +02:00
557a39c6c8
degesch: export server state as a string to Lua 2016-10-28 12:47:11 +02:00
745e758394
degesch: add Lua API for screen size retrieval 2016-10-28 04:12:06 +02:00
b60bdf119a
degesch: add a prompt hook 2016-10-28 04:12:06 +02:00
278e2b236b
degesch: add introspection for refs within str_maps
This required some fixes to the design.
2016-10-28 04:12:05 +02:00
2f758bbdb9
degesch: allow lists of refs in introspection 2016-10-28 04:12:05 +02:00
911276b263
degesch: add introspection for "app_context" 2016-10-28 04:12:05 +02:00
cb5ad675a6
degesch: add introspection for "str" and "str_map" 2016-10-28 04:12:05 +02:00
9408dfc67c
degesch: create Lua refs through introspection 2016-10-28 04:12:05 +02:00
fed8b06aff
degesch: begin work on direct introspection 2016-10-28 04:12:05 +02:00
7e64fd9886
degesch: cleanup 2016-10-28 04:12:05 +02:00
6928184a3d
degesch: defer prompt refreshing
Now that we do it each time we receive a message from the server.
2016-10-23 17:34:52 +02:00
f7155f3919
degesch: allow hiding join/part messages 2016-10-23 17:14:24 +02:00
f032466307
degesch: comments, no functional change 2016-10-23 17:14:24 +02:00
c0f4b554ef
degesch: show channel user count in the status 2016-10-23 17:14:24 +02:00
639da7a9a7
degesch: accept Word shortcuts for formatting
Because why not.
2016-10-23 13:40:04 +02:00
230b04014f
Bump liberty, add consts to some arguments 2016-10-23 13:38:46 +02:00
8028c7fa47
Bump liberty 2016-10-11 10:52:49 +02:00
43de836b91
degesch: exit with error when arguments are given 2016-09-29 13:40:15 +02:00
16d10f574b
degesch: simplify highlight detection 2016-09-25 14:11:30 +02:00
4cefa5ab1b
degesch: fix highlight detection in colored text 2016-09-23 23:46:26 +02:00
92a4d4b5a7
Better support for the KILL command 2016-09-23 22:50:30 +02:00
483ab39e3c
degesch: die on configuration parse errors
Seems more sensible.
2016-07-23 20:00:40 +02:00
beaf1a1f82
degesch: fix Ctrl-J in Readline 2016-07-23 19:13:55 +02:00
d6a9e1dca1
degesch: customizable date change messages
Now also in the backlog.
2016-04-21 23:50:05 +02:00
c8e4833086
degesch: add a NOWRAP flag to formatter_flush()
--format should work as before now.

It is now also possible to rebind PageUp to show a wrapped backlog.
2016-04-21 23:50:05 +02:00
99595c0d81
degesch: update comments 2016-04-21 23:50:05 +02:00
fa5e005728
degesch: refactor Lua weak objects 2016-04-21 22:09:35 +02:00
a9b77b3206
degesch: expose channels and users to Lua 2016-04-21 22:09:35 +02:00
4665807d09
degesch: expose message parsing to Lua 2016-04-21 22:09:35 +02:00
3a8d70de66 degesch: fix crash on invalid cp1252 characters
We don't even really need iconv here.
2016-04-03 04:05:04 +02:00
8a3144f0ac degesch: update program logo
I've noticed that the old one wasn't very pleasant to look at.
2016-03-28 21:08:04 +02:00
dc71af9c31 degesch: fix two minor issues
- completely new unread markers could be created in active buffers
 - control characters confused word wrapping
2016-03-26 20:59:37 +01:00
f964495d1a degesch: don't wrap lines in pager 2016-03-26 16:41:55 +01:00
550a0419a6 degesch: detect //TRANSLIT support, use cp1252
Now BSDs should have it enabled as well.
2016-03-26 14:27:59 +01:00
9b12c830d1 degesch: remap goto-activity to M-a
weechat appears to use this key binding, so let's not reinvent it.
2016-03-26 13:11:28 +01:00
1e24d1d1b8 degesch: add partial matching /buffer goto 2016-03-26 13:00:10 +01:00
6292114c76 degesch: append message count in /buffer listing 2016-03-26 05:15:11 +01:00
e646afe5ae degesch: retain the unseen marker
Don't erase the message counts immediately.

Also make the marker visible in the pager.
2016-03-26 04:55:46 +01:00
410bcdcd78 degesch: phase 1 of word wrapping implementation 2016-03-26 04:52:05 +01:00
1c9de9291b degesch: cleanup, fix no-tty mode FWIW
Removed the no color mode that couldn't even be enabled.

Not sure why we still support running without a proper terminal
but let's at least not make it crash for now.
2016-03-13 16:44:06 +01:00
f96fa66168 degesch: add a --format switch 2016-03-12 14:28:17 +01:00
42d88f87f5 degesch: add unbound commands for buffer movement 2016-03-10 00:07:59 +01:00
a1c4a1ef3a degesch: fix binding to our own fns from inputrc 2016-03-10 00:06:28 +01:00
dc248b8840 degesch: add goto activity and highlight 2016-03-08 22:29:40 +01:00
09c7d9a65d degesch: fix mIRC color parsing 2016-03-08 01:59:51 +01:00
0f1fd2eb3a Update NEWS, cleanup 2016-03-07 23:43:47 +01:00
696273558e degesch: rewrite input layer
Now with less #ifdefs.
2016-03-07 22:52:56 +01:00
584d2f0295 degesch: use libffi to unify input callbacks
And fuck you both, Readline and Editline.
2016-03-06 18:12:12 +01:00
17804fa49b degesch: fix +=/-= to null config items 2016-03-05 19:15:40 +01:00
6190733079 degesch: mark a problem 2016-02-29 02:50:41 +01:00
056e0a4765 Resolve tls_ca_{file,path} relative to config dir 2016-02-19 23:46:44 +01:00
06b03d336e degesch: fix segfault on sent messages w/o buffer 2016-02-12 04:04:35 +01:00
11519ee860 degesch: update screen size when terminal resumed
Apparently we don't receive the events when we give up the terminal.
2016-02-10 23:02:33 +01:00
03d5b27398 degesch: use mkstemp() with a safe umask 2016-02-09 13:52:56 +01:00
3315b16f79 degesch: log messages from /quote and plugins
That is, parse back all output messages and log based on that.
2016-02-09 05:10:41 +01:00
333ad2c981 degesch: allow changing the list of used CAPs
Bump liberty.
2016-02-01 21:57:43 +01:00
a850ee45f1 degesch: optimize buffer memory usage
We have approximately 5 formatter_items per buffer_line.  Let's assume
we're on a 64-bit machine.  Then there were (5 * 2) + 3 useless pointers
(104 bytes) as well as 5 * (4 + 4) = 40 bytes of wasted space because
of needless padding.  That's 144 bytes already.  Compared to that, this
change adds 16 bytes of overhead for an array sentinel, i.e. 128B less.

With a limit of 1000 lines per buffer, we've saved ~128kB per buffer
on completely useless data, and code complexity stays roughly the same.

All in all, memory usage for buffers should be about 50% lower.
2016-01-31 21:43:23 +01:00
10a264ec3d kike: add support for IRCv3.2 server-time 2016-01-31 21:43:23 +01:00
f57664ddd0 degesch: add an assertion
It should never fail with current code.
2016-01-18 00:59:43 +01:00
773d14e740 degesch: disable TLS compression 2016-01-18 00:45:20 +01:00
221ae03b5c degesch: Lua: fix memory leak on load failure 2016-01-17 22:57:16 +01:00
588a696c68 degesch: lesser heap fragmentation 2016-01-17 22:15:48 +01:00
fdeb550ee0 degesch: fix backlog limit
It was effectively infinite.
2016-01-15 22:11:05 +01:00
c4a18ec8a7 degesch: fix and simplify screen handling
Now with less madness.
2016-01-15 05:40:20 +01:00
d0db1a6cdc degesch: enforce fullscreen buffers
Probably long overdue.

Now we actually look like something resembling a regular IRC client.
2016-01-15 05:12:03 +01:00
9333081178 degesch: option for fullscreen buffers 2016-01-15 05:09:42 +01:00
b7c9e8ca23 degesch: make backlog limit configurable 2016-01-15 05:09:42 +01:00