summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2022-11-21 18:18:01 +0100
committerUlrich Müller <ulm@gentoo.org>2022-11-21 18:19:20 +0100
commit2ed2e1cfbabf9e75e2dfbc9341a152db254bc19e (patch)
treeafda8ffe2dd7cb4b2bb0c8db1b4e1114c16c9040 /app-editors
parentnet-print/hplip-plugin: drop 3.22.4 (diff)
downloadgentoo-2ed2e1cfbabf9e75e2dfbc9341a152db254bc19e.tar.gz
gentoo-2ed2e1cfbabf9e75e2dfbc9341a152db254bc19e.tar.bz2
gentoo-2ed2e1cfbabf9e75e2dfbc9341a152db254bc19e.zip
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>
Diffstat (limited to 'app-editors')
-rw-r--r--app-editors/teco/files/teco-more-warnings.patch149
-rw-r--r--app-editors/teco/files/teco-void-functions.patch20
-rw-r--r--app-editors/teco/teco-36_p19940820-r1.ebuild59
3 files changed, 219 insertions, 9 deletions
diff --git a/app-editors/teco/files/teco-more-warnings.patch b/app-editors/teco/files/teco-more-warnings.patch
new file mode 100644
index 000000000000..dd072e6f97eb
--- /dev/null
+++ b/app-editors/teco/files/teco-more-warnings.patch
@@ -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 */
diff --git a/app-editors/teco/files/teco-void-functions.patch b/app-editors/teco/files/teco-void-functions.patch
index f8a1d7ad346e..ee08d1ace9ea 100644
--- a/app-editors/teco/files/teco-void-functions.patch
+++ b/app-editors/teco/files/teco-void-functions.patch
@@ -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()
diff --git a/app-editors/teco/teco-36_p19940820-r1.ebuild b/app-editors/teco/teco-36_p19940820-r1.ebuild
new file mode 100644
index 000000000000..8372bb8b385a
--- /dev/null
+++ b/app-editors/teco/teco-36_p19940820-r1.ebuild
@@ -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
+}