app-editors/teco: More offerings to appease the gods of clang

Bump ebuild to EAPI 8 while at it.

Closes: https://bugs.gentoo.org/879041
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
This commit is contained in:
Ulrich Müller
2022-11-21 18:19:20 +01:00
parent 34d5b721a3
commit 2ed2e1cfba
3 changed files with 219 additions and 9 deletions
@@ -0,0 +1,149 @@
https://bugs.gentoo.org/879041
--- teco/te_defs.h
+++ teco/te_defs.h
@@ -320,7 +320,72 @@
extern char mapch[], mapch_l[]; /* char mapping tables */
extern unsigned char spec_chars[]; /* special character table */
-extern char skipto(), getcmdc(), getcmdc0(); /* routines that return chars */
+extern void block_inter(int func);
+extern void crlf(void);
+extern void delete1(int nchars);
+extern void dly_free_blist(struct buffcell *p);
+extern void do_ctlp(void);
+extern void do_e(void);
+extern void do_f(void);
+extern void do_o(void);
+extern void do_window(int ref_flag);
+extern void exec_cmds1(void);
+extern void exec_cmdstr(void);
+extern void find_enditer(void);
+extern void free_blist(struct buffcell *p);
+extern void insert1(void);
+extern void insert2(int count);
+extern void kill_output(struct outfiledata *outptr);
+extern void make_buffer(struct qh *p);
+extern void movenchars(struct qp *from, struct qp *to, int n);
+extern void moveuntil(struct qp *from, struct qp *to, char c,
+ int *n, int max, int trace);
+extern void panic(void);
+extern void pop_iteration(int arg);
+extern void retype_cmdstr(char c);
+extern void set_pointer(int pos, struct qp *ptr);
+extern void set_term_par(int lines, int cols);
+extern void set_var(int *arg);
+extern void setup_tty(int arg);
+extern void te_fx(void);
+extern void type_char(char c);
+extern void vt(int func);
+extern void window(int arg);
+extern void write_file(struct qp *wbuff, int nchars, int ffsw);
+extern char getcmdc(int trace);
+extern char getcmdc0(int trace);
+extern char gettty(void);
+extern char skipto(int arg);
+extern int backc(struct qp *arg);
+extern int build_string(struct qh *sbuff);
+extern int do_en(void);
+extern int do_eq(void);
+extern int do_eq1(char *shell);
+extern int do_fb(void);
+extern int do_glob(struct qh *gbuff);
+extern int do_nsearch(char arg);
+extern int do_search(int count);
+extern int end_search(int result);
+extern int fwdc(struct qp *arg);
+extern int fwdcx(struct qp *arg);
+extern int get_value(int d);
+extern int getqspec(int fors, char c);
+extern int gettty_nowait(void);
+extern int line_args(int d, struct qp *p);
+extern int lines(int arg);
+extern int peekcmdc(char arg);
+extern int read_cmdstr(void);
+extern int read_file(struct qp *rbuff, int *nchars, int endsw);
+extern int read_filename(int flag, char func);
+extern int read_stream(FILE *file, int *ff_found, struct qp *rbuff,
+ int *nchars, int endsw, int crlf_sw, int ff_sw);
+extern int setup_search(void);
+extern int srch_cmp(void);
+extern int tgetent(char *bp, const char *name);
+extern int tgetnum(const char *id);
+extern int w_lines(int n, struct qp *ps, struct qp *pd);
+extern int w_setptr(int loc, struct qp *pp);
+extern int w_overflow(int wd);
extern FILE *eisw; /* indirect command file pointer */
extern FILE *fopen();
--- teco/te_exec2.c
+++ teco/te_exec2.c
@@ -8,10 +8,15 @@
/* version for multiple buffers 04/19/89 11.29 */
#include "te_defs.h"
+#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/stat.h>
+/* these shouldn't be necessary, since we include unistd.h and sys/stat.h */
+extern int fchmod(int fd, mode_t mode);
+extern pid_t vfork(void);
+
void do_en_next(), set_var(), write_file(), write_stream();
void kill_output(), pop_iteration(), find_enditer(), find_endcond();
--- teco/te_fxstub.c
+++ teco/te_fxstub.c
@@ -10,7 +10,7 @@
#include "te_defs.h"
-te_fx()
+void te_fx()
{
ERROR(E_IFC);
}
--- teco/te_main.c
+++ teco/te_main.c
@@ -46,6 +46,7 @@
void cleanup(), print_string(), save_args(), read_startup(), get_term_par();
+int
main(argc, argv)
int argc; /* arg count */
char *argv[]; /* array of string pointers */
--- teco/te_rdcmd.c
+++ teco/te_rdcmd.c
@@ -7,6 +7,7 @@
#include "te_defs.h"
void retype_cmdstr(char c);
+int find_lasteol(void);
int ccount; /* count of chars read in */
int read_cmdstr()
--- teco/te_srch.c
+++ teco/te_srch.c
@@ -156,7 +156,7 @@
/* routine to do N, _, E_ searches: search, if search fails, then get */
/* next page and continue */
-do_nsearch(arg)
+int do_nsearch(arg)
char arg; /* arg is 'n', '_', or 'e' to define which search */
{
int scount; /* search count */
--- teco/te_utils.c
+++ teco/te_utils.c
@@ -144,7 +144,7 @@
return(1);
}
-fwdcx(arg)
+int fwdcx(arg)
struct qp *arg;
{
if ((*arg).c >= CELLSIZE-1) /* test char count for max */
@@ -6,7 +6,7 @@ https://bugs.gentoo.org/729254
#define SIGINTMASK 2
#endif
+void crlf(), type_char();
+void crlf(), type_char(char c);
+
int lf_sw; /* nonzero: make up a LF following an entered CR */
int ttyflags; /* flags for (stdin) file descriptor */
@@ -178,16 +178,18 @@ https://bugs.gentoo.org/729254
register int icnt;
--- teco-orig/te_main.c
+++ teco/te_main.c
@@ -44,6 +44,8 @@
@@ -44,6 +44,10 @@
#include "te_defs.h"
+void cleanup(), print_string(), save_args(), read_startup(), get_term_par();
+void cleanup(), read_startup(), get_term_par();
+void print_string(int arg);
+void save_args(int argc, char *argv[], struct qh *q);
+
main(argc, argv)
int argc; /* arg count */
char *argv[]; /* array of string pointers */
@@ -103,6 +105,7 @@
@@ -103,6 +107,7 @@
/* reset screen state, keyboard state; remove open output files */
@@ -195,7 +197,7 @@ https://bugs.gentoo.org/729254
cleanup()
{
window(WIN_OFF); /* restore screen */
@@ -115,6 +118,7 @@
@@ -115,6 +120,7 @@
/* print string for error message */
/* argument is subscript of a qreg qh, prints text from that buffer */
@@ -203,7 +205,7 @@ https://bugs.gentoo.org/729254
print_string(arg)
int arg;
{
@@ -137,6 +141,7 @@
@@ -137,6 +143,7 @@
/* copy invocation command line to a text buffer */
@@ -211,7 +213,7 @@ https://bugs.gentoo.org/729254
save_args(argc, argv, q)
int argc;
char *argv[];
@@ -171,6 +176,7 @@
@@ -171,6 +178,7 @@
char startup_name[] = "/.tecorc"; /* name of startup file */
@@ -219,7 +221,7 @@ https://bugs.gentoo.org/729254
read_startup()
{
char *hp, *getenv();
@@ -192,6 +198,7 @@
@@ -192,6 +200,7 @@
/* routine to get terminal height and width from termcap */
@@ -233,7 +235,7 @@ https://bugs.gentoo.org/729254
/* version for multiple buffers 04/13/89 10.22 */
#include "te_defs.h"
+void retype_cmdstr();
+void retype_cmdstr(char c);
int ccount; /* count of chars read in */
int read_cmdstr()
@@ -0,0 +1,59 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit toolchain-funcs flag-o-matic readme.gentoo-r1
DESCRIPTION="Classic TECO editor, Predecessor to EMACS"
HOMEPAGE="https://www.ibiblio.org/pub/linux/apps/editors/tty/ https://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/teco/"
SRC_URI="https://www.ibiblio.org/pub/linux/apps/editors/tty/teco.tar.gz -> ${P}.tar.gz
doc? ( https://dev.gentoo.org/~ulm/distfiles/tecodoc.tar.gz )"
S="${WORKDIR}"
LICENSE="freedist"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="doc"
RDEPEND="sys-libs/ncurses:0="
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${PN}-double-free.patch
"${FILESDIR}"/${PN}-gcc4.patch
"${FILESDIR}"/${PN}-warnings.patch
"${FILESDIR}"/${PN}-no-common.patch
"${FILESDIR}"/${PN}-void-functions.patch
"${FILESDIR}"/${PN}-more-warnings.patch
)
src_prepare() {
default
local pkg_config=$("$(tc-getPKG_CONFIG)" --libs ncurses)
sed -i -e "s:\$(CC):& \$(LDFLAGS):;s:-ltermcap:${pkg_config}:" \
Makefile || die
}
src_compile() {
append-flags -ansi
append-cppflags -D_POSIX_SOURCE
emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
}
src_install() {
dobin te
doman te.1
dodoc sample.tecorc sample.tecorc2 READ.ME
use doc && dodoc doc/*
local DOC_CONTENTS="The TECO binary is called te.
\nSample configurations and documentation are available
in /usr/share/doc/${PF}/."
readme.gentoo_create_doc
}
pkg_postinst() {
readme.gentoo_print_elog
}