return ret;
}
+board_t *processfile (char *filename, char **name)
+{
+ char *buffer = readdata (filename);
+ if (buffer == NULL) {
+ VERBOSE (ERROR, fprintf (stderr, "can't read file (%s)\n", filename));
+ return NULL;
+ }
+
+ board_t *board = loadboard (buffer);
+ if (board == NULL) {
+ VERBOSE (ERROR, fprintf (stderr, "incorrect file (%s)\n", filename));
+ }
+
+ free (buffer);
+
+ return board;
+}
+
/* main function */
int main (int argc, char *argv[])
{
}
/* load element */
- char *buffer = NULL;
board_t *element = NULL;
int xelement = 0;
int yelement = 0;
if (filename) {
- buffer = readdata (filename);
- if (buffer) {
- element = loadboard (buffer);
- if (element == NULL) {
- VERBOSE (ERROR, fprintf (stderr, "incorrect file (%s)\n", filename));
- return 1;
- }
- free (buffer);
- } else {
- VERBOSE (ERROR, fprintf (stderr, "can't read file (%s)\n", filename));
+ element = processfile (filename, NULL);
+ if (element == NULL) {
return 1;
}
} else { /* mono cell */
/* load playground */
board_t *playground = NULL;
if (playname) {
- buffer = readdata (playname);
- if (buffer) {
- playground = loadboard (buffer);
- if (playground == NULL) {
- VERBOSE (ERROR, fprintf (stderr, "incorrect file (%s)\n", playname));
- return 1;
- }
- free (buffer);
- } else {
- VERBOSE (ERROR, fprintf (stderr, "can't read file (%s)\n", playname));
+ playground = processfile (playname, NULL);
+ if (playground == NULL) {
return 1;
}
}
if (ysize <= 0) {
ysize = ymax - 2 * (yoffset + 1);
}
- board_t *board = (playground) ? resizeboard (playground, xsize, ysize) : initboard (xsize, ysize);
+ board_t *board = NULL;
+ if (playground) {
+ board = resizeboard (playground, xsize, ysize);
+ } else {
+ board = initboard (xsize, ysize);
+ }
/* window positions */
int xboard = xoffset + 1;