summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-05-11 01:36:32 +0100
committerSam James <sam@gentoo.org>2023-05-11 01:36:32 +0100
commit1e312126df0b0debe1e16baf40d210c0377df4fb (patch)
tree8dad579e071a7b4d6e82f3d25325a07fd939dd7c /app-accessibility
parentmedia-libs/plib: build w/ c++03 (-Wregister) (diff)
downloadgentoo-1e312126df0b0debe1e16baf40d210c0377df4fb.tar.gz
gentoo-1e312126df0b0debe1e16baf40d210c0377df4fb.tar.bz2
gentoo-1e312126df0b0debe1e16baf40d210c0377df4fb.zip
app-accessibility/nfbtrans: fix modern C issues
Closes: https://bugs.gentoo.org/874390 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-accessibility')
-rw-r--r--app-accessibility/nfbtrans/files/nfbtrans-7.74-modern-c.patch98
-rw-r--r--app-accessibility/nfbtrans/nfbtrans-7.74-r3.ebuild49
2 files changed, 147 insertions, 0 deletions
diff --git a/app-accessibility/nfbtrans/files/nfbtrans-7.74-modern-c.patch b/app-accessibility/nfbtrans/files/nfbtrans-7.74-modern-c.patch
new file mode 100644
index 000000000000..7752655138fe
--- /dev/null
+++ b/app-accessibility/nfbtrans/files/nfbtrans-7.74-modern-c.patch
@@ -0,0 +1,98 @@
+https://bugs.gentoo.org/874390
+
+Fix -Wimplicit-function-declaration and -Wformat-security.
+--- a/NFBTRANS.C
++++ b/NFBTRANS.C
+@@ -8,10 +8,12 @@
+ #else
+ #define UNIX_PATH "/etc/nfbtrans/"
+ #endif /* unix */
+-#include <stdio.h>
++#include <ctype.h>
++#include <stdio.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <stdlib.h>
++#include <unistd.h>
+ #ifdef DOS
+ #include <io.h>
+ #include <string.h>
+@@ -132,6 +134,12 @@ char *output_extension[2] = {".brf", ".txt"};
+ int paramcount;
+ char **paramstr;
+
++void strnset(char *string, char c, short n);
++int strcmpi(char *s1, char *s2);
++void unbuf_stdin();
++void restore_stdin();
++void save_stdin();
++
+ typedef struct
+ {
+ char *name;
+@@ -5130,7 +5138,7 @@ void insert_hyphen_word(int date_only)
+ field[l - 1] = 0; /* remove lf */
+ if (!lines)
+ { /* first line */
+- fprintf(tempfile, date_string);
++ fprintf(tempfile, "%s", date_string);
+ cptr = strchr(field, 'A');
+ if (cptr)
+ strcpy(field, cptr); /* get rid of date */
+@@ -5341,7 +5349,7 @@ void test_hyphen_dictionary(int mode)
+ /* open for r+ */
+ open_hyp_dictionary(hyphen_dic_name, 3, 1);
+ rewind(hyp_dic_ptr);
+- fprintf(hyp_dic_ptr, date_string);
++ fprintf(hyp_dic_ptr, "%s", date_string);
+ open_hyp_dictionary(hyphen_dic_name, 3, 2);
+ } /* date found on first line */
+ else
+@@ -6511,7 +6519,7 @@ void translate_file()
+ { /* no file args */
+ if (!indirect_ptr)
+ {
+- fprintf(stderr, menu[10]);
++ fprintf(stderr, "%s", menu[10]);
+ get_input(temp, 80);
+ if (!temp[0])
+ exit_program(0);
+@@ -6709,9 +6717,9 @@ void translate_file()
+ if (!trans_mode1)
+ { /* get secondary translation mode */
+ i = (trans_default / 10);
+- fprintf(stderr, menu[0]);
++ fprintf(stderr, "%s", menu[0]);
+ for (j = 5; j < 8; j++)
+- fprintf(stderr, menu[j]);
++ fprintf(stderr, "%s", menu[j]);
+ backspace_int(i);
+ do
+ {
+@@ -6744,7 +6752,7 @@ void translate_file()
+ } /* construct output name */
+ else
+ { /* prompt */
+- fprintf(stderr, menu[11]);
++ fprintf(stderr, "%s", menu[11]);
+ get_input(outf_name, MAXPATHLEN - 1);
+ } /* prompt */
+ if (!outf_name[0])
+@@ -7110,7 +7118,7 @@ void get_page_range()
+ if (pageend < pagestart)
+ { /* pageend */
+ pageend = 9999;
+- fprintf(stderr, menu[9]);
++ fprintf(stderr, "%s", menu[9]);
+ backspace_int(pageend);
+ get_input(temp, 5);
+ get_end_page(temp);
+@@ -7481,7 +7489,7 @@ int main(int argc, char *argv[])
+ { /* choose mode */
+ j = (trans_default % 10);
+ for (i = 0; i < 4; i++)
+- fprintf(stderr, menu[i]);
++ fprintf(stderr, "%s", menu[i]);
+ while (trans_mode < 1 || trans_mode > 3)
+ {
+ fprintf(stderr, "\n%s", menu[4]);
diff --git a/app-accessibility/nfbtrans/nfbtrans-7.74-r3.ebuild b/app-accessibility/nfbtrans/nfbtrans-7.74-r3.ebuild
new file mode 100644
index 000000000000..6e3e0b89805f
--- /dev/null
+++ b/app-accessibility/nfbtrans/nfbtrans-7.74-r3.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Braille translator from the National Federation of the Blind"
+HOMEPAGE="http://www.nfbnet.org/download/nfbtrans.htm"
+SRC_URI="http://www.nfb.org/Images/nfb/Products_Technology/nfbtr$(ver_rs 1-2 '').zip"
+S="${WORKDIR}"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+BDEPEND=">=app-arch/unzip-5.50-r2"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gentoo-fix.patch
+ "${FILESDIR}"/${P}-getline-fix.patch
+ "${FILESDIR}"/${P}-respect-ldflags.patch
+ "${FILESDIR}"/${P}-modern-c.patch
+)
+
+src_prepare() {
+ mv MAKEFILE Makefile || die
+ mv SPANISH.ZIP spanish.zip || die
+
+ default
+
+ emake lowercase
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ LIBS= \
+ CFLAGS="${CFLAGS} -DLINUX" \
+ LDFLAGS="${LDFLAGS}" \
+ all
+}
+
+src_install() {
+ dobin nfbtrans
+ dodoc *fmt readme.txt makedoc
+ insinto /etc/nfbtrans
+ doins *cnf *tab *dic spell.dat *zip
+}