Commit Graph

680 Commits

Author SHA1 Message Date
Přemysl Eric Janouch a0e9ede3e3
Relicense to 0BSD, update mail address
I've come to the conclusion that copyright mostly just stands in the way
of software development.  In my jurisdiction I cannot give up my own
copyright and 0BSD seems to be the closest thing to public domain.

The updated mail address, also used in my author/committer lines,
is shorter and looks nicer.  People rarely interact anyway.
2018-06-21 23:46:03 +02:00
Přemysl Eric Janouch 006d34eeae
degesch: fix some log messages
We could use some static analysis for these.
2018-06-21 23:25:45 +02:00
Přemysl Eric Janouch 4586b0e1e4
degesch: introduce cstr_set() 2018-01-08 22:19:28 +01:00
Přemysl Eric Janouch b4507b56af
degesch: thorough review, no functional changes 2018-01-08 22:19:23 +01:00
Přemysl Eric Janouch bf6d507bb2
degesch: fix IPv6:port in irc_split_host_port() 2018-01-08 22:19:02 +01:00
Přemysl Eric Janouch 099a49e6d5
degesch: fix a minor bug in buffer_merge()
The pointer to the last item in the linked list wasn't always fixed,
although nothing really touched it afterwards.
2018-01-08 22:17:02 +01:00
Přemysl Eric Janouch 4627ee82dd
degesch: simplify a popular assertion 2018-01-08 22:16:57 +01:00
Přemysl Eric Janouch 682f90e989
degesch: simplify the configuration dumper 2018-01-08 22:16:52 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch a5a0078def
degesch: make buffer index computation easier to follow 2018-01-08 22:16:10 +01:00
Přemysl Eric Janouch 868e34d15c
degesch: fix a Lua error message 2018-01-08 22:16:06 +01:00
Přemysl Eric Janouch dc47b16034
Bump liberty, avoid fall-through warnings 2018-01-07 17:37:19 +01:00
Přemysl Eric Janouch 36be830bfc
degesch: better shift state encoding handling
I don't know, probably didn't matter.
2017-07-07 20:55:25 +02:00
Přemysl Eric Janouch a2611cdc3c
Rework constructors/destructors 2017-06-22 22:56:24 +02:00
Přemysl Eric Janouch 68bc297809
Bump liberty 2017-06-22 22:39:39 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch ec842db0fb
Update copyright years 2017-04-22 19:41:27 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 9f0c18cc41
degesch: fix confusing message
It seemed like we were connecting albeit we were connected already.
2017-04-20 20:26:04 +02:00
Přemysl Eric Janouch 1313a712df
degesch: make a second /disconnect always succeed 2017-04-20 20:25:21 +02:00
Přemysl Eric Janouch 9e5725662f
Bump liberty 2017-01-23 23:50:27 +01:00
Přemysl Eric Janouch 8e668ff31a
Various fixes related to channel modes
Bugs unnoticed for so long.
2016-12-30 08:08:34 +01:00
Přemysl Eric Janouch eb70bf3fbc
Cleanup 2016-12-28 12:44:27 +01:00
Přemysl Eric Janouch d86a68f510
Add support for OpenSSL 1.1.0 2016-12-28 12:40:47 +01:00
Přemysl Eric Janouch d6be22291d
degesch: /query w/o arguments just opens the query 2016-12-06 13:51:16 +01:00
Přemysl Eric Janouch e2bb051bd3
degesch: replace degesch.connect with async.dial
Halfway there, looks much saner.
2016-11-04 22:02:26 +01:00
Přemysl Eric Janouch 52d1ded7df
degesch: move the Lua async code within the file 2016-11-04 20:44:23 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 0247c4667a
degesch: Lua coroutine safety 2016-11-04 20:12:28 +01:00
Přemysl Eric Janouch 572f4e2ea3
degesch: implement Lua coroutine async basics 2016-11-04 20:11:59 +01:00
Přemysl Eric Janouch b24bb0aded
degesch: fix join/part hiding in the backlog 2016-10-30 16:24:23 +01:00
Přemysl Eric Janouch 6cee7159f2
degesch: clean up
Caught by Coverity, however it is quite harmless.
2016-10-29 21:08:15 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch 37e49b54cf
degesch: rename things around terminal attributes 2016-10-29 18:07:28 +02:00
Přemysl Eric Janouch 742d590b8d
degesch: simplify "attribute_printer"
Now that the line wrapper took over some of the state.
2016-10-29 17:53:06 +02:00
Přemysl Eric Janouch b6528c73e3
degesch: microoptimization 2016-10-28 18:16:21 +02:00
Přemysl Eric Janouch 1e79aaec26
degesch: refresh the prompt when a hook is set 2016-10-28 13:58:37 +02:00
Přemysl Eric Janouch 0995da3900
degesch: don't consider all mode changes important 2016-10-28 13:32:29 +02:00
Přemysl Eric Janouch c8a826f016
degesch: optimize Lua weak refs 2016-10-28 13:09:50 +02:00
Přemysl Eric Janouch 557a39c6c8
degesch: export server state as a string to Lua 2016-10-28 12:47:11 +02:00
Přemysl Eric Janouch 745e758394
degesch: add Lua API for screen size retrieval 2016-10-28 04:12:06 +02:00
Přemysl Eric Janouch b60bdf119a
degesch: add a prompt hook 2016-10-28 04:12:06 +02:00
Přemysl Eric Janouch 278e2b236b
degesch: add introspection for refs within str_maps
This required some fixes to the design.
2016-10-28 04:12:05 +02:00
Přemysl Eric Janouch 2f758bbdb9
degesch: allow lists of refs in introspection 2016-10-28 04:12:05 +02:00
Přemysl Eric Janouch 911276b263
degesch: add introspection for "app_context" 2016-10-28 04:12:05 +02:00
Přemysl Eric Janouch cb5ad675a6
degesch: add introspection for "str" and "str_map" 2016-10-28 04:12:05 +02:00
Přemysl Eric Janouch 9408dfc67c
degesch: create Lua refs through introspection 2016-10-28 04:12:05 +02:00
Přemysl Eric Janouch fed8b06aff
degesch: begin work on direct introspection 2016-10-28 04:12:05 +02:00
Přemysl Eric Janouch 7e64fd9886
degesch: cleanup 2016-10-28 04:12:05 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch f7155f3919
degesch: allow hiding join/part messages 2016-10-23 17:14:24 +02:00
Přemysl Eric Janouch f032466307
degesch: comments, no functional change 2016-10-23 17:14:24 +02:00
Přemysl Eric Janouch c0f4b554ef
degesch: show channel user count in the status 2016-10-23 17:14:24 +02:00
Přemysl Eric Janouch 639da7a9a7
degesch: accept Word shortcuts for formatting
Because why not.
2016-10-23 13:40:04 +02:00
Přemysl Eric Janouch 230b04014f
Bump liberty, add consts to some arguments 2016-10-23 13:38:46 +02:00
Přemysl Eric Janouch 8028c7fa47
Bump liberty 2016-10-11 10:52:49 +02:00
Přemysl Eric Janouch 43de836b91
degesch: exit with error when arguments are given 2016-09-29 13:40:15 +02:00
Přemysl Eric Janouch 16d10f574b
degesch: simplify highlight detection 2016-09-25 14:11:30 +02:00
Přemysl Eric Janouch 4cefa5ab1b
degesch: fix highlight detection in colored text 2016-09-23 23:46:26 +02:00
Přemysl Eric Janouch 92a4d4b5a7
Better support for the KILL command 2016-09-23 22:50:30 +02:00
Přemysl Eric Janouch 483ab39e3c
degesch: die on configuration parse errors
Seems more sensible.
2016-07-23 20:00:40 +02:00
Přemysl Eric Janouch beaf1a1f82
degesch: fix Ctrl-J in Readline 2016-07-23 19:13:55 +02:00
Přemysl Eric Janouch d6a9e1dca1
degesch: customizable date change messages
Now also in the backlog.
2016-04-21 23:50:05 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 99595c0d81
degesch: update comments 2016-04-21 23:50:05 +02:00
Přemysl Eric Janouch fa5e005728
degesch: refactor Lua weak objects 2016-04-21 22:09:35 +02:00
Přemysl Eric Janouch a9b77b3206
degesch: expose channels and users to Lua 2016-04-21 22:09:35 +02:00
Přemysl Eric Janouch 4665807d09
degesch: expose message parsing to Lua 2016-04-21 22:09:35 +02:00
Přemysl Eric Janouch 3a8d70de66 degesch: fix crash on invalid cp1252 characters
We don't even really need iconv here.
2016-04-03 04:05:04 +02:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 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
Přemysl Eric Janouch f964495d1a degesch: don't wrap lines in pager 2016-03-26 16:41:55 +01:00
Přemysl Eric Janouch 550a0419a6 degesch: detect //TRANSLIT support, use cp1252
Now BSDs should have it enabled as well.
2016-03-26 14:27:59 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 1e24d1d1b8 degesch: add partial matching /buffer goto 2016-03-26 13:00:10 +01:00
Přemysl Eric Janouch 6292114c76 degesch: append message count in /buffer listing 2016-03-26 05:15:11 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 410bcdcd78 degesch: phase 1 of word wrapping implementation 2016-03-26 04:52:05 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch f96fa66168 degesch: add a --format switch 2016-03-12 14:28:17 +01:00
Přemysl Eric Janouch 42d88f87f5 degesch: add unbound commands for buffer movement 2016-03-10 00:07:59 +01:00
Přemysl Eric Janouch a1c4a1ef3a degesch: fix binding to our own fns from inputrc 2016-03-10 00:06:28 +01:00
Přemysl Eric Janouch dc248b8840 degesch: add goto activity and highlight 2016-03-08 22:29:40 +01:00
Přemysl Eric Janouch 09c7d9a65d degesch: fix mIRC color parsing 2016-03-08 01:59:51 +01:00
Přemysl Eric Janouch 0f1fd2eb3a Update NEWS, cleanup 2016-03-07 23:43:47 +01:00
Přemysl Eric Janouch 696273558e degesch: rewrite input layer
Now with less #ifdefs.
2016-03-07 22:52:56 +01:00
Přemysl Eric Janouch 584d2f0295 degesch: use libffi to unify input callbacks
And fuck you both, Readline and Editline.
2016-03-06 18:12:12 +01:00
Přemysl Eric Janouch 17804fa49b degesch: fix +=/-= to null config items 2016-03-05 19:15:40 +01:00
Přemysl Eric Janouch 6190733079 degesch: mark a problem 2016-02-29 02:50:41 +01:00
Přemysl Eric Janouch 056e0a4765 Resolve tls_ca_{file,path} relative to config dir 2016-02-19 23:46:44 +01:00
Přemysl Eric Janouch 06b03d336e degesch: fix segfault on sent messages w/o buffer 2016-02-12 04:04:35 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 03d5b27398 degesch: use mkstemp() with a safe umask 2016-02-09 13:52:56 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 333ad2c981 degesch: allow changing the list of used CAPs
Bump liberty.
2016-02-01 21:57:43 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 10a264ec3d kike: add support for IRCv3.2 server-time 2016-01-31 21:43:23 +01:00
Přemysl Eric Janouch f57664ddd0 degesch: add an assertion
It should never fail with current code.
2016-01-18 00:59:43 +01:00
Přemysl Eric Janouch 773d14e740 degesch: disable TLS compression 2016-01-18 00:45:20 +01:00