X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=dialogs.c;h=cb3d3e87636ad17a88604b28e6d5d6fcec1c38ac;hb=ee5c4592139dec24b8514a6fd217600fa414a9a3;hp=56ad8413626bd64c107abb736416b209667b4072;hpb=c133ccd58b40b8d62df35fc7a862adfc03058ffa;p=xboard.git diff --git a/dialogs.c b/dialogs.c index 56ad841..cb3d3e8 100644 --- a/dialogs.c +++ b/dialogs.c @@ -64,6 +64,7 @@ extern char *getenv(); #endif +int initialSquareSize; int values[MAX_OPTIONS]; ChessProgramState *currentCps; char manDir[MSG_SIZ] = MANDIR; @@ -866,7 +867,9 @@ static void Test (int n) { GenericReadout(soundOptions, 1); + mute <<= 1; // temporarily enable if(soundFiles[values[2]]) PlaySoundFile(soundFiles[values[2]]); + mute >>= 1; } void @@ -1041,6 +1044,7 @@ void SendString (char *p) { char buf[MSG_SIZ], buf2[MSG_SIZ], *q; + if(q = strstr(p, "$name")) { // in Xaw this is already intercepted if(!shellUp[TextMenuDlg] || !clickedWord[0]) return; strncpy(buf2, p, MSG_SIZ); @@ -1212,7 +1216,7 @@ static int NewTagsCallback (int n) { if(bookUp) SaveToBook(tagsText), DisplayBook(currentMove); else - if(resPtr) { ASSIGN(*resPtr, tagsText); } else + if(resPtr) { ASSIGN(*resPtr, tagsText); if(resPtr == &firstChessProgramNames) SaveEngineList(); } else ReplaceTags(tagsText, &gameInfo); return 1; } @@ -1225,7 +1229,7 @@ NewMove () Option tagsOptions[] = { { 0, 0, 0, NULL, NULL, NULL, NULL, Label, NULL }, -{ 200, T_VSCRL | T_FILL | T_WRAP | T_TOP, 200, NULL, (void*) &tagsText, NULL, (char **) &TagsClick, TextBox, "", &appData.tagsFont }, +{ 200, T_VSCRL | T_FILL | T_TOP, 200, NULL, (void*) &tagsText, NULL, (char **) &TagsClick, TextBox, "", &appData.tagsFont }, { 0, 0, 100, NULL, (void*) &NewMove, NULL, NULL, Button, N_("add next move") }, { 0,SAME_ROW,100,NULL, (void*) &changeTags, NULL, NULL, Button, N_("commit changes") }, { 0,SAME_ROW, 0, NULL, (void*) &NewTagsCallback, "", NULL, EndMark , "" } @@ -1553,6 +1557,7 @@ EngSel (int n, int sel) static void LoadEngineProc (int engineNr, char *title) { + if(*engineListFile) ParseSettingsFile(engineListFile, &engineListFile); // contains engine list isUCI = isUSI = storeVariant = v1 = useNick = False; addToList = hasBook = True; // defaults secondEng = engineNr; if(engineLine) free(engineLine); engineLine = strdup(""); @@ -2519,12 +2524,12 @@ DisplayMoveError (String message) void DisplayFatalError (String message, int error, int status) { - char buf[MSG_SIZ]; + char buf[MSG_SIZ], logout = appData.icsActive; if(status == 666) { // ignore this error when ICS Console window is up if(shellUp[ChatDlg]) return; status = 0; - } + } else if(status == 6666) status = logout = 0; // 6666 = kludge that indicates ICS connection already closed errorExitStatus = status; if (error == 0) { @@ -2537,7 +2542,7 @@ DisplayFatalError (String message, int error, int status) } if(mainOptions[W_BOARD].handle) { if (appData.popupExitMessage) { - if(appData.icsActive) SendToICS("logout\n"); // [HGM] make sure no new games will be started + if(logout) SendToICS("logout\n"); // [HGM] make sure no new games will be started ErrorPopUp(status ? _("Fatal Error") : _("Exiting"), message, TRUE); } else { ExitEvent(status); @@ -2690,7 +2695,9 @@ DisplayHelp (char *name) FREE(manText[1]); manText[1] = NULL; // so any currently held text is worthless safeStrCpy(tidy, buf, MSG_SIZ); // remember current engine eng = BufferCommandOutput(tidy, MSG_SIZ); // obtain path to its man file + if(*eng) safeStrCpy(engMan, eng, strlen(eng)); // and remember that too + else *engMan = NULLCHAR; FREE(eng); } safeStrCpy(buf, engMan, MSG_SIZ); n = 1; // use engine man @@ -3390,3 +3397,11 @@ ActivateTheme (int col) DrawPosition(True, NULL); } +char * +Shorten (char *s) +{ + static char buf[MSG_SIZ]; + if(strstr(s, dataDir) != s) return s; + snprintf(buf, MSG_SIZ, "~~%s", s + strlen(dataDir)); + return buf; +}