X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Fcommondsp.c;h=db90fd31ef1a866204a8b4f018cd57264ccdc1fd;hb=db669bbcd569f6ee2a8b0dafc307e8d3e52d0708;hp=73afb957d5e85f1c1f718584d6d7ccd2fa336382;hpb=8ae7e7d1b257ef36d8a9fd1cd88807954ef10764;p=gnushogi.git diff --git a/gnushogi/commondsp.c b/gnushogi/commondsp.c index 73afb95..db90fd3 100644 --- a/gnushogi/commondsp.c +++ b/gnushogi/commondsp.c @@ -16,8 +16,8 @@ * * GNU Shogi is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 1, or (at your option) any - * later version. + * Free Software Foundation; either version 3 of the License, + * or (at your option) any later version. * * GNU Shogi is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -25,23 +25,16 @@ * for more details. * * You should have received a copy of the GNU General Public License along - * with GNU Shogi; see the file COPYING. If not, write to the Free - * Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * with GNU Shogi; see the file COPYING. If not, see + * . * ---------------------------------------------------------------------- * */ -#include "gnushogi.h" - #if defined HAVE_GETTIMEOFDAY #include #endif -char mvstr[4][6]; -char *InPtr; -int InBackground = false; - - #include #include @@ -50,6 +43,11 @@ int InBackground = false; #include #include +#include "gnushogi.h" + +char mvstr[4][6]; +char *InPtr; +int InBackground = false; #if defined(BOOKTEST) @@ -130,6 +128,17 @@ movealgbr(short m, char *s) /* * Generate move strings in different formats. + * + * INPUT: + * - f piece to be moved + * - 0 < f < NO_SQUARES source square + * - NO_SQUARES <= f NO_SQUARES + 2*NO_PIECES dropped piece modulo NO_PIECES + * - t & 0x7f target square + * - t & 0x80 promotion flag + * - flag FIXME: must be zero ? + * + * OUTPUT: + * - GLOBAL mvstr */ void @@ -391,17 +400,17 @@ parser(char *f, int side, short *fpiece) if (f[1] == '*' || f[1] == '\'') { - c2 = '9' - f[2]; - r2 = 'i' - f[3]; + c2 = COL_NAME(f[2]); + r2 = ROW_NAME(f[3]); return ((NO_SQUARES + *fpiece) << 8) | locn(r2, c2); } else { - c1 = '9' - f[1]; - r1 = 'i' - f[2]; - c2 = '9' - f[3]; - r2 = 'i' - f[4]; + c1 = COL_NAME(f[1]); + r1 = ROW_NAME(f[2]); + c2 = COL_NAME(f[3]); + r2 = ROW_NAME(f[4]); p = (f[5] == '+') ? 0x80 : 0; return (locn(r1, c1) << 8) | locn(r2, c2) | p; @@ -712,16 +721,16 @@ SaveGame(void) fprintf(fd, CP[37], w, b, Game50, flag.force ? "force" : ""); - fprintf(fd, empty); + fputs(empty, fd); fprintf(fd, CP[111], TCflag, OperatorTime); fprintf(fd, CP[117], TimeControl.clock[black], TimeControl.moves[black], TimeControl.clock[white], TimeControl.moves[white]); - fprintf(fd, empty); + fputs(empty, fd); for (i = NO_ROWS - 1; i > -1; i--) { - fprintf(fd, "%c ", 'i' - i); + fprintf(fd, "%c ", ROW_NAME(i)); for (c = 0; c < NO_COLS; c++) { @@ -755,9 +764,9 @@ SaveGame(void) fprintf(fd, "\n"); } - fprintf(fd, empty); - fprintf(fd, " 9 8 7 6 5 4 3 2 1\n"); - fprintf(fd, empty); + fputs(empty, fd); + fprintf(fd, " 9 8 7 6 5 4 3 2 1\n"); /* FIXME */ + fputs(empty, fd); fprintf(fd, " p l n s g b r k\n"); for (side = 0; side <= 1; side++) @@ -774,8 +783,8 @@ SaveGame(void) fprintf(fd, "\n"); } - fprintf(fd, empty); - fprintf(fd, CP[126]); + fputs(empty, fd); + fputs(CP[126], fd); for (i = 1; i <= GameCnt; i++) { @@ -1205,8 +1214,8 @@ ListGame(void) /* fprintf(fd, "gnushogi game %d\n", u); */ fprintf(fd, CP[161], version, patchlevel); - fprintf(fd, CP[10]); - fprintf(fd, CP[11]); + fputs(CP[10], fd); + fputs(CP[11], fd); for (i = 1; i <= GameCnt; i++) { @@ -1737,7 +1746,7 @@ InputCommand(char *command) s[0] = sx[0] = '\0'; while(!sx[0]) - (void)fgets(sx, 256, stdin); + (void)fgets(sx, 80, stdin); } else { @@ -2153,7 +2162,7 @@ InputCommand(char *command) #endif } - signal(SIGINT, TerminateSearch); + signal(SIGUSR1, TerminateSearch); }