commit:     1e312126df0b0debe1e16baf40d210c0377df4fb
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu May 11 00:36:32 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu May 11 00:36:32 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1e312126

app-accessibility/nfbtrans: fix modern C issues

Closes: https://bugs.gentoo.org/874390
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../nfbtrans/files/nfbtrans-7.74-modern-c.patch    | 98 ++++++++++++++++++++++
 app-accessibility/nfbtrans/nfbtrans-7.74-r3.ebuild | 49 +++++++++++
 2 files changed, 147 insertions(+)

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
+}

Reply via email to