From: Laurent Mazet Date: Mon, 24 Jun 2024 05:47:25 +0000 (+0200) Subject: mode tests (3) X-Git-Tag: v1.0~15 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=0b68fb0e1f5254ecf170daffdc2b2ec7abde26d2;p=gameoflife.git mode tests (3) --- diff --git a/function.c b/function.c index c24b319..b554b5f 100644 --- a/function.c +++ b/function.c @@ -205,8 +205,6 @@ board_t *loadboard (char *str) if ((tab) && (strlen (tab) == (size_t)(xsize * ysize))) { board = initboard (xsize, ysize); memcpy (board->tab, tab, xsize * ysize); - } else if (xsize * ysize > 0) { - board = initboard (xsize, ysize); } return board; diff --git a/gameoflife.c b/gameoflife.c index ef6b6af..03a96c2 100644 --- a/gameoflife.c +++ b/gameoflife.c @@ -151,6 +151,29 @@ int main (int argc, char *argv[]) return 1; } + /* load data */ + char *buffer = NULL; + board_t *element = NULL; + int xelement = 0; + int yelement = 0; + if (file) { + buffer = readdata (file); + if (buffer) { + element = loadboard (buffer); + if (element == NULL) { + VERBOSE (ERROR, fprintf (stderr, "incorrect file (%s)\n", file)); + return 1; + } + free (buffer); + } else { + VERBOSE (ERROR, fprintf (stderr, "can't read file (%s)\n", file)); + return 1; + } + } else { /* mono cell */ + element = initboard (1, 1); + element->tab[0] = 'X'; + } + /* init curses window */ initscr (); noecho (); @@ -171,34 +194,13 @@ int main (int argc, char *argv[]) } board_t *board = initboard (xsize, ysize); - /* load data */ - char *buffer = NULL; - board_t *element = NULL; - int xelement = 0; - int yelement = 0; - if (file) { - buffer = readdata (file); - if (buffer) { - element = loadboard (buffer); - free (buffer); - } - if (element == NULL) { - VERBOSE (ERROR, fprintf (stderr, "incorrect file (%s)\n", file)); - endwin (); - return 1; - } - xelement = (xsize - element->xsize) / 2; - yelement = (ysize - element->ysize) / 2; - } else { /* mono cell */ - element = initboard (1, 1); - element->tab[0] = 'X'; - } - /* window positions */ int xboard = xoffset + 1; int yboard = xoffset + 1; int xhelp = xboard + xoffset + 1 + board->xsize; int yhelp = yboard; + xelement = (xsize - element->xsize) / 2; + yelement = (ysize - element->ysize) / 2; /* init windows */ helpwindow (help, xhelp, yhelp); @@ -310,7 +312,8 @@ int main (int argc, char *argv[]) } /* test: gameoflife.exe -e 2>&1 | grep 'no board' */ -/* test: gameoflife.exe -e gameoflife.c 2>&1 | grep 'incorrect file' */ +/* test: gameoflife.exe -e nofile.gol 2>&1 | grep "can't read file" */ +/* test: gameoflife.exe -e bogus.gol 2>&1 | grep 'incorrect file' */ /* test: gameoflife.exe -h | grep usage */ /* test--: gameoflife.exe -p file.gol 2>&1 | grep 'not found' */ /* test: gameoflife.exe -s 2>&1 | grep 'no speed' */ @@ -320,6 +323,8 @@ int main (int argc, char *argv[]) /* test: gameoflife.exe -y 2>&1 | grep 'no height' */ /* test: gameoflife.exe _ 2>&1 | grep invalid */ /* test: echo -n q | gameoflife.exe -e glider.gol */ -/* test: { echo clllldc; sleep 2; echo -n q; } | gameoflife.exe -e glider.gol */ +/* test: { echo clllldckkkrcjjjjcxfcilililecs; sleep 5; echo -n q; } | gameoflife.exe -e glider.gol -v 2 -s 2 */ +/* test: { echo icklckcjcjckjs; sleep 2; echo; sleep 1; echo -n q; } | gameoflife.exe -x 5 -y 5 */ +/* test: { echo cllllrckkkkjjd; sleep 3; echo -n q; } | gameoflife.exe -e beehive.gol -s 1 */ /* vim: set ts=4 sw=4 et: */