X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=a196a9fee865bf0b491454291cad3862bb85369b;hb=d1e1b3840a45c3ddc64046ad8f8320cb77d8eac1;hp=ea569f3c0bbc3be94b4e1743095d5eda579857c6;hpb=93253eabd41368b4a4a8513fbbe37c74c0e30c1c;p=xboard.git diff --git a/backend.c b/backend.c index ea569f3..a196a9f 100644 --- a/backend.c +++ b/backend.c @@ -328,7 +328,7 @@ safeStrCpy (char *dst, const char *src, size_t count) { dst[ count-1 ] = '\0'; // make sure incomplete copy still null-terminated if(appData.debugMode) - fprintf(debugFP, "safeStrCpy: copying %s into %s didn't work, not enough space %d\n",src,dst, (int)count); + fprintf(debugFP, "safeStrCpy: copying %s into %s didn't work, not enough space %d\n",src,dst, (int)count); } return dst; @@ -1344,7 +1344,7 @@ void InitBackEnd2 () { if (appData.debugMode) { - fprintf(debugFP, "%s\n", programVersion); + fprintf(debugFP, "Version: %s (%s)\n", programVersion, __GIT_VERSION); } ASSIGN(currentDebugFile, appData.nameOfDebugFile); // [HGM] debug split: remember initial name in use @@ -2194,7 +2194,7 @@ StringToVariant (char *e) } } if (appData.debugMode) { - fprintf(debugFP, _("recognized '%s' (%d) as variant %s\n"), + fprintf(debugFP, "recognized '%s' (%d) as variant %s\n", e, wnum, VariantName(v)); } return v; @@ -3553,7 +3553,7 @@ read_from_ics (InputSourceRef isr, VOIDSTAR closure, char *data, int count, int gameInfo.whiteRating = string_to_rating(star_match[1]); gameInfo.blackRating = string_to_rating(star_match[3]); if (appData.debugMode) - fprintf(debugFP, _("Ratings from header: W %d, B %d\n"), + fprintf(debugFP, "Ratings from header: W %d, B %d\n", gameInfo.whiteRating, gameInfo.blackRating); } continue; @@ -4211,7 +4211,7 @@ ParseBoard12 (char *string) newGame = FALSE; if (appData.debugMode) - fprintf(debugFP, _("Parsing board: %s\n"), string); + fprintf(debugFP, "Parsing board: %s\n", string); move_str[0] = NULLCHAR; elapsed_time[0] = NULLCHAR; @@ -4320,7 +4320,7 @@ ParseBoard12 (char *string) partnerUp = 0; flipView = !flipView; } // [HGM] dual snprintf(partnerStatus, MSG_SIZ,"W: %d:%02d B: %d:%02d (%d-%d) %c", white_time*fac/60000, (white_time*fac%60000)/1000, (black_time*fac/60000), (black_time*fac%60000)/1000, white_stren, black_stren, to_play); - DisplayMessage(partnerStatus, ""); + if(!twoBoards) DisplayMessage(partnerStatus, ""); partnerBoardValid = TRUE; return; } @@ -4680,11 +4680,10 @@ ParseBoard12 (char *string) to canonical algebraic form. */ if (moveNum > 0) { if (appData.debugMode) { - if (appData.debugMode) { int f = forwardMostMove; - fprintf(debugFP, "parseboard %d, castling = %d %d %d %d %d %d\n", f, - boards[f][CASTLING][0],boards[f][CASTLING][1],boards[f][CASTLING][2], - boards[f][CASTLING][3],boards[f][CASTLING][4],boards[f][CASTLING][5]); - } + int f = forwardMostMove; + fprintf(debugFP, "parseboard %d, castling = %d %d %d %d %d %d\n", f, + boards[f][CASTLING][0],boards[f][CASTLING][1],boards[f][CASTLING][2], + boards[f][CASTLING][3],boards[f][CASTLING][4],boards[f][CASTLING][5]); fprintf(debugFP, "accepted move %s from ICS, parse it.\n", move_str); fprintf(debugFP, "moveNum = %d\n", moveNum); fprintf(debugFP, "board = %d-%d x %d\n", BOARD_LEFT, BOARD_RGHT, BOARD_HEIGHT); @@ -5492,6 +5491,8 @@ MultiPV (ChessProgramState *cps) return -1; } +Boolean extendGame; // signals to UnLoadPV() if walked part of PV has to be appended to game + Boolean LoadMultiPV (int x, int y, char *buf, int index, int *start, int *end, int pane) { @@ -5523,6 +5524,7 @@ LoadMultiPV (int x, int y, char *buf, int index, int *start, int *end, int pane) } ParsePV(buf+startPV, FALSE, gameMode != AnalyzeMode); *start = startPV; *end = index-1; + extendGame = (gameMode == AnalyzeMode && appData.autoExtend); return TRUE; } @@ -5552,6 +5554,7 @@ LoadPV (int x, int y) int which = gameMode == TwoMachinesPlay && (WhiteOnMove(forwardMostMove) == (second.twoMachinesColor[0] == 'w')); lastX = x; lastY = y; ParsePV(lastPV[which], FALSE, TRUE); // load the PV of the thinking engine in the boards array. + extendGame = FALSE; return TRUE; } @@ -5562,7 +5565,7 @@ UnLoadPV () if(endPV < 0) return; if(appData.autoCopyPV) CopyFENToClipboard(); endPV = -1; - if(gameMode == AnalyzeMode && currentMove > forwardMostMove) { + if(extendGame && currentMove > forwardMostMove) { Boolean saveAnimate = appData.animate; if(pushed) { if(shiftKey && storedGames < MAX_VARIATIONS-2) { // wants to start variation, and there is space @@ -9480,6 +9483,7 @@ ApplyMove (int fromX, int fromY, int toX, int toY, int promoChar, Board board) board[toY][toX] = (ChessSquare) (PROMOTED board[toY][toX]); board[fromY][fromX] = EmptySquare; } else if ((fromY >= BOARD_HEIGHT>>1) + && (oldEP == toX || oldEP == EP_UNKNOWN || appData.testLegality) && (toX != fromX) && gameInfo.variant != VariantXiangqi && gameInfo.variant != VariantBerolina @@ -9540,6 +9544,7 @@ ApplyMove (int fromX, int fromY, int toX, int toY, int promoChar, Board board) board[toY][toX] = (ChessSquare) (PROMOTED board[toY][toX]); board[fromY][fromX] = EmptySquare; } else if ((fromY < BOARD_HEIGHT>>1) + && (oldEP == toX || oldEP == EP_UNKNOWN || appData.testLegality) && (toX != fromX) && gameInfo.variant != VariantXiangqi && gameInfo.variant != VariantBerolina @@ -10743,7 +10748,7 @@ GameEnds (ChessMove result, char *resultDetails, int whosays) else SaveGameToFile(appData.saveGameFile, TRUE); } else if (appData.autoSaveGames) { - AutoSaveGame(); + if(gameMode != IcsObserving || !appData.onlyOwn) AutoSaveGame(); } if (*appData.savePositionFile != NULLCHAR) { SavePositionToFile(appData.savePositionFile); @@ -13643,7 +13648,7 @@ AnalyzeModeEvent () /* secure check */ if (appData.icsEngineAnalyze) { if (appData.debugMode) - fprintf(debugFP, _("Found unexpected active ICS engine analyze \n")); + fprintf(debugFP, "Found unexpected active ICS engine analyze \n"); ExitAnalyzeMode(); ModeHighlight(); } @@ -13657,7 +13662,7 @@ AnalyzeModeEvent () } appData.icsEngineAnalyze = TRUE; if (appData.debugMode) - fprintf(debugFP, _("ICS engine analyze starting... \n")); + fprintf(debugFP, "ICS engine analyze starting... \n"); } if (gameMode == AnalyzeMode) { ToggleSecond(); return 0; }