X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xaw%2Fxboard.c;h=bed61e54295c109a6138853abefc3dc827564851;hb=8f28573d2b5b136a4997bc720a3037f9ba086532;hp=8d0fb2446b89d5592fc43e4a172e1c93f1746e08;hpb=562bc6ef0a03544438acade21408653cfd1c4075;p=xboard.git diff --git a/xaw/xboard.c b/xaw/xboard.c index 8d0fb24..bed61e5 100644 --- a/xaw/xboard.c +++ b/xaw/xboard.c @@ -496,7 +496,8 @@ ParseFont (char *name, int number) if(sscanf(name, "size%d:", &size)) { // [HGM] font: font is meant for specific boardSize (likely from settings file); // defer processing it until we know if it matches our board size - if(size >= 0 && size= 0 && size%s: MenuItem(%s) \n ", mods, key, name); - char *buffer = malloc(buffersize+1); - snprintf(buffer, buffersize+1, ":%s%s: MenuItem(%s) \n ", mods, key, name); + char *buffer = malloc(MSG_SIZ); + snprintf(buffer, MSG_SIZ, ":%s%s: MenuItem(%s) \n ", mods, key, name); /* add string to the output */ - output = realloc(output, strlen(output) + strlen(buffer)+1); - strncat(output, buffer, strlen(buffer)); + output[shift|alt|ctrl] = realloc(output[shift|alt|ctrl], strlen(output[shift|alt|ctrl]) + strlen(buffer)+1); + strncat(output[shift|alt|ctrl], buffer, strlen(buffer)); /* clean up */ free(key); @@ -938,7 +939,10 @@ GenerateGlobalTranslationTable (void) } } } - return output; + output[1] = realloc(output[1], strlen(output[1]) + strlen(output[0])+1); + strncat(output[1], output[0], strlen(output[0])); + free(output[0]); + return output[1]; } @@ -986,6 +990,9 @@ main (int argc, char **argv) char *p; int forceMono = False; + extern Option chatOptions[]; // FIXME: adapt Chat window, removing ICS pane and Hide button + chatOptions[6].type = chatOptions[10].type = Skip; + srandom(time(0)); // [HGM] book: make random truly random setbuf(stdout, NULL); @@ -1280,7 +1287,7 @@ main (int argc, char **argv) CatchDeleteWindow(shellWidget, "QuitProc"); - CreateAnyPieces(); + CreateAnyPieces(1); CreateGrid(); if(appData.logoSize) @@ -1320,6 +1327,9 @@ main (int argc, char **argv) EngineOutputPopUp(); } + gameInfo.boardWidth = 0; // [HGM] pieces: kludge to ensure InitPosition() calls InitDrawingSizes() + InitPosition(TRUE); + InitBackEnd2(); if (errorExitStatus == -1) { @@ -1340,8 +1350,6 @@ main (int argc, char **argv) } } - gameInfo.boardWidth = 0; // [HGM] pieces: kludge to ensure InitPosition() calls InitDrawingSizes() - InitPosition(TRUE); UpdateLogos(TRUE); // XtSetKeyboardFocus(shellWidget, formWidget); XSetInputFocus(xDisplay, XtWindow(formWidget), RevertToPointerRoot, CurrentTime); @@ -1351,6 +1359,13 @@ main (int argc, char **argv) return 0; } +void +DoEvents () +{ + XtInputMask m; + while((m = XtAppPending(appContext))) XtAppProcessEvent(appContext, m); +} + RETSIGTYPE TermSizeSigHandler (int sig) { @@ -2486,7 +2501,7 @@ LoadLogo (ChessProgramState *cps, int n, Boolean ics) } else if(appData.autoLogo) { if(ics) { // [HGM] logo: in ICS mode second can be used for ICS sprintf(buf, "%s/%s.png", appData.logoDir, appData.icsHost); - } else if(appData.directory[n] && appData.directory[n][0]) { + } else if(appData.logoDir && appData.logoDir[0]) { sprintf(buf, "%s/%s.png", appData.logoDir, cps->tidy); } }