X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=e0fad3844ff82f5e702e62ffc9a50a072efc81dc;hb=4e366f3b035e8662e2c3bbba35e76a819de5a486;hp=78e84312fb682c97e45da8aef135fee2d5d986bc;hpb=102627e2d5346294752619a4cb0c4aa1d54939b9;p=xboard.git diff --git a/backend.c b/backend.c index 78e8431..e0fad38 100644 --- a/backend.c +++ b/backend.c @@ -1496,7 +1496,7 @@ MatchEvent (int mode) NextTourneyGame(-1, &dummy); ReserveGame(-1, 0); if(nextGame <= appData.matchGames) { - DisplayNote(_("You restarted an already completed tourney\nOne more cycle will now be added to it\nGames commence in 10 sec")); + DisplayNote(_("You restarted an already completed tourney.\nOne more cycle will now be added to it.\nGames commence in 10 sec.")); matchMode = mode; ScheduleDelayedEvent(NextMatchGame, 10000); return; @@ -2011,7 +2011,7 @@ char *variantNames[] = VARIANT_NAMES; char * VariantName (VariantClass v) { - if(v == VariantUnknown) return engineVariant; + if(v == VariantUnknown || *engineVariant) return engineVariant; return variantNames[v]; } @@ -3027,8 +3027,10 @@ read_from_ics (InputSourceRef isr, VOIDSTAR closure, char *data, int count, int } else { char tmp[MSG_SIZ]; if(gameMode == IcsObserving) // restore original ICS messages + /* TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers */ snprintf(tmp, MSG_SIZ, "%s kibitzes: %s", star_match[0], parse); else + /* TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers */ snprintf(tmp, MSG_SIZ, _("your opponent kibitzes: %s"), parse); SendToPlayer(tmp, strlen(tmp)); } @@ -9037,7 +9039,7 @@ if(appData.debugMode) fprintf(debugFP, "nodes = %d, %lld\n", (int) programStats. DisplayInformation(_("Machine accepts your draw offer")); GameEnds(GameIsDrawn, "Draw agreed", GE_XBOARD); } else { - DisplayInformation(_("Machine offers a draw\nSelect Action / Draw to agree")); + DisplayInformation(_("Machine offers a draw.\nSelect Action / Draw to accept.")); } } } @@ -9116,7 +9118,10 @@ if(appData.debugMode) fprintf(debugFP, "nodes = %d, %lld\n", (int) programStats. if(f = fopen(buf, "w")) { // export PV to applicable PV file fprintf(f, "%5.2f/%-2d %s", curscore/100., plylev, pv); fclose(f); - } else DisplayError(_("failed writing PV"), 0); + } + else + /* TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone */ + DisplayError(_("failed writing PV"), 0); } tempStats.depth = plylev; @@ -10003,7 +10008,7 @@ NonStandardBoardSize () { /* [HGM] Awkward testing. Should really be a table */ int overruled = gameInfo.boardWidth != 8 || gameInfo.boardHeight != 8 || gameInfo.holdingsSize != 0; - if( gameInfo.variant == VariantUnknown ) return 0; // engine-defined name never needs prefix + if( gameInfo.variant == VariantUnknown || *engineVariant) return 0; // engine-defined name never needs prefix if( gameInfo.variant == VariantXiangqi ) overruled = gameInfo.boardWidth != 9 || gameInfo.boardHeight != 10 || gameInfo.holdingsSize != 0; if( gameInfo.variant == VariantShogi ) @@ -17204,7 +17209,7 @@ PositionToFEN (int move, char *overrideCastling, int moveCounts) *p++ = '+'; piece = (ChessSquare)(DEMOTED piece); } - *p++ = PieceToChar(piece); + *p++ = (piece == DarkSquare ? '*' : PieceToChar(piece)); if(p[-1] == '~') { /* [HGM] flag promoted pieces as '~' (Crazyhouse) */ p[-1] = PieceToChar((ChessSquare)(DEMOTED piece)); @@ -17395,6 +17400,8 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen) while (emptycount--) board[i][(j++)+gameInfo.holdingsWidth] = EmptySquare; #endif + } else if (*p == '*') { + board[i][(j++)+gameInfo.holdingsWidth] = DarkSquare; p++; } else if (isdigit(*p)) { emptycount = *p++ - '0'; while(isdigit(*p)) emptycount = 10*emptycount + *p++ - '0'; /* [HGM] allow > 9 */