Hello community, here is the log from the commit of package sc for openSUSE:Factory checked in at Mon Sep 5 17:14:18 CEST 2011.
-------- New Changes file: --- /dev/null 2010-08-26 16:28:41.000000000 +0200 +++ sc/sc.changes 2011-08-27 21:09:13.000000000 +0200 @@ -0,0 +1,5 @@ +------------------------------------------------------------------- +Sun Aug 21 20:16:19 UTC 2011 - [email protected] + +- initial packaging + calling whatdependson for head-i586 New: ---- sc-7.16.tar.gz sc-do-not-use-reserved-symbols.patch sc-fix-conflicting-macro.patch sc-fix-eval-parser.patch sc-fix-execl-call.patch sc-fix-malloc-redefinition.patch sc-fix-missing-includes.patch sc-fix-missing-prototypes.patch sc-fix-missing-return-value.patch sc-fix-parentheses.patch sc-fix-uninitialized-variables.patch sc.changes sc.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sc.spec ++++++ # # spec file for package sc # # Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2011 Guido Berhoerster. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: sc Version: 7.16 Release: 1 License: Public Domain Summary: Spreadsheet Calculator Url: http://ibiblio.org/pub/Linux/apps/financial/spreadsheet/ Group: Productivity/Office/Spreadsheets Source: http://ibiblio.org/pub/Linux/apps/financial/spreadsheet/sc-%{version}.tar.gz Patch0: sc-fix-malloc-redefinition.patch Patch1: sc-fix-missing-includes.patch Patch2: sc-fix-uninitialized-variables.patch Patch3: sc-fix-execl-call.patch Patch4: sc-fix-missing-return-value.patch Patch5: sc-fix-conflicting-macro.patch Patch6: sc-fix-missing-prototypes.patch Patch7: sc-fix-parentheses.patch Patch8: sc-do-not-use-reserved-symbols.patch Patch9: sc-fix-eval-parser.patch BuildRequires: ncurses-devel BuildRequires: bison BuildRoot: %{_tmppath}/%{name}-%{version}-build %description sc is a free curses-based spreadsheet program that uses key bindings similar to vi and less. %prep %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %build make %{?_smp_mflags} LIBDIR="%{_docdir}/%{name}" CFLAGS="%{optflags} -DSYSV3" all sc.1 psc.1 %install install -p -D -m 755 sc "%{buildroot}%{_bindir}/sc" install -p -D -m 755 psc "%{buildroot}%{_bindir}/psc" install -p -D -m 755 scqref "%{buildroot}%{_bindir}/pscqref" install -p -D -m 644 sc.1 "%{buildroot}%{_mandir}/man1/sc.1" install -p -D -m 644 psc.1 "%{buildroot}%{_mandir}/man1/psc.1" %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) %doc CHANGES README tutorial.sc %doc %{_mandir}/man1/sc.1* %doc %{_mandir}/man1/psc.1* %{_bindir}/sc %{_bindir}/psc %{_bindir}/pscqref %changelog ++++++ sc-do-not-use-reserved-symbols.patch ++++++ Index: sc-7.16/vi.c =================================================================== --- sc-7.16.orig/vi.c +++ sc-7.16/vi.c @@ -42,7 +42,7 @@ void gotobottom(); #define istext(a) (isalnum(a) || ((a) == '_')) -#define bool int +#define boolean int #define true 1 #define false 0 @@ -74,7 +74,7 @@ static void replace_mode(); static void restore_it(); static void savedot(int c); static void save_hist(); -static void search_again(bool reverse); +static void search_again(boolean reverse); static void search_hist(); static void search_mode(char sind); static void stop_edit(); @@ -1565,7 +1565,7 @@ search_hist() } static void -search_again(bool reverse) +search_again(boolean reverse) { int prev_match; int found_it; ++++++ sc-fix-conflicting-macro.patch ++++++ Index: sc-7.16/cmds.c =================================================================== --- sc-7.16.orig/cmds.c +++ sc-7.16/cmds.c @@ -2407,7 +2407,7 @@ syncref(register struct enode *e) } else { switch (e->op) { case 'v': - if (e->e.v.vp->flags & is_cleared) { + if (e->e.v.vp->flags & is_cleared_sc) { e->op = ERR_; e->e.o.left = NULL; e->e.o.right = NULL; Index: sc-7.16/interp.c =================================================================== --- sc-7.16.orig/interp.c +++ sc-7.16/interp.c @@ -2158,7 +2158,7 @@ fill(struct ent *v1, struct ent *v2, dou n->v = start; start += inc; n->flags |= (is_changed|is_valid); - n->flags &= ~(is_cleared); + n->flags &= ~(is_cleared_sc); } } else if (calc_order == BYCOLS) { @@ -2169,7 +2169,7 @@ fill(struct ent *v1, struct ent *v2, dou n->v = start; start += inc; n->flags |= (is_changed|is_valid); - n->flags &= ~(is_cleared); + n->flags &= ~(is_cleared_sc); } } else error(" Internal error calc_order"); @@ -2460,7 +2460,7 @@ clearent(struct ent *v) if (v->format) scxfree(v->format); v->format = NULL; - v->flags = (is_changed|is_cleared); + v->flags = (is_changed|is_cleared_sc); changed++; modflg++; } Index: sc-7.16/sc.c =================================================================== --- sc-7.16.orig/sc.c +++ sc-7.16/sc.c @@ -165,7 +165,7 @@ lookat(int row, int col) if (*pp == NULL) { if (freeents != NULL) { *pp = freeents; - (*pp)->flags &= ~is_cleared; + (*pp)->flags &= ~is_cleared_sc; (*pp)->flags |= may_sync; freeents = freeents->next; } else Index: sc-7.16/sc.h =================================================================== --- sc-7.16.orig/sc.h +++ sc-7.16/sc.h @@ -304,7 +304,7 @@ struct go_save { #define is_deleted 0020 #define is_locked 0040 #define is_label 0100 -#define is_cleared 0200 +#define is_cleared_sc 0200 #define may_sync 0400 /* cell error (1st generation (ERROR) or 2nd+ (INVALID)) */ ++++++ sc-fix-eval-parser.patch ++++++ Index: sc-7.16/gram.y =================================================================== --- sc-7.16.orig/gram.y +++ sc-7.16/gram.y @@ -968,7 +968,7 @@ command: S_LET var_or_range '=' e macrofd); } | S_EVAL e STRING '|' NUMBER { doeval($2, $3, currow, curcol, - $3); } + $5); } | S_SEVAL e { doseval($2, currow, curcol, macrofd); } | S_QUERY STRING STRING { doquery($2, $3, macrofd); } | S_QUERY STRING STRING '|' NUMBER ++++++ sc-fix-execl-call.patch ++++++ Index: sc-7.16/cmds.c =================================================================== --- sc-7.16.orig/cmds.c +++ sc-7.16/cmds.c @@ -2563,7 +2563,7 @@ openfile(char *fname, int *rpid, int *rf (void) dup(pipefd[3]); /* connect to second pipe */ } (void) signal(SIGINT, SIG_DFL); /* reset */ - (void) execl("/bin/sh", "sh", "-c", efname, 0); + (void) execl("/bin/sh", "sh", "-c", efname, NULL); exit (-127); } else { /* else parent */ *rpid = pid; ++++++ sc-fix-malloc-redefinition.patch ++++++ Index: sc-7.16/xmalloc.c =================================================================== --- sc-7.16.orig/xmalloc.c +++ sc-7.16/xmalloc.c @@ -3,12 +3,10 @@ * $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 ++++++ sc-fix-missing-includes.patch ++++++ Index: sc-7.16/abbrev.c =================================================================== --- sc-7.16.orig/abbrev.c +++ sc-7.16/abbrev.c @@ -19,6 +19,8 @@ #include <stdio.h> #include <stdlib.h> #include <ctype.h> +#include <unistd.h> +#include <curses.h> #include "sc.h" static struct abbrev *abbr_base; Index: sc-7.16/color.c =================================================================== --- sc-7.16.orig/color.c +++ sc-7.16/color.c @@ -17,6 +17,7 @@ #endif #endif +#include <unistd.h> #include <curses.h> #include <ctype.h> #include "sc.h" Index: sc-7.16/frame.c =================================================================== --- sc-7.16.orig/frame.c +++ sc-7.16/frame.c @@ -18,6 +18,9 @@ #include <stdio.h> #include <ctype.h> +#include <stdlib.h> +#include <curses.h> +#include <unistd.h> #include "sc.h" static struct frange *frame_base; Index: sc-7.16/lex.c =================================================================== --- sc-7.16.orig/lex.c +++ sc-7.16/lex.c @@ -34,6 +34,8 @@ #include <signal.h> #include <setjmp.h> #include <ctype.h> +#include <unistd.h> +#include <math.h> #include "sc.h" #ifdef NONOTIMEOUT Index: sc-7.16/range.c =================================================================== --- sc-7.16.orig/range.c +++ sc-7.16/range.c @@ -18,6 +18,8 @@ #include <stdio.h> #include <ctype.h> +#include <unistd.h> +#include <curses.h> #include "sc.h" static struct range *rng_base; Index: sc-7.16/sort.c =================================================================== --- sc-7.16.orig/sort.c +++ sc-7.16/sort.c @@ -19,6 +19,8 @@ #include <stdio.h> #include <ctype.h> #include <stdlib.h> +#include <unistd.h> +#include <curses.h> #include "sc.h" int compare(const void *row1, const void *row2); Index: sc-7.16/vi.c =================================================================== --- sc-7.16.orig/vi.c +++ sc-7.16/vi.c @@ -17,6 +17,8 @@ #include <curses.h> #include <ctype.h> #include <stdlib.h> +#include <unistd.h> +#include <sys/wait.h> #include "sc.h" #if defined(REGCOMP) Index: sc-7.16/vmtbl.c =================================================================== --- sc-7.16.orig/vmtbl.c +++ sc-7.16/vmtbl.c @@ -16,6 +16,7 @@ # include <curses.h> #endif /* PSC */ +#include <unistd.h> #include "sc.h" /* Index: sc-7.16/help.c =================================================================== --- sc-7.16.orig/help.c +++ sc-7.16/help.c @@ -7,6 +7,7 @@ #ifdef QREF #include <stdio.h> +#include <stdlib.h> char *header = " Quick Reference"; char *revision = "$Revision: 7.16 $"; #else ++++++ sc-fix-missing-prototypes.patch ++++++ Index: sc-7.16/abbrev.c =================================================================== --- sc-7.16.orig/abbrev.c +++ sc-7.16/abbrev.c @@ -25,6 +25,8 @@ static struct abbrev *abbr_base; +int are_abbrevs(); + void add_abbr(char *string) { Index: sc-7.16/sc.h =================================================================== --- sc-7.16.orig/sc.h +++ sc-7.16/sc.h @@ -566,6 +566,20 @@ extern int yyparse(); #ifdef DOBACKUPS extern int backup_file(char *path); #endif +extern void yankr(struct ent *v1, struct ent *v2); +extern void list_frames(FILE *f); +extern void yankrow(int arg); +extern void yankcol(int arg); +extern void ljustify(int sr, int sc, int er, int ec); +extern void rjustify(int sr, int sc, int er, int ec); +extern void center(int sr, int sc, int er, int ec); +extern void gotonote(); +extern void add_abbr(char *string); +extern void getframe(int fd); +extern void getrange(char *name, 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 dogetkey(); extern int modflg; #if !defined(VMS) && !defined(MSDOS) && defined(CRYPT_PATH) Index: sc-7.16/sc.c =================================================================== --- sc-7.16.orig/sc.c +++ sc-7.16/sc.c @@ -85,7 +85,7 @@ int wasforw = FALSE; #endif void update(); -void repaint(); +void repaint(int x, int y, int len, int attron, int attroff); extern void doshell(); extern void gohome(); extern void leftlimit(); @@ -827,7 +827,7 @@ main (int argc, char **argv) break; case 'c': showcell = (!showcell); - repaint(lastmx, lastmy, fwidth[lastcol]); + repaint(lastmx, lastmy, fwidth[lastcol], 0, 0); error("Cell highlighting %sabled.", showcell ? "en" : "dis"); --modflg; /* negate the modflg++ */ Index: sc-7.16/xmalloc.c =================================================================== --- sc-7.16.orig/xmalloc.c +++ sc-7.16/xmalloc.c @@ -7,7 +7,7 @@ #include <curses.h> #include "sc.h" -void fatal(); +void fatal(char *str); #ifdef SYSV3 extern void free(); ++++++ sc-fix-missing-return-value.patch ++++++ Index: sc-7.16/cmds.c =================================================================== --- sc-7.16.orig/cmds.c +++ sc-7.16/cmds.c @@ -2861,12 +2861,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); @@ -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-fix-parentheses.patch ++++++ Index: sc-7.16/abbrev.c =================================================================== --- sc-7.16.orig/abbrev.c +++ sc-7.16/abbrev.c @@ -91,7 +91,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; @@ -99,6 +99,7 @@ add_abbr(char *string) error("abreviation \"%s\" doesn't exist", string); return; } + } if (find_abbr(string, strlen(string), &prev)) del_abbr(string); Index: sc-7.16/cmds.c =================================================================== --- sc-7.16.orig/cmds.c +++ sc-7.16/cmds.c @@ -810,9 +810,9 @@ pullcells(int to_insert) if (to_insert == 'r') { insertrow(numrows, 0); - if (fr = find_frange(currow, curcol)) + if ((fr = find_frange(currow, curcol)) != NULL) { deltac = fr->or_left->col - mincol; - else { + } else { for (i = 0; i < numrows; i++) row_hidden[currow+i] = delbuffmt[dbidx][4*numcols+i]; deltac = 0; @@ -2337,8 +2337,8 @@ 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); @@ -2883,13 +2883,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; Index: sc-7.16/interp.c =================================================================== --- sc-7.16.orig/interp.c +++ sc-7.16/interp.c @@ -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) @@ -2475,7 +2476,7 @@ constant(register struct enode *e) e == NULL || e->op == O_CONST || e->op == O_SCONST - || e->op == 'm' && constant(e->e.o.left) + || (e->op == 'm' && constant(e->e.o.left)) || ( e->op != O_VAR && !(e->op & REDUCE) Index: sc-7.16/lex.c =================================================================== --- sc-7.16.orig/lex.c +++ sc-7.16/lex.c @@ -328,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")) != NULL) { fclose(fp); return 1; } @@ -336,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")) != NULL) { fclose(fp); return 1; } Index: sc-7.16/pipe.c =================================================================== --- sc-7.16.orig/pipe.c +++ sc-7.16/pipe.c @@ -36,12 +36,13 @@ getnum(int r0, int c0, int rn, int cn, i for (c = c0, pp = ATBL(tbl, r, c); c <= cn; pp++, c++) { *line = '\0'; p = *pp; - if (p) + if (p) { if (p->cellerror) sprintf(line, "%s", (*pp)->cellerror == CELLERROR ? "ERROR" : "INVALID"); else if (p->flags & is_valid) sprintf(line, "%.15g", p->v); + } if (c < cn) strcat(line, "\t"); else Index: sc-7.16/sc.c =================================================================== --- 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]) != NULL) { 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': Index: sc-7.16/screen.c =================================================================== --- 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++; Index: sc-7.16/vi.c =================================================================== --- sc-7.16.orig/vi.c +++ sc-7.16/vi.c @@ -669,7 +669,7 @@ dotab() static struct range *nextmatch; int len; - if (linelim > 0 && isalnum(line[linelim-1]) || 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) || ++++++ sc-fix-uninitialized-variables.patch ++++++ Index: sc-7.16/abbrev.c =================================================================== --- sc-7.16.orig/abbrev.c +++ sc-7.16/abbrev.c @@ -124,9 +124,9 @@ void del_abbr(char *abbrev) { struct abbrev *a; - struct abbrev **prev; + struct abbrev *prev = NULL; - if (!(a = find_abbr(abbrev, strlen(abbrev), prev))) + if (!(a = find_abbr(abbrev, strlen(abbrev), &prev))) return; if (a->a_next) Index: sc-7.16/cmds.c =================================================================== --- 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 = NULL; 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 = NULL; if (cs - arg < 0) { cs = cs > 0 ? cs : 0; @@ -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 = NULL; if (freeenodes) { ret = freeenodes; Index: sc-7.16/lex.c =================================================================== --- sc-7.16.orig/lex.c +++ sc-7.16/lex.c @@ -109,7 +109,7 @@ int yylex() { char *p = line + linelim; - int ret; + int ret = -1; static int isfunc = 0; static bool isgoto = 0; static bool colstate = 0; Index: sc-7.16/screen.c =================================================================== --- sc-7.16.orig/screen.c +++ sc-7.16/screen.c @@ -812,7 +812,7 @@ update(int anychanged) /* did any cell for (i = 0; i < fwidth[col]; i++) { if (note) { attr_t attr; - short curcolor; + short curcolor = 0; if (!i && color && has_colors()) { attr_get(&attr, &curcolor, NULL); color_set(4, NULL); @@ -832,7 +832,7 @@ update(int anychanged) /* did any cell (void)addch(' '); if (note) { attr_t attr; - short curcolor; + short curcolor = 0; if (color && has_colors()) { attr_get(&attr, &curcolor, NULL); color_set(4, NULL); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
