summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-text/vilistextum/Manifest1
-rw-r--r--app-text/vilistextum/files/vilistextum-2.8.0.20200411-blockquote.patch120
-rw-r--r--app-text/vilistextum/files/vilistextum-2.8.0.20200411-list-alignment.patch43
-rw-r--r--app-text/vilistextum/vilistextum-2.8.0.20200411.ebuild80
4 files changed, 244 insertions, 0 deletions
diff --git a/app-text/vilistextum/Manifest b/app-text/vilistextum/Manifest
index a8d25bac9f5..73b4114bac3 100644
--- a/app-text/vilistextum/Manifest
+++ b/app-text/vilistextum/Manifest
@@ -1,2 +1,3 @@
DIST vilistextum-2.6.9.tar.bz2 147743 BLAKE2B 1cf6f187cb277271ddd9946984afb4d59336ea0cd446e62df3593070ccc63b3510a107e2b7e7b8dc757c63e4f5caf3790c7d998b6be325f4d22d2a6b9fea3432 SHA512 ce76a4061b766e4544d1a86986333314a3b6959439ba6995a2977c10b01b0142c524d4b215c3272a1dcfcc4f5b6fda03210de95d65cedecfc6a1c940cedf487d
DIST vilistextum-2.8.0.20191023.tar.gz 219395 BLAKE2B 5e3962b4b18b9e6e3896f26e04a63394b3ed58473862f264a3255641b5d13474e12529acadcff3d2f71eb5a41ec7b11a1367f3da15e473551e87e554472f6727 SHA512 99023b4801159047e1433dc5a887e6164192f7aa25bdc79594e717f047f83177612e5120d55cbbc22f3ad4e225bc229a0b186f7fc337c6081ff27ac781422f4e
+DIST vilistextum-2.8.0.20200411.tar.gz 219791 BLAKE2B 95b86d17e8dbf29b520aa48c88eb8c9e8abb01a234848ed55bdad0a63a7c0ec8ca9ae7c437fe7f84bbf7f4dad74fc8437a9e3b53493552e9e01b8029b10ef18a SHA512 40a219ebe7bebd61548a3bad794690cf091b67b70e8e6c44548a0c1b9f61077b141a035335e7128b191a8501103707f5324b00326a407e29ec0fee383c4d0917
diff --git a/app-text/vilistextum/files/vilistextum-2.8.0.20200411-blockquote.patch b/app-text/vilistextum/files/vilistextum-2.8.0.20200411-blockquote.patch
new file mode 100644
index 00000000000..c8a7da2c212
--- /dev/null
+++ b/app-text/vilistextum/files/vilistextum-2.8.0.20200411-blockquote.patch
@@ -0,0 +1,120 @@
+Many clients seem to use blockquote tags to flag quotes these days, so
+write them out as quotes, so they remain readable.
+
+--- a/src/html_tags.c 2019-10-23 16:25:27.000000000 +0200
++++ b/src/html_tags.c 2020-02-05 20:11:57.308596941 +0100
+@@ -261,6 +261,7 @@
+ line_break();
+ } else {
+ start_p();
++ quote++;
+ }
+ } /* html_pre */
+
+@@ -271,6 +272,7 @@
+ line_break();
+ } else {
+ paragraphen_ende();
++ quote -= quote != 0;
+ }
+ } /* html_pre_end */
+
+--- a/src/multibyte.h 2020-02-05 20:08:43.863715764 +0100
++++ b/src/multibyte.h 2020-02-05 20:12:34.401382354 +0100
+@@ -18,6 +18,7 @@
+ #define ATOI(n) wcstoi(n)
+
+ #define ONESPACE L" "
++ #define QUOTE L">"
+ #define WORT_PLUS_STRING(str) wort_plus_string(L##str)
+
+ #define STRSTR(haystack, needle) wcsstr(haystack, L##needle)
+@@ -43,6 +44,7 @@
+ #define ATOI(n) atoi(n)
+
+ #define ONESPACE " "
++ #define QUOTE ">"
+ #define WORT_PLUS_STRING(str) wort_plus_string(str)
+
+ #define STRSTR(haystack, needle) strstr(haystack, needle)
+--- a/src/text.c 2019-10-23 16:25:27.000000000 +0200
++++ b/src/text.c 2020-02-05 20:16:04.852164539 +0100
+@@ -28,6 +28,7 @@
+ int breite=76,
+ hr_breite=76,
+ paragraph=0,
++ quote=0,
+
+ tab=4, /* tabulator */
+ spaces=0, /* spaces at beginning of line */
+@@ -378,6 +379,12 @@
+ printf(" z0: zeilen_pos: %d\n",zeilen_pos);
+ #endif
+ print_zeile();
++ if (quote > 0)
++ {
++ i=0;
++ while (i<quote) { zeile_plus_wort(QUOTE,1,1); i++; }
++ zeile_plus_wort(ONESPACE,1,1);
++ }
+ i=0;
+ while (i<spaces) { zeile_plus_wort(ONESPACE,1,1); i++; }
+ if (orderedlist>0) { zeile_plus_wort(ONESPACE,1,1); }
+@@ -398,6 +405,12 @@
+ printf(" z2: zeilen_len: %d\n",zeilen_len);
+ printf(" z2: zeilen_pos: %d\n",zeilen_pos);
+ #endif
++ if (quote > 0)
++ {
++ i=0;
++ while (i<quote) { zeile_plus_wort(QUOTE,1,1); i++; }
++ zeile_plus_wort(ONESPACE,1,1);
++ }
+ i=0;
+ while (i<spaces) { zeile_plus_wort(ONESPACE,1,1); i++; }
+ if (orderedlist>0) { zeile_plus_wort(ONESPACE,1,1); }
+--- a/src/text.h 2019-10-23 16:25:27.000000000 +0200
++++ b/src/text.h 2020-02-05 20:18:40.792261818 +0100
+@@ -26,6 +26,7 @@
+
+ extern int tab;
+ extern int spaces;
++extern int quote;
+
+ void print_zeile();
+ int is_zeile_empty();
+--- a/tests/test_functions
++++ b/tests/test_functions
+@@ -12,6 +12,9 @@
+ rm -f testcases/$prefix.output.test
+ ../src/vilistextum 2>/dev/null $args testcases/$prefix.html testcases/$output_prefix.output.test
+
++ # remove (block)quotes
++ sed -i -e 's/^>\+ //' testcases/$output_prefix.output.test
++
+ diff >/dev/null testcases/$output_prefix.output testcases/$output_prefix.output.test
+ retval=$?
+ if [ $retval -ne 0 ]; then
+--- a/tests/testcases/utf-8-sampler.output
++++ b/tests/testcases/utf-8-sampler.output.test
+@@ -100,8 +100,8 @@
+ ვეპხის ტყაოსანი შოთა რუსთაველი
+
+ ღმერთსი შემვედრე, ნუთუ კვლა დამხსნას სოფლისა შრომასა, ცეცხლს, წყალსა და
+-მიწასა, ჰაერთა თანა მრომასა; მომცნეს ფრთენი და აღვფრინდე, მივჰხვდე მას ჩემსა
+-ნდომასა, დღისით და ღამით ვჰხედვიდე მზისა ელვათა კრთომაასა.
++მიწასა, ჰაერთა თანა მრომასა; მომცნეს ფრთენი და აღვფრინდე, მივჰხვდე მას
++ჩემსა ნდომასა, დღისით და ღამით ვჰხედვიდე მზისა ელვათა კრთომაასა.
+
+ Tamil poetry of Cupiramaniya Paarathiyar: சுப்ரமணிய பாரதியார் (1882-1921)
+
+@@ -446,7 +446,8 @@
+ д, п, and/or т:
+
+ Bulgarian:   [ бгдпт ]   [ бгдпт ]   Мога да ям стъкло и не ме боли.
+- Russian: [ бгдпт ]   [ бгдпт ]   Я могу есть стекло, это мне не вредит.
++ Russian: [ бгдпт ]   [ бгдпт ]   Я могу есть стекло, это мне не
++вредит.
+ Serbian: [ бгдпт ]   [ бгдпт ]   Могу јести стакло а да ми не шкоди.
+
+ ------------------------------------------------------------------------
diff --git a/app-text/vilistextum/files/vilistextum-2.8.0.20200411-list-alignment.patch b/app-text/vilistextum/files/vilistextum-2.8.0.20200411-list-alignment.patch
new file mode 100644
index 00000000000..65541b7a74f
--- /dev/null
+++ b/app-text/vilistextum/files/vilistextum-2.8.0.20200411-list-alignment.patch
@@ -0,0 +1,43 @@
+--- a/src/lists.c
++++ b/src/lists.c
+@@ -74,6 +74,7 @@
+ }
+
+ spaces += tab;
++ orderedlist++;
+ #ifdef proc_debug
+ printf("start_uls() ende\n");
+ #endif
+@@ -82,6 +83,7 @@
+ void end_uls()
+ {
+ spaces -= tab;
++ orderedlist--;
+ line_break();
+
+ if (bullet_style=='%') { bullet_style='$'; }
+--- a/src/text.c
++++ b/src/text.c
+@@ -387,7 +387,11 @@
+ }
+ i=0;
+ while (i<spaces) { zeile_plus_wort(ONESPACE,1,1); i++; }
+- if (orderedlist>0) { zeile_plus_wort(ONESPACE,1,1); }
++ if (orderedlist>0)
++ {
++ i=(spaces%tab) + 1;
++ while (i>0) { zeile_plus_wort(ONESPACE,1,1); i--; }
++ }
+ zeile_plus_wort(wort, wort_len, wort_pos);
+ }
+ else if (zeilen_len != 0)
+--- a/src/text.h
++++ b/src/text.h
+@@ -27,6 +27,7 @@
+ extern int tab;
+ extern int spaces;
+ extern int quote;
++extern int orderedlist;
+
+ void print_zeile();
+ int is_zeile_empty();
diff --git a/app-text/vilistextum/vilistextum-2.8.0.20200411.ebuild b/app-text/vilistextum/vilistextum-2.8.0.20200411.ebuild
new file mode 100644
index 00000000000..dd8c207c466
--- /dev/null
+++ b/app-text/vilistextum/vilistextum-2.8.0.20200411.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools flag-o-matic
+
+GITID="06cc8a637efd9097af4f138b1b7c755120ffaa88"
+DESCRIPTION="HTML to ASCII converter programmed to handle incorrect html"
+HOMEPAGE="https://bhaak.net/vilistextum/"
+SRC_URI="https://github.com/bhaak/vilistextum/archive/${GITID}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${GITID}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE="unicode"
+
+DEPEND="virtual/libiconv"
+RDEPEND=""
+
+src_prepare() {
+ eapply "${FILESDIR}/${PN}-2.8.0-prefix.patch"
+ eapply "${FILESDIR}/${PN}-2.8.0.20200411-blockquote.patch"
+ eapply "${FILESDIR}/${PN}-2.8.0-towlower.patch"
+ eapply "${FILESDIR}/${PN}-2.8.0.20200411-list-alignment.patch"
+
+ eapply_user
+ eautoreconf
+
+ # wcscasecmp needs extensions, which aren't enabled
+ export ac_cv_func_wcscasecmp=no
+}
+
+get_locale() {
+ locale -a | grep -i "$1\.utf.*8\$"
+}
+
+find_locale() {
+ local l t
+
+ # we basically prefer to find en_US.UTF-8, but it may not always be
+ # available, in which case it is better not to hardcode to use it
+ l=$(get_locale en_US)
+ if [[ -z ${l} ]] ; then
+ for t in "en_GB" "en_.*" ".*" ; do
+ l=$(get_locale ${t})
+ if [[ -n ${l} ]] ; then
+ l=${l%%$'\n'*}
+ break;
+ fi
+ done
+ fi
+ [[ -z ${l} ]] && die "Failed to find a unicode locale"
+ echo "${l}"
+}
+
+src_configure() {
+ # need hardwired locale simply because locale -a | grep -i utf-8 | head -n1
+ # isn't always returning the most sensical (and working) locale
+ econf \
+ $(use_enable unicode multibyte) \
+ $(use_with unicode unicode-locale $(find_locale))
+}
+
+src_test() {
+ if $(locale -a | grep -iq "en_US\.utf.*8"); then
+ emake -j1 check
+ else
+ ewarn "If you like to run the test,"
+ ewarn "please make sure en_US.UTF-8 is installed."
+ die "en_US.UTF-8 locale is missing"
+ fi
+}
+
+src_install() {
+ default
+ doman doc/${PN}.1
+ dodoc doc/changes.xhtml doc/htmlmail.xhtml
+}