diff options
author | Robin Jarry <robin@jarry.cc> | 2023-01-15 23:27:29 +0100 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2023-01-26 00:20:48 +0100 |
commit | 98e32d2ff22cba1e60caf6a252eee0d38f26f736 (patch) | |
tree | 249564b1942d0a42225243a8a598ec48bc896c6b /filters/vectors/colorize-quotes.expected | |
parent | 3191ee171c435a43912264b131340af66fea8112 (diff) | |
download | aerc-98e32d2ff22cba1e60caf6a252eee0d38f26f736.tar.gz |
filters: rewrite colorize in c
Since its introduction, we had multiple issues with the colorize awk
script with regard to non-GNU awk compatibility.
Also, this script is standalone and the color theme must be hard coded
into it. Reading from an external configuration file (aerc's styleset)
from a non-GNU awk is close to impossible (and even far from trivial
with GNU awk).
Rewrite the builtin colorize filter in C to allow getting the color
theme from aerc's active styleset. The theme is configured using the
existing styleset syntax and attributes under a separate [viewer]
section (see examples and man page).
Export the active styleset file path to AERC_STYLESET env var when
invoking the filter command so that colorize can access it and use it.
I have tested compilation (with clang-analyzer and gcc -fanalyzer) and
basic operation on FreeBSD, Fedora (glibc) and Alpine (muslibc). More
tests would probably be required on MacOSX and older Linux distros.
I also added test vectors to give some confidence that this works as
expected. The execution with these vectors passed valgrind
--leak-check=full without errors.
NB: the default theme has changed to be more minimal. Sample stylesets
have more colorful examples. The awk -v theme=xxx option is no longer
supported.
usage: colorize [-h] [-s FILE] [-f FILE]
options:
-h show this help message
-s FILE use styleset file (default $AERC_STYLESET)
-f FILE read from filename (default stdin)
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Acked-by: Moritz Poldrack <moritz@poldrack.dev>
Diffstat (limited to 'filters/vectors/colorize-quotes.expected')
-rw-r--r-- | filters/vectors/colorize-quotes.expected | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/filters/vectors/colorize-quotes.expected b/filters/vectors/colorize-quotes.expected new file mode 100644 index 00000000..d350e4f1 --- /dev/null +++ b/filters/vectors/colorize-quotes.expected @@ -0,0 +1,65 @@ +Foo Bar, xxxxx: +[36m> Lorem ipsum dolor sit amet, insolens adolescens ne usu? In pri denique[0m +[36m> argumentum, te autem decore convenire mea! Duo nisl esse an, aliquid[0m +[36m> conceptam sea cu. Ignota copiosae gubergren ad est, ut illum doming vocibus[0m +[36m> sed. Et vis nulla expetendis mediocritatem, errem option gloriatur at nam?[0m +[36m> Brute vidisse corpora ut his, sonet omnesque adipiscing ea quo, cum ea errem[0m +[36m> aliquip reformidans?[0m + +Magna delicatissimi ei vel? Quem petentium scribentur eum ne? Et inani debet +cetero mea, sint conceptam efficiendi mel te. Qui ut senserit interesset, per +nibh petentium at! Sit docendi laboramus ei, animal insolens ad mea. + +[2;36m>> Nostrud alienum nec in, illum errem audiam no per! Saepe alterum vis ea! Ei[0m +[2;36m>> quis minim ius, ut eos mandamus salutandi. Lorem facilisis in nam, ridens[0m +[2;36m>> principes sadipscing et eum, pri graecis singulis ut. Mea dolor primis[0m +[2;36m>> impetus in, his epicurei tacimates id, vis labitur suscipit ad.[0m +[36m> Erat alienum interpretaris has et, te vim aliquam molestie. Nam vivendum[0m +[36m> facilisis qualisque at, ex his mucius qualisque! Fabulas lucilius adversarium[0m +[36m> eu his. Cu soluta inermis accusata usu, his nulla dolore ne, vis id semper[0m +[36m> detracto sententia <[4mhttps://foobar.com[0m[36m> && "[4mhttps://foobaz.org/[0m[36m".[0m +[36m>[0m +[36m> Error libris deleniti ea mei, vis at elit probo munere, his sint unum[0m +[36m> albucius ex.[0m + +Graece definiebas scripserit ne est? Nec nonumes explicari contentiones ne, +vocent iuvaret placerat no vix. Nec et partem salutandi deseruisse, his no +possim malorum pericula. Te quando reprehendunt nam, at consul sadipscing vel? +Velit possim aliquando ei per, ne simul quodsi antiopam sea, ullum choro +facilisi et pri! + +[36m> Dico soleat partem ea pro, ad vix impetus splendide. Primis melius principes[0m +[36m> pri ad, tacimates pertinacia ei pro? Appareat atomorum oportere at nam, eu[0m +[36m> per quod minim reprimique, ornatus graecis ad vel. Malis vulputate ea qui,[0m +[36m> eum tacimates recteque et, usu ea dolore vidisse. Brute mediocrem molestiae[0m +[36m> sed te. No stet prompta pri, rebum populo nominati eos te.[0m +[36m>[0m +[36m> [1mdiff --git a/foo b/foo[0m +[36m> [1mindex 4b0fe8dded3a..518b67134639 100644[0m +[36m> [0m[31m--- a/foo[0m +[36m> [0m[32m+++ b/foo[0m +[36m> @@ -131,6 +131,83 @@ func pouet() int {[0m +[36m> err := doThis()[0m +[36m> [0m +[36m> [0m[31m- err2 := doThat()[0m +[36m> [0m[32m+ err2 := notDoThat()[0m +[36m> [0m +[36m> if err != nil || err2 != nil {[0m + +Id vix referrentur philosophia, veri labores an nec. Noster denique no duo, sit +ei diam inermis vocibus! Mutat principes ex pro, at pericula assueverit vel. +Has putent verterem constituto ex, tale electram duo at! Ei nulla lucilius +intellegat nam, pro quod epicuri dissentiet ut, omnis voluptatibus definitiones +vim at. + +[4mhttps://git-man-page-generator.lokaltog.net/#Y2xhcCQkY29tbWFuZA==[0m + +Eam mundi libris debitis ad, eam regione numquam at. Eum omnes bonorum eu, +oporteat assueverit disputationi nam ne, nonumes iracundia mea ad! Duo libris +recusabo id, ceteros salutatus inciderint vim ea. Et graeco reformidans vel? Ei +has labore quidam? + +[2;36m>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sympa, non?[0m + +[2m-- [0m +[2mBatman[0m |