Description: Patches to upstream source since 7.16 Self-explanatory changes mostly dealing with compilation issues (ie. broken code, like undefined locals, missing return value, etc.) . sc (7.16-3) unstable; urgency=low . * Changed maintainer to the new email address, recursively. * Fixed old changelog entries' bug closing method * Add patches supplied by Carsten Hey + Stop compressing tutorial.sc file (closes: #514777) + Use default colors (closes: #514775) * Bump Standards to 3.8.4. * Bump dependency of debhelper. Author: Adam Majer --- The information above should follow the Patch Tagging Guidelines, please checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here are templates for supplementary fields that you might want to add: Origin: , Bug: Bug-Debian: http://bugs.debian.org/ Bug-Ubuntu: https://launchpad.net/bugs/ Forwarded: Reviewed-By: Last-Update: --- sc-7.16.orig/abbrev.c +++ sc-7.16/abbrev.c @@ -19,10 +19,15 @@ #include #include #include +#include +#include #include "sc.h" static struct abbrev *abbr_base; +int are_abbrevs(void); + + void add_abbr(char *string) { @@ -87,7 +92,7 @@ add_abbr(char *string) } } - if (expansion == NULL) + if (expansion == NULL){ if ((a = find_abbr(string, strlen(string), &prev))) { error("abbrev \"%s %s\"", a->abbr, a->exp); return; @@ -95,6 +100,7 @@ add_abbr(char *string) error("abreviation \"%s\" doesn't exist", string); return; } + } if (find_abbr(string, strlen(string), &prev)) del_abbr(string); @@ -122,7 +128,7 @@ void del_abbr(char *abbrev) { struct abbrev *a; - struct abbrev **prev; + struct abbrev **prev=0; if (!(a = find_abbr(abbrev, strlen(abbrev), prev))) return; --- sc-7.16.orig/cmds.c +++ sc-7.16/cmds.c @@ -478,7 +478,7 @@ yankrow(int arg) int i, qtmp; char buf[50]; struct frange *fr; - struct ent *obuf; + struct ent *obuf=0; if ((fr = find_frange(currow, curcol))) rs = fr->or_right->row - currow + 1; @@ -535,7 +535,7 @@ yankcol(int arg) int cs = maxcol - curcol + 1; int i, qtmp; char buf[50]; - struct ent *obuf; + struct ent *obuf=0; if (cs - arg < 0) { cs = cs > 0 ? cs : 0; @@ -810,7 +810,7 @@ pullcells(int to_insert) if (to_insert == 'r') { insertrow(numrows, 0); - if (fr = find_frange(currow, curcol)) + if ((fr = find_frange(currow, curcol))) deltac = fr->or_left->col - mincol; else { for (i = 0; i < numrows; i++) @@ -2279,7 +2279,7 @@ copye(register struct enode *e, int Rdel ret->e.r.right.vp = lookat(newrow, newcol); ret->e.r.right.vf = e->e.r.right.vf; } else { - struct enode *temprange; + struct enode *temprange=0; if (freeenodes) { ret = freeenodes; @@ -2337,8 +2337,7 @@ copye(register struct enode *e, int Rdel break; case 'f': case 'F': - if (range && ret->op == 'F' || - !range && ret->op == 'f') + if ((range && ret->op == 'F') || (!range && ret->op == 'f')) Rdelta = Cdelta = 0; ret->e.o.left = copye(e->e.o.left, Rdelta, Cdelta, r1, c1, r2, c2, transpose); @@ -2798,7 +2797,7 @@ void write_cells(register FILE *f, int r0, int c0, int rn, int cn, int dr, int dc) { register struct ent **pp; - int r, c, rs, cs, mf; + int r, c, rs=0, cs=0, mf; char *dpointptr; mf = modflg; @@ -2861,12 +2860,12 @@ writefile(char *fname, int r0, int c0, i if ((plugin = findplugin(p+1, 'w')) != NULL) { if (!plugin_exists(plugin, strlen(plugin), save + 1)) { error("plugin not found"); - return; + return -1; } *save = '|'; if ((strlen(save) + strlen(fname) + 20) > PATHLEN) { error("Path too long"); - return; + return -1; } sprintf(save + strlen(save), " %s%d:", coltoa(c0), r0); sprintf(save + strlen(save), "%s%d \"%s\"", coltoa(cn), rn, fname); @@ -2883,13 +2882,14 @@ writefile(char *fname, int r0, int c0, i } #endif /* VMS */ - if (*fname == '\0') + if (*fname == '\0'){ if (isatty(STDOUT_FILENO) || *curfile != '\0') fname = curfile; else { write_fd(stdout, r0, c0, rn, cn); return (0); } + } #ifdef MSDOS namelen = 12; @@ -2981,12 +2981,12 @@ readfile(char *fname, int eraseflg) if ((plugin = findplugin(p+1, 'r')) != NULL) { if (!(plugin_exists(plugin, strlen(plugin), save + 1))) { error("plugin not found"); - return; + return -1; } *save = '|'; if ((strlen(save) + strlen(fname) + 2) > PATHLEN) { error("Path too long"); - return; + return -1; } sprintf(save + strlen(save), " \"%s\"", fname); eraseflg = 0; --- sc-7.16.orig/color.c +++ sc-7.16/color.c @@ -19,6 +19,7 @@ #include #include +#include #include "sc.h" /* a linked list of free [struct ent]'s, uses .next as the pointer */ @@ -30,6 +31,8 @@ static struct crange *color_base; void initcolor(int colornum) { + use_default_colors(); + if (!colornum) { int i; --- sc-7.16.orig/frame.c +++ sc-7.16/frame.c @@ -18,6 +18,9 @@ #include #include +#include +#include +#include #include "sc.h" static struct frange *frame_base; --- sc-7.16.orig/help.c +++ sc-7.16/help.c @@ -11,6 +11,7 @@ char *header = " Quick Reference"; char *revision = "$Revision: 7.16 $"; #else #include +#include #include "sc.h" #endif /* QREF */ --- sc-7.16.orig/interp.c +++ sc-7.16/interp.c @@ -1572,12 +1572,12 @@ void copy(struct ent *dv1, struct ent *dv2, struct ent *v1, struct ent *v2) { struct ent *p; - struct ent *n; +/* struct ent *n;*/ static int minsr = -1, minsc = -1; static int maxsr = -1, maxsc = -1; int mindr, mindc; int maxdr, maxdc; - int vr, vc; +/* int vr, vc;*/ int r, c; int deltar, deltac; @@ -2066,7 +2066,7 @@ str_search(char *s, int firstrow, int fi *line = '\0'; } } - if (!col_hidden[c]) + if (!col_hidden[c]){ if (gs.g_type == G_STR) { if (p && p->label #if defined(REGCOMP) @@ -2099,6 +2099,7 @@ str_search(char *s, int firstrow, int fi #endif #endif break; + } if (r == endr && c == endc) { error("String not found"); #if defined(REGCOMP) @@ -2471,13 +2472,11 @@ clearent(struct ent *v) int constant(register struct enode *e) { - return ( - e == NULL + return e == NULL || e->op == O_CONST || e->op == O_SCONST - || e->op == 'm' && constant(e->e.o.left) - || ( - e->op != O_VAR + || (e->op == 'm' && constant(e->e.o.left)) + || (e->op != O_VAR && !(e->op & REDUCE) && constant(e->e.o.left) && constant(e->e.o.right) @@ -2491,9 +2490,7 @@ constant(register struct enode *e) && e->op != LASTCOL && e->op != NUMITER && e->op != FILENAME - && optimize - ) - ); + && optimize ); } void --- sc-7.16.orig/lex.c +++ sc-7.16/lex.c @@ -34,6 +34,8 @@ #include #include #include +#include +#include #include "sc.h" #ifdef NONOTIMEOUT @@ -107,7 +109,7 @@ int yylex() { char *p = line + linelim; - int ret; + int ret=0; static int isfunc = 0; static bool isgoto = 0; static bool colstate = 0; @@ -326,7 +328,7 @@ plugin_exists(char *name, int len, char strcpy((char *)path, HomeDir); strcat((char *)path, "/.sc/plugins/"); strncat((char *)path, name, len); - if (fp = fopen((char *)path, "r")) { + if ((fp = fopen((char *)path, "r"))) { fclose(fp); return 1; } @@ -334,7 +336,7 @@ plugin_exists(char *name, int len, char strcpy((char *)path, LIBDIR); strcat((char *)path, "/plugins/"); strncat((char *)path, name, len); - if (fp = fopen((char *)path, "r")) { + if ((fp = fopen((char *)path, "r"))) { fclose(fp); return 1; } --- sc-7.16.orig/Makefile +++ sc-7.16/Makefile @@ -32,7 +32,7 @@ MANMODE=644 # This is where the library file (tutorial) goes. #LIBDIR=/usr/local/share/$(name) # reno -LIBDIR=${prefix}/lib/$(name) +LIBDIR=${prefix}/share/doc/$(name) LIBRARY=-DLIBDIR=\"${LIBDIR}\" # Set SIMPLE for lex.c if you don't want arrow keys or lex.c blows up --- sc-7.16.orig/range.c +++ sc-7.16/range.c @@ -18,6 +18,8 @@ #include #include +#include +#include #include "sc.h" static struct range *rng_base; --- sc-7.16.orig/sc.c +++ sc-7.16/sc.c @@ -212,7 +212,7 @@ flush_saved() if (dbidx < 0) return; - if (p = delbuf[dbidx]) { + if ((p = delbuf[dbidx])) { scxfree(delbuffmt[dbidx]); delbuffmt[dbidx] = NULL; } @@ -845,7 +845,7 @@ main (int argc, char **argv) break; case 'C': color = !color; - if (has_colors()) + if (has_colors()){ if (color) { attron(COLOR_PAIR(1)); bkgd(COLOR_PAIR(1) | ' '); @@ -853,6 +853,7 @@ main (int argc, char **argv) attron(COLOR_PAIR(0)); bkgd(COLOR_PAIR(0) | ' '); } + } error("Color %sabled.", color ? "en" : "dis"); break; case 'N': --- sc-7.16.orig/sc.h +++ sc-7.16/sc.h @@ -612,6 +612,9 @@ extern int pagesize; /* If nonzero, use extern int rowlimit; extern int collimit; +void yankr(struct ent *v1, struct ent *v2); + + #if BSD42 || SYSIII #ifndef cbreak --- sc-7.16.orig/screen.c +++ sc-7.16/screen.c @@ -234,11 +234,12 @@ update(int anychanged) /* did any cell i = stcol; lcols = 0; col = rescol + frcols; - if (fr && stcol >= fr->or_left->col) + if (fr && stcol >= fr->or_left->col){ if (stcol < fr->ir_left->col) i = fr->or_left->col; else col += flcols; + } for (; (col + fwidth[i] < cols-1 || col_hidden[i] || i < curcol) && i < maxcols; i++) { lcols++; @@ -328,11 +329,12 @@ update(int anychanged) /* did any cell i = stcol; lcols = 0; col = rescol + frcols; - if (fr && stcol >= fr->or_left->col) + if (fr && stcol >= fr->or_left->col){ if (stcol < fr->ir_left->col) i = fr->or_left->col; else col += flcols; + } for (; (col + fwidth[i] < cols-1 || col_hidden[i] || i < curcol) && i < maxcols; i++) { lcols++; @@ -377,11 +379,12 @@ update(int anychanged) /* did any cell i = strow; rows = 0; row = RESROW + fbrows; - if (fr && strow >= fr->or_left->row) + if (fr && strow >= fr->or_left->row){ if (strow < fr->ir_left->row) i = fr->or_left->row; else row += ftrows; + } for (; (row < lines || row_hidden[i] || i < currow) && i < maxrows; i++) { rows++; @@ -460,11 +463,12 @@ update(int anychanged) /* did any cell i = strow; rows = 0; row = RESROW + fbrows; - if (fr && strow >= fr->or_left->row) + if (fr && strow >= fr->or_left->row){ if (strow < fr->ir_left->row) i = fr->or_left->row; else row += ftrows; + } for (; (row < lines || row_hidden[i] || i < currow) && i < maxrows; i++) { rows++; --- sc-7.16.orig/sort.c +++ sc-7.16/sort.c @@ -19,6 +19,8 @@ #include #include #include +#include +#include #include "sc.h" int compare(const void *row1, const void *row2); --- sc-7.16.orig/vi.c +++ sc-7.16/vi.c @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include "sc.h" #if defined(REGCOMP) @@ -40,7 +42,7 @@ void gotobottom(); #define istext(a) (isalnum(a) || ((a) == '_')) -#define bool int +/*#define bool int*/ #define true 1 #define false 0 @@ -667,8 +669,10 @@ dotab() static struct range *nextmatch; int len; - if (linelim > 0 && isalnum(line[linelim-1]) || line[linelim-1] == '_' || - (completethis && line[linelim-1] == ' ')) { + if ((linelim > 0 && isalnum(line[linelim-1])) || + line[linelim-1] == '_' || + (completethis && line[linelim-1] == ' ')) { + if (!completethis) { for (completethis = line + linelim - 1; isalnum(*completethis) || *completethis == '_'; completethis--) /* */; @@ -715,7 +719,7 @@ void showdr() { int minsr, minsc, maxsr, maxsc; - char *p; + /*char *p;*/ char r[12]; struct frange *fr = find_frange(currow, curcol); @@ -1566,7 +1570,7 @@ static void search_again(bool reverse) { int prev_match; - int found_it; + int found_it=0; #if !defined(REGCOMP) && !defined(RE_COMP) && !defined(REGCMP) char *look_here; int do_next; @@ -1777,7 +1781,7 @@ to_char(int arg, int n) static void match_paren() { - register int i; + /*register int i;*/ int nest = 1; int tmp = linelim; --- sc-7.16.orig/vmtbl.c +++ sc-7.16/vmtbl.c @@ -16,6 +16,7 @@ # include #endif /* PSC */ +#include #include "sc.h" /* --- sc-7.16.orig/xmalloc.c +++ sc-7.16/xmalloc.c @@ -4,11 +4,12 @@ */ #include +#include #include "sc.h" -extern char *malloc(); +/* extern char *malloc(); extern char *realloc(); -extern void free(); +extern void free(); */ void fatal(); #ifdef SYSV3