#include "draw.h"
#define SLASH '/'
-#define DATADIR "~~"
#ifdef __EMX__
#ifndef HAVE_USLEEP
void
ParseColor (int n, char *name)
{ // in XBoard, just copy the color-name string
- if(colorVariable[n]) *(char**)colorVariable[n] = strdup(name);
+ if(colorVariable[n] && *name == '#') *(char**)colorVariable[n] = strdup(name);
}
char *
CatchDeleteWindow(shellWidget, "QuitProc");
- CreateAnyPieces();
+ CreateAnyPieces(1);
CreateGrid();
if(appData.logoSize)
#endif
+static int
+FindLogo (char *place, char *name, char *buf)
+{ // check if file exists in given place
+ FILE *f;
+ if(!place) return 0;
+ snprintf(buf, MSG_SIZ, "%s/%s.png", place, name);
+ if(*place && strcmp(place, ".") && (f = fopen(buf, "r")) ) {
+ fclose(f);
+ return 1;
+ }
+ return 0;
+}
+
static void
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]) {
- sprintf(buf, "%s/%s.png", appData.logoDir, cps->tidy);
+ } else if(appData.logoDir && appData.logoDir[0]) {
+ } else { // engine; cascade
+ if(!FindLogo(appData.logoDir, cps->tidy, buf) && // first try user log folder
+ !FindLogo(appData.directory[n], "logo", buf) && // then engine directory
+ !FindLogo("/usr/localshare/games/plugins/logos", cps->tidy, buf) ) // then system folders
+ FindLogo("/usr/share/games/plugins/logos", cps->tidy, buf);
}
}
if(logoName[0])