summaryrefslogtreecommitdiff
path: root/app-office/sc
diff options
context:
space:
mode:
Diffstat (limited to 'app-office/sc')
-rw-r--r--app-office/sc/Manifest8
-rw-r--r--app-office/sc/files/sc-7.16-amd64.patch23
-rw-r--r--app-office/sc/files/sc-7.16-c.patch147
-rw-r--r--app-office/sc/files/sc-7.16-lex-syntax.patch11
-rw-r--r--app-office/sc/files/sc-7.16-printf.patch102
-rw-r--r--app-office/sc/metadata.xml9
-rw-r--r--app-office/sc/sc-7.16-r1.ebuild57
-rw-r--r--app-office/sc/sc-7.16-r2.ebuild68
8 files changed, 425 insertions, 0 deletions
diff --git a/app-office/sc/Manifest b/app-office/sc/Manifest
new file mode 100644
index 000000000000..36152af3f40e
--- /dev/null
+++ b/app-office/sc/Manifest
@@ -0,0 +1,8 @@
+AUX sc-7.16-amd64.patch 344 BLAKE2B f7447d384be28e7fcd19851128b565b784b2255f29f345ceb2b22350c7fec2f1843ef37a9437277e8cab6c3892afcd105f8e6f991e8fcfe676f0223b51752592 SHA512 321843f521ee5ca0adcaf90796e293e83d8edcde786b133ae1ba2e117a7b77ee5a1cfd74c89359d72bd9fab39e2eb670b775af98badeaea5c91b5bb9d2d422e3
+AUX sc-7.16-c.patch 4345 BLAKE2B 622f8200d7bce8606ae65368fee3cfbfdeabb042c814cd903130e54d7953dea3193a047b616b8cec39b58dbafed50f7c706273c2d77dfefdc142516a26b26abc SHA512 a5423dc5eada7d7d5f3e5f514479dde920b01d1e99ee9903b2e19381e4e895881df3b744d37dd5dcbc88e78decafef57e79afae017abe1e68833f8789246aa51
+AUX sc-7.16-lex-syntax.patch 207 BLAKE2B 02ef6909652247141eddd8845c83879789133e878abc05d0b4db55536b594f0ccb8453735d66e0f927498d35ee8fd5c556f43179e1dc272c4d98539e3e2cf460 SHA512 d4f6673a51f27034deb38595cd5a7ccb3a4027f14a9697b22b0d59763c6dd9df61e81d8749013f0eb9add370d9fdef4370c26e39d67d24b8573f93b600713a2a
+AUX sc-7.16-printf.patch 3242 BLAKE2B 824673b0798f0a268cfb755ddd661d9f84673a49ef456341124669d0f4119e23b21f3ba3e0786ea5cfaafd51ce0ceb32b6a4236ca01bbf58d647d9f8adc126da SHA512 2ad30d2394256ec1c740565507c5672d37d0380a3e2b619fdddff65749e03c57bb3b1a9d08b962751120aa063b39f3042b29906a6819076c1777c726d903791b
+DIST sc-7.16.tar.gz 210809 BLAKE2B d497d935342e942662f28605be60504e71afa0a3f148275afb19a317c546eb39c849b80195a1f1eeb2dc5e5250e3907673713585459ecde5e10714864860d3cf SHA512 efa495ba21d01b578a53f09101ccc28b564437317e0860904ad59136a24df9619dfc8715339296ae1567eaa8d620cdabc9bc2784962bc1c93e3bbd086856407b
+EBUILD sc-7.16-r1.ebuild 1390 BLAKE2B 6adca89debb8e39450db181c5e6bb065eae573037e0cdbbdc774669d74eb7c3eaa601e187c64888665b5fbc0970bde8e15f593e406a606c2a9f1a95f307c97ac SHA512 2048804999b3dc18291d46d7e808a3ea7a6cf86e69cf9b5ebd18dcf66e7b1c551997030429cabd1cc53ad477add853c552a83de98a7e6579b5de779090b1aceb
+EBUILD sc-7.16-r2.ebuild 1393 BLAKE2B a75d23ce8024943e3678d82004f5966eccb080109d6536b646b503983426d1b27685135131129c61279c4be9927bd7e82b2857a22144276cda72460bd788d2e7 SHA512 e81b51073d8a7b0ffc66fc9cb6d2abbd23a12480bef111007d04774c99a9644208b2804536a41f8f937d02da334c7599331f33ac27039e6e461417ac4a589e27
+MISC metadata.xml 305 BLAKE2B a30ed0bef58b07807c1bbc48c8530277e2ed3f36c4dcc2c5f3cf39a0aebc8983297660d7116c747a97d31db38df8b3ec0c9ce9c87d7d8cde724bd4c56add283d SHA512 b023b745f213339706f73ad2404536ce259461346d33a182aed31d9f7904fc8e392629794561f133953cbe22010b1e2b41caeee56472a6ecda0444f6594317d8
diff --git a/app-office/sc/files/sc-7.16-amd64.patch b/app-office/sc/files/sc-7.16-amd64.patch
new file mode 100644
index 000000000000..e381609011bb
--- /dev/null
+++ b/app-office/sc/files/sc-7.16-amd64.patch
@@ -0,0 +1,23 @@
+--- a/xmalloc.c
++++ b/xmalloc.c
+@@ -3,19 +3,12 @@
+ * $Revision: 7.16 $
+ */
+
++#include <stdlib.h>
+ #include <curses.h>
+ #include "sc.h"
+
+-extern char *malloc();
+-extern char *realloc();
+-extern void free();
+ void fatal();
+
+-#ifdef SYSV3
+-extern void free();
+-extern void exit();
+-#endif
+-
+ #define MAGIC (double)1234567890.12344
+
+ char *
diff --git a/app-office/sc/files/sc-7.16-c.patch b/app-office/sc/files/sc-7.16-c.patch
new file mode 100644
index 000000000000..fd4f06f9f8c8
--- /dev/null
+++ b/app-office/sc/files/sc-7.16-c.patch
@@ -0,0 +1,147 @@
+--- a/abbrev.c
++++ b/abbrev.c
+@@ -122,7 +122,7 @@
+ del_abbr(char *abbrev)
+ {
+ struct abbrev *a;
+- struct abbrev **prev;
++ struct abbrev **prev = NULL;
+
+ if (!(a = find_abbr(abbrev, strlen(abbrev), prev)))
+ return;
+--- a/help.c
++++ b/help.c
+@@ -14,6 +14,10 @@
+ #include "sc.h"
+ #endif /* QREF */
+
++#ifdef TROFF
++#include <stdlib.h>
++#endif /* TROFF */
++
+ char *intro[] = {
+ " ",
+ #if defined(QREF) && defined(TROFF)
+--- a/lex.c
++++ b/lex.c
+@@ -27,6 +27,8 @@
+
+ #ifdef IEEE_MATH
+ #include <ieeefp.h>
++#else
++#include <math.h>
+ #endif /* IEEE_MATH */
+
+ #include <stdlib.h>
+--- a/sc.h
++++ b/sc.h
+@@ -14,6 +14,9 @@
+ #include <stdio.h>
+ #endif
+
++#include <unistd.h>
++#include <curses.h>
++
+ #define ATBL(tbl, row, col) (*(tbl + row) + (col))
+
+ #define MINROWS 100 /* minimum size at startup */
+@@ -390,6 +393,7 @@
+ extern char *v_name(int row, int col);
+ extern double eval(register struct enode *e);
+ extern int any_locked_cells(int r1, int c1, int r2, int c2);
++extern int are_abbrevs();
+ extern int are_colors();
+ extern int are_frames();
+ extern int are_ranges();
+@@ -425,6 +429,7 @@
+ extern struct crange *find_crange(int row, int col);
+ extern struct frange *find_frange(int row, int col);
+ extern void EvalAll();
++extern void add_abbr(char *string);
+ extern void add_crange(struct ent *r_left, struct ent *r_right, int pair);
+ extern void add_frange(struct ent *or_left, struct ent *or_right,
+ struct ent *ir_left, struct ent *ir_right, int toprows, int bottomrows,
+@@ -434,6 +439,7 @@
+ extern void addplugin(char *ext, char *plugin, char type);
+ extern void backcol(int arg);
+ extern void backrow(int arg);
++extern void center(int sr, int sc, int er, int ec);
+ extern void change_color(int pair, struct enode *e);
+ extern void checkbounds(int *rowp, int *colp);
+ extern void clearent(struct ent *v);
+@@ -456,9 +462,12 @@
+ extern void diesave();
+ extern void doend(int rowinc, int colinc);
+ extern void doformat(int c1, int c2, int w, int p, int r);
++extern void dogetkey();
+ extern void dupcol();
+ extern void duprow();
+ extern void doquery(char *s, char *data, int fd);
++extern void doeval(struct enode *e, char *fmt, int row, int col, int fd);
++extern void doseval(struct enode *e, int row, int col, int fd);
+ extern void dostat(int fd);
+ extern void dotick(int tick);
+ extern void editexp(int row, int col);
+@@ -486,11 +495,14 @@
+ extern void free_ent(register struct ent *p, int unlock);
+ extern void getexp(int r0, int c0, int rn, int cn, int fd);
+ extern void getfmt(int r0, int c0, int rn, int cn, int fd);
++extern void getframe(int fd);
+ extern void getformat(int col, int fd);
+ extern void getnum(int r0, int c0, int rn, int cn, int fd);
++extern void getrange(char *name, int fd);
+ extern void getstring(int r0, int c0, int rn, int cn, int fd);
+ extern void go_last();
+ extern void goraw();
++extern void gotonote();
+ extern void help();
+ extern void hide_col(int arg);
+ extern void hide_row(int arg);
+@@ -507,6 +519,8 @@
+ extern void label(register struct ent *v, register char *s, int flushdir);
+ extern void let(struct ent *v, struct enode *e);
+ extern void list_colors(FILE *f);
++extern void ljustify(int sr, int sc, int er, int ec);
++extern void list_frames(FILE *f);
+ extern void list_ranges(FILE *f);
+ extern void lock_cells(struct ent *v1, struct ent *v2);
+ extern void markcell();
+@@ -523,6 +537,7 @@
+ extern void read_hist();
+ extern void remember(int save);
+ extern void resetkbd();
++extern void rjustify(int sr, int sc, int er, int ec);
+ extern void rowshow_op();
+ extern void scxfree(char *p);
+ extern void setauto(int i);
+@@ -560,6 +575,9 @@
+ extern void write_line(int c);
+ extern void write_ranges(FILE *f);
+ extern void yank_area(int sr, int sc, int er, int ec);
++extern void yankcol(int arg);
++extern void yankr(struct ent *v1, struct ent *v2);
++extern void yankrow(int arg);
+ extern void yyerror(char *err);
+ extern int yylex();
+ extern int yyparse();
+--- a/screen.c
++++ b/screen.c
+@@ -870,7 +870,7 @@
+ }
+ } /* else */
+ } else
+- if (!*pp && color && has_colors && cr && cr->r_color != 1) {
++ if (!*pp && color && has_colors() && cr && cr->r_color != 1) {
+ move(r, c);
+ color_set(cr->r_color, NULL);
+ printw("%*s", fwidth[col], " ");
+--- a/vi.c
++++ b/vi.c
+@@ -5,6 +5,7 @@
+ */
+
+ #include <sys/types.h>
++#include <sys/wait.h>
+ #ifdef BSD42
+ #include <strings.h>
+ #else
diff --git a/app-office/sc/files/sc-7.16-lex-syntax.patch b/app-office/sc/files/sc-7.16-lex-syntax.patch
new file mode 100644
index 000000000000..9dcb46f25f83
--- /dev/null
+++ b/app-office/sc/files/sc-7.16-lex-syntax.patch
@@ -0,0 +1,11 @@
+--- a/lex.c
++++ b/lex.c
+@@ -107,7 +107,7 @@
+ yylex()
+ {
+ char *p = line + linelim;
+- int ret;
++ int ret = 0;
+ static int isfunc = 0;
+ static bool isgoto = 0;
+ static bool colstate = 0;
diff --git a/app-office/sc/files/sc-7.16-printf.patch b/app-office/sc/files/sc-7.16-printf.patch
new file mode 100644
index 000000000000..9425105262b0
--- /dev/null
+++ b/app-office/sc/files/sc-7.16-printf.patch
@@ -0,0 +1,102 @@
+--- a/sc.c
++++ b/sc.c
+@@ -520,7 +520,7 @@
+ break;
+ }
+ }
+- if (redraw) printf(redraw);
++ if (redraw) printf("%s", redraw);
+ exit (0);
+ }
+
+--- a/gram.y
++++ b/gram.y
+@@ -1010,7 +1010,7 @@
+ | S_PLUGOUT STRING '=' STRING
+ { addplugin($2, $4, 'w'); }
+ | PLUGIN { *line = '|';
+- sprintf(line + 1, $1);
++ sprintf(line + 1, "%s", $1);
+ readfile(line, 0);
+ scxfree($1); }
+ | /* nothing */
+--- a/vmtbl.c
++++ b/vmtbl.c
+@@ -61,10 +61,10 @@
+ oldptr = newptr /* wait incase we can't alloc */
+
+ #ifndef PSC
+-static char nolonger[] = "The table can't be any longer";
++#define NOLONGER "The table can't be any longer"
+ #endif /* !PSC */
+
+-static char nowider[] = "The table can't be any wider";
++#define NOWIDER "The table can't be any wider"
+
+ /*
+ * grow the main && auxiliary tables (reset maxrows/maxcols as needed)
+@@ -117,7 +117,7 @@
+ if ((rowcol == GROWCOL) || (rowcol == GROWBOTH)) {
+ if ((rowcol == GROWCOL) && ((maxcols == ABSMAXCOLS) ||
+ (topcol >= ABSMAXCOLS))) {
+- error(nowider);
++ error(NOWIDER);
+ return (FALSE);
+ }
+
+@@ -135,14 +135,14 @@
+ struct ent *** lnullit;
+ int lcnt;
+
+- GROWALLOC(row_hidden2, row_hidden, newrows, char, nolonger);
++ GROWALLOC(row_hidden2, row_hidden, newrows, char, NOLONGER);
+ memset(row_hidden+maxrows, 0, (newrows-maxrows)*sizeof(char));
+
+ /*
+ * alloc tbl row pointers, per net.lang.c, calloc does not
+ * necessarily fill in NULL pointers
+ */
+- GROWALLOC(tbl2, tbl, newrows, struct ent **, nolonger);
++ GROWALLOC(tbl2, tbl, newrows, struct ent **, NOLONGER);
+ for (lnullit = tbl+maxrows, lcnt = 0; lcnt < newrows-maxrows;
+ lcnt++, lnullit++)
+ *lnullit = (struct ent **)NULL;
+@@ -151,16 +151,16 @@
+ #endif /* !PSC */
+
+ if ((rowcol == GROWCOL) || (rowcol == GROWBOTH) || (rowcol == GROWNEW)) {
+- GROWALLOC(fwidth2, fwidth, newcols, int, nowider);
+- GROWALLOC(precision2, precision, newcols, int, nowider);
+- GROWALLOC(realfmt2, realfmt, newcols, int, nowider);
++ GROWALLOC(fwidth2, fwidth, newcols, int, NOWIDER);
++ GROWALLOC(precision2, precision, newcols, int, NOWIDER);
++ GROWALLOC(realfmt2, realfmt, newcols, int, NOWIDER);
+ #ifdef PSC
+ memset(fwidth+maxcols, 0, (newcols-maxcols)*sizeof(int));
+ memset(precision+maxcols, 0, (newcols-maxcols)*sizeof(int));
+ memset(realfmt+maxcols, 0, (newcols-maxcols)*sizeof(int));
+ }
+ #else
+- GROWALLOC(col_hidden2, col_hidden, newcols, char, nowider);
++ GROWALLOC(col_hidden2, col_hidden, newcols, char, NOWIDER);
+ memset(col_hidden+maxcols, 0, (newcols-maxcols)*sizeof(char));
+ for (i = maxcols; i < newcols; i++) {
+ fwidth[i] = DEFWIDTH;
+@@ -172,7 +172,7 @@
+ for (i = 0; i < maxrows; i++) {
+ if ((tbl[i] = (struct ent **)scxrealloc((char *)tbl[i],
+ (unsigned)(newcols * sizeof(struct ent **)))) == (struct ent **)0) {
+- error(nowider);
++ error(NOWIDER);
+ return(FALSE);
+ }
+ for (nullit = ATBL(tbl, i, maxcols), cnt = 0;
+@@ -190,7 +190,7 @@
+ for (; i < newrows; i++) {
+ if ((tbl[i] = (struct ent **)scxmalloc((unsigned)(newcols *
+ sizeof(struct ent **)))) == (struct ent **)0) {
+- error(nowider);
++ error(NOWIDER);
+ return(FALSE);
+ }
+ for (nullit = tbl[i], cnt = 0; cnt < newcols; cnt++, nullit++)
diff --git a/app-office/sc/metadata.xml b/app-office/sc/metadata.xml
new file mode 100644
index 000000000000..dc41733bdb11
--- /dev/null
+++ b/app-office/sc/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<!-- maintainer-needed -->
+<longdescription lang="en">
+sc is a free curses-based spreadsheet program that uses key bindings similar to
+vi and less
+</longdescription>
+</pkgmetadata>
diff --git a/app-office/sc/sc-7.16-r1.ebuild b/app-office/sc/sc-7.16-r1.ebuild
new file mode 100644
index 000000000000..46a5705bfb3b
--- /dev/null
+++ b/app-office/sc/sc-7.16-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils multilib toolchain-funcs
+
+DESCRIPTION="Spreadsheet Calculator"
+SRC_URI="ftp://ibiblio.org/pub/Linux/apps/financial/spreadsheet/${P}.tar.gz"
+HOMEPAGE="http://ibiblio.org/pub/Linux/apps/financial/spreadsheet/"
+
+SLOT="0"
+LICENSE="public-domain"
+KEYWORDS="amd64 ppc sparc x86"
+
+COMMON_DEPEND=">=sys-libs/ncurses-5.2"
+DEPEND="virtual/pkgconfig"
+RDEPEND="
+ ${COMMON_DEPEND}
+ !dev-lang/stratego"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${P}-amd64.patch \
+ "${FILESDIR}"/${P}-lex-syntax.patch
+
+ sed -i \
+ -e "/^prefix=/ s:/usr:${D}/usr:" \
+ -e "/^MANDIR=/ s:${prefix}/man:${prefix}/share/man:" \
+ -e "/^LIBDIR=/ s:${prefix}/lib:${prefix}/$(get_libdir):" \
+ -e '/^LIB=/s|-lncurses|$(shell ${PKG_CONFIG} --libs ncurses)|g' \
+ -e "/^CC=/ s:gcc:$(tc-getCC):" \
+ -e "/^CFLAGS/ s:=-DSYSV3 -O2 -pipe:+=-DSYSV3:" \
+ -e "/strip/ s:^:#:g" \
+ Makefile || die
+
+}
+
+src_compile() {
+ tc-export PKG_CONFIG
+ # no autoconf
+ emake prefix="${D}"/usr || die
+}
+
+src_install () {
+ # yes the makefile is so dumb it can't even make it's own dirs
+ dodir /usr/bin
+ dodir /usr/$(get_libdir)/sc
+ dodir /usr/share/man/man1
+ emake install
+
+ sed -i -e "s:${D}::g" sc.1 || die
+ doman sc.1 psc.1
+
+ dodoc CHANGES README sc.doc psc.doc tutorial.sc
+ dodoc VMS_NOTES ${P}.lsm TODO SC.MACROS
+}
diff --git a/app-office/sc/sc-7.16-r2.ebuild b/app-office/sc/sc-7.16-r2.ebuild
new file mode 100644
index 000000000000..aaa70d2052d7
--- /dev/null
+++ b/app-office/sc/sc-7.16-r2.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit eutils multilib toolchain-funcs
+
+DESCRIPTION="Spreadsheet Calculator"
+SRC_URI="ftp://ibiblio.org/pub/Linux/apps/financial/spreadsheet/${P}.tar.gz"
+HOMEPAGE="http://ibiblio.org/pub/Linux/apps/financial/spreadsheet/"
+
+SLOT="0"
+LICENSE="public-domain"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+COMMON_DEPEND="
+ >=sys-libs/ncurses-5.2
+"
+DEPEND="
+ virtual/pkgconfig
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-amd64.patch
+ "${FILESDIR}"/${P}-lex-syntax.patch
+ "${FILESDIR}"/${P}-c.patch
+ "${FILESDIR}"/${P}-printf.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "/^prefix=/ s:/usr:${D}/usr:" \
+ -e "/^MANDIR=/ s:${prefix}/man:${prefix}/share/man:" \
+ -e "/^LIBDIR=/ s:${prefix}/lib:${prefix}/$(get_libdir):" \
+ -e '/^LIB=/s|-lncurses|$(shell ${PKG_CONFIG} --libs ncurses)|g' \
+ -e "/^CC=/ s:gcc:$(tc-getCC):" \
+ -e "/^CFLAGS/ s:=-DSYSV3 -O2 -pipe:+=-DSYSV3:" \
+ -e "/strip/ s:^:#:g" \
+ Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ tc-export PKG_CONFIG
+ # no autoconf
+ emake prefix="${D}"/usr
+
+ emake ${PN}.1
+ sed -i -e "s:${D}::g" sc.1 || die
+}
+
+src_install () {
+ dodir /usr/bin
+ dodir /usr/$(get_libdir)/sc
+ dodir /usr/share/man/man1
+
+ emake install
+
+ doman sc.1 psc.1
+
+ dodoc CHANGES README tutorial.sc
+ dodoc VMS_NOTES ${P}.lsm TODO SC.MACROS
+}