Commit Graph

700 Commits

Author SHA1 Message Date
Přemysl Eric Janouch f665f147ff
degesch: resolve the issue with less(1) and SO/SI
Now that I've learnt what exactly these characters are and how they
ended up in attribute strings, we can just eliminate them and disable
`backlog_helper_strip_formatting`.  Saner defaults, again.

I've also added skipping of terminfo delay sequences, so now it's less
of an issue to pipe raw attribute sequences into backlog helpers.
2020-10-04 12:04:24 +02:00
Přemysl Eric Janouch 9819b75b64
degesch: make the unread marker look a bit fancier
Upstreamed after who knows how long, in a slightly modified form.
The marker looks fairly ugly without this and defaults should be
desirable.

It's possible to get the previous behaviour by resetting the separator
character in the configuration to an empty string.  It might be
a better idea in general to just disallow this value with a special
validation callback, so that there's only one way to do it.

However given that without fancy-prompt.lua, an optional plugin,
the long line stands out considerably, it might actually be a good
idea to keep the old behaviour as the default.  I'm torn.

Right now we don't care about the situation where the string occupies
more than one terminal cell or is some Unicode BS.  User's problem.
2020-10-04 10:08:30 +02:00
Přemysl Eric Janouch f716e7601f
degesch: fix a typo 2020-10-04 08:44:16 +02:00
Přemysl Eric Janouch eea761d9f7
degesch: make use of arguments in _new() functions 2020-10-04 08:32:15 +02:00
Přemysl Eric Janouch dd8e543a20
degesch: save some memory on channel users
`struct str` was mostly unnecessary, we can save 16+ bytes,
while performance and code readability is mostly unchanged.
2020-10-04 08:28:07 +02:00
Přemysl Eric Janouch dc8b580574
degesch: expand comment about character encoding 2020-10-02 07:09:58 +02:00
Přemysl Eric Janouch 2d9856cca8
Bump liberty, use iscntrl_ascii() 2020-10-02 06:52:11 +02:00
Přemysl Eric Janouch 405848deeb
degesch: remove unnecessary quotes from macro defs
The behaviour is defined by the standard.
2020-09-20 13:43:36 +02:00
Přemysl Eric Janouch b9991d4766
degesch: update comment to reflect reality 2020-09-20 13:43:10 +02:00
Přemysl Eric Janouch 57e92fbb85
Update copyright years 2020-09-02 20:00:11 +02:00
Přemysl Eric Janouch 444f97b357
degesch: work around a libedit attribute issue 2020-09-02 20:00:10 +02:00
Přemysl Eric Janouch ed7130a664
degesch: fix a libedit crash 2020-09-02 20:00:10 +02:00
Přemysl Eric Janouch ba1c2357af
degesch: fix Lua 5.4 build
Not sure about how well it works yet.

Lua 5.3 is still made preferential by the order of pkgconfig lookup.
2020-09-02 20:00:09 +02:00
Přemysl Eric Janouch a48023553e
degesch: fix a pointer operation in the libedit layer 2020-09-02 20:00:09 +02:00
Přemysl Eric Janouch deb096a0e9
Name change 2020-09-02 19:37:29 +02:00
Přemysl Eric Janouch 6287e20919
degesch: fix log reopening after a buffer rename 2020-03-23 00:41:08 +01:00
Přemysl Eric Janouch 07d59db5ab
degesch: clean up unused functions 2020-03-22 02:00:57 +01:00
Přemysl Eric Janouch 2909b017fb
Fix handling terminal resizes while the terminal is suspended
GNU Readline has a misfeature.
2020-03-21 22:02:02 +01:00
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