Commit Graph

682 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 64d4009427
degesch: fix getpwuid usage
The "entry not found" case doesn't have to touch errno.
2019-12-07 21:18:20 +01:00
Přemysl Eric Janouch aa4e86c2a0
degesch: add a comment about ENOTCONN 2018-10-21 05:40:24 +02:00
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