aboutsummaryrefslogtreecommitdiffstats
path: root/filters/vectors/wrap-flowed.expected
diff options
context:
space:
mode:
authorRobin Jarry <robin@jarry.cc>2023-01-17 14:33:09 +0100
committerRobin Jarry <robin@jarry.cc>2023-01-26 00:20:45 +0100
commit3191ee171c435a43912264b131340af66fea8112 (patch)
tree2a68c5c4a3b9975d102cb379171548e7a8937da5 /filters/vectors/wrap-flowed.expected
parenta8b6693f7e7bdcc8b73c3fa0baa0ef5f51993dc7 (diff)
downloadaerc-3191ee171c435a43912264b131340af66fea8112.tar.gz
filters: rewrite wrap in c
This utility introduced in commit c9524d265793 ("filters: add wrap utility written in go") allows to reflow text to view emails that have very long lines without breaking quotes, lists and indentation. For such a simple task, go produces a binary that is 2.0M bytes on disk. After stripping debugging symbols, it can be reduced to 1.2M bytes. All of this for 267 lines of source code. This is a bit ridiculous, provided people may load this binary into memory multiple times per minute. This tool is a small side-project that seems not suitable for golang. Rewrite it in C. It now only depends on a POSIX libc to run. It is safe to assume that there is one available on all *NIX systems in the world of 2023. The resulting binary is now 27K bytes (15K after stripping). To build it, a C compiler and libc headers are required. These should most likely be available since they are dependencies of the go compiler toolchain. I have tested compilation (with clang-analyzer and gcc -fanalyzer) and basic operation on FreeBSD, Fedora (glibc) and Alpine (musl libc). 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. Update CI with aggressive gcc hardening flags and to run these tests with valgrind --leak-check=full. Command line options are unchanged: usage: wrap [-h] [-w INT] [-r] [-l INT] [-f FILE] Wrap text without messing up email quotes. options: -h show this help message -w INT preferred wrap margin (default 80) -r reflow all paragraphs even if no trailing space -l INT minimum percentage of letters in a line to be considered a paragaph -f FILE read from filename (default stdin) Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Bence Ferdinandy <bence@ferdinandy.com> Tested-by: Maxwell G <gotmax@e.email>
Diffstat (limited to 'filters/vectors/wrap-flowed.expected')
-rw-r--r--filters/vectors/wrap-flowed.expected94
1 files changed, 94 insertions, 0 deletions
diff --git a/filters/vectors/wrap-flowed.expected b/filters/vectors/wrap-flowed.expected
new file mode 100644
index 00000000..358b8109
--- /dev/null
+++ b/filters/vectors/wrap-flowed.expected
@@ -0,0 +1,94 @@
+Lorem ipsum dolor sit amet, vel id velit nonumy percipit, sed mutat partiendo
+imperdiet ad, ad tritani deleniti duo? Vis id dicit inermis accumsan, ut
+pertinax deterruisset his, at his quis appareat urbanitas. Pro falli invidunt
+detraxit ex, vim cu graeci oblique contentiones, ea tale etiam aliquip eos. No
+cum assum impetus verterem, tota feugait corpora ut vis. Sint harum eam cu,
+magna doming quidam te est? Usu magna nihil antiopam et, eu latine ponderum
+evertitur eos? At lucilius aliquando intellegebat mea, vis eros pertinax
+similique ut. An mei deleniti
+
+forensibus. Iusto feugait maiestatis at nec, an est causae quaestio. Est ut
+amet veritus, sea in tempor noluisse salutandi. Vis an omnis propriae, vix et
+graece virtute, an integre sententiae his. Molestie tacimates id per, ex eum
+etiam cetero? His cu altera constituam, eos ea inani dicant nonumy. Iudico
+bonorum dissentiet eu quo. Usu ne purto essent qualisque, has alii soluta
+adipisci ad, et fugit aeque omnesque mel. Fastidii facilisi inciderint usu cu,
+ne iusto deterruisset his. Diceret expetendis reprimique id est, cu sit diam
+tation accumsan, no per modus malorum. Pri scripta insolens sapientem an,
+omnesque assueverit sea ea, eam paulo nemore argumentum te. Nam id atqui
+incorrupte, cu eos quodsi ceteros.
+
+Vim ad sonet sadipscing, paulo epicuri mea ne. Mel an meliore denique omittam,
+vidit insolens splendide no pri. Novum cetero quo ea, te his odio aperiri
+hendrerit, at sonet mediocrem eam. Ea eam autem oporteat, est ut mucius
+vituperatoribus. Soleat evertitur pri an? Cu vidit labore menandri nam, sit ex
+paulo apeirian euripidis. Eos elit nominavi fabellas cu, has ne laoreet
+torquatos! Accusam adolescens duo ut, legere periculis in qui, nibh euismod
+epicurei vim id. Posse consul philosophia vis cu, ea brute delectus eum!
+Debitis conclusionemque sed te, eam graeco equidem commune at. Eu duo laudem
+animal, fugit scripserit ne eos. Ius delicata referrentur at? Vim id vidit
+feugiat comprehensam? At error expetendis vel, vim habeo perfecto complectitur
+ex. Ex vim possit persecuti! Unum referrentur instructior cu eum, alia legendos
+incorrupte cu per, quo elitr veritus nominavi eu!
+
+> > Mei malis choro dolores ne, eu erat vocibus denique has? Sed ea ullum
+> > deleniti, nam tritani aliquando complectitur ea! Mea no facer tempor
+> > alienum, fugit laoreet gloriatur eos cu. Ne mollis ceteros eum, eos an
+> > quodsi corpora. Modo ferri porro eu vis, putent dictas eloquentiam eos id.
+> > Ei eum odio possim definiebas, eum noster doctus ea. Exerci nemore
+> > gloriatur et vim! In torquatos sadipscing ius, ius ut debet dicant
+> > senserit. Eu mel omnes ubique, et consul hendrerit constituam mea, et has
+> > dicta integre? Cu eam suas libris? Nisl autem facilis duo ea, meis latine
+> > intellegam quo an. Zril nonumes officiis te sed, pri harum luptatum
+> > disputationi ex. Ei vel illum tantas constituam, per stet oratio corpora
+> > ei, cum tale natum illud in! Has ei ponderum posidonium, mundi feugiat
+> > ponderum at usu, ut vim dictas principes.
+> >
+>
+> Tantas fuisset adversarium eos ei, quas dolorum albucius sea ne. Mea eu
+> pertinax consequat, eu mei nostrud facilisis, ut denique sadipscing sed? Eu
+> fugit elitr pericula per, nemore disputando his et. Ei stet putent
+> instructior eam, id civibus similique vim, est suas postea audire te! Error
+> cetero et sed. Eu quis animal pertinax mei, an nec omittam hendrerit? Ut
+> melius utroque laboramus qui?
+
+Lorem ipsum dolor sit amet, no choro invidunt mel, an blandit eligendi
+maluisset eam. Ne eam splendide omittantur. Eu vix ferri appareat sententiae,
+eum falli menandri ne. Malis bonorum ius eu, utinam honestatis vix at, dicta
+delicatissimi eu mei. Ponderum quaerendum efficiantur pro ex, cum an tota
+nonumy efficiantur.
+
+- Ea insolens quaerendum mea. An pro viris quidam liberavisse, lorem facer
+ erroribus ad mel. At sea graece concludaturque, duo in impedit accumsan
+ consequat. Cu pri dolorum vituperata, et vis aliquando complectitur, elitr
+ constituam ius no.
+
+- No detraxit ocurreret sed. Mundi omnes solet qui no, nam ex viderer
+ constituto. Et quo scripta aliquam gloriatur. At audiam dolorem ius, malis
+ omnes sensibus sit ut, eum quod euripidis ad. At nec verear senserit,
+ diceret honestatis et vel, quis conceptam et nec. Eam probo option ea.
+
+- Ius summo dolore te, in quo choro tritani atomorum? Esse putant nec te?
+ Consul iuvaret debitis vix ei. Sit dicta quando legere no, quas novum
+ adolescens at his, cu est mutat equidem. Ea mea tation bonorum, mel
+ complectitur deterruisset id. Vim ut dicunt tamquam, et his illud invenire.
+
+- Mei at quas ceteros tibique? Prompta ceteros persequeris usu ut, quo
+ appareat indoctum id, choro quidam iisque mea eu. Ea vide nonumy ceteros
+ qui, vix no reque dolores necessitatibus, id fugit libris facilisis sit! Ne
+ ocurreret honestatis nam. Ex reque maluisset per, eam facer ludus dicam ad.
+ Eam modus impedit intellegat ei! Per no libris utamur nostrum, cu sed mollis
+ accusamus.
+
+- Nam at nibh meis singulis, augue aliquando liberavisse eos ea. Audire
+ facilis perpetua mel ea. Vel te oportere indoctum volutpat, omittam eligendi
+ patrioque per an. Nec ut eirmod appetere deterruisset, dico insolens no pri,
+ solum liber vituperata at sit? Sea id ipsum fugit viris.
+
+
+
+- Sea bonorum instructior consectetuer in. Eum ex impedit volutpat. Pro an
+ stet definiebas necessitatibus. Aperiam facilis his et! Ei vim labitur
+ petentium, illum contentiones duo in? Id sed sale scriptorem. Sed et tollit
+ albucius?
+