X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Fcommondsp.c;h=9556f63905d109f446e2dd82c8511e7711b08bf8;hb=dec345dc3b77affb98207d7387093dbdee39c08b;hp=1950b42864273caf5edc3b65424aaa837204ee03;hpb=1dbab3b37f5cda14a870156b1fa927ab1853266c;p=gnushogi.git diff --git a/gnushogi/commondsp.c b/gnushogi/commondsp.c index 1950b42..9556f63 100644 --- a/gnushogi/commondsp.c +++ b/gnushogi/commondsp.c @@ -1039,8 +1039,10 @@ BookSave(void) RequestInputString(fname, sizeof(fname)-1); } - if (fname[0] == '\0') + if (fname[0] == '\0') { + dsp->AlwaysShowMessage("aborting book save"); return; + } if ((fd = fopen(fname, "a")) != NULL) { @@ -1494,7 +1496,9 @@ SetMachineTime(char *time) void InputCommand(char *command) { +#ifdef QUIETBACKGROUND short have_shown_prompt = false; +#endif short ok, done, is_move = false; unsigned short mv; char s[80], sx[80]; @@ -1571,6 +1575,10 @@ InputCommand(char *command) { player = opponent; + if (flag.analyze) { + SelectMove(opponent, BACKGROUND_MODE); + } + #ifdef QUIETBACKGROUND if (!have_shown_prompt) { @@ -1619,14 +1627,20 @@ InputCommand(char *command) { flag.post = 0; } +#ifdef MINISHOGI + else if (strcmp(s, "variant") == 0) + { /* only variant we play is minishogi */ + printf("setup (P.BR.S...G.+.++.+Kp.br.s...g.+.++.+k) 5x5+5_shogi rbsgk/4p/5/P4/KGSBR [-] w 0 1\n"); + } +#endif else if (strcmp(s, "alg") == 0 || strcmp(s, "accepted") == 0 || strcmp(s, "rejected") == 0 || strcmp(s, "variant") == 0 || strcmp(s, "computer") == 0) { /* noop */ ; } - else if ((strcmp(s, "quit") == 0) - || (strcmp(s, "exit") == 0)) + else if ((strcmp(s, "quit") == 0) || + (strcmp(s, "exit") == 0) && !xboard) { flag.quit = true; } @@ -1638,16 +1652,38 @@ InputCommand(char *command) } else if (strcmp(s, "protover") == 0) { - printf("feature myname=\"GNU %sShogi %s\" variants=\"%sshogi\" debug=1 setboard=0 sigint=0 done=1\n", + printf("feature myname=\"GNU %s %s\" ", #ifdef MINISHOGI - "mini", PACKAGE_VERSION, "5x5+5_" + "MiniShogi", #else - "", PACKAGE_VERSION, "" + "Shogi", #endif - ); + PACKAGE_VERSION + ); + printf("variants=\"%s\" ", +#ifdef MINISHOGI + "5x5+5_shogi,minishogi" +#else + "shogi" +#endif + ); + printf("debug=1 setboard=0 sigint=0 done=1\n"); + } + else if (strcmp(s, ".") == 0) + { // ignore for now + } + else if (strcmp(s, "exit") == 0) + { + flag.analyze = false; + flag.force = true; + } + else if (strcmp(s, "analyze") == 0) + { + flag.analyze = true; + flag.force = true; } - else if ((strcmp(s, "set") == 0) - || (strcmp(s, "edit") == 0)) + else if ((strcmp(s, "set") == 0) || + (strcmp(s, "edit") == 0)) { dsp->EditBoard(); } @@ -1826,12 +1862,12 @@ InputCommand(char *command) BookSave(); } #ifdef EASY_OPENINGS - else if ((strcmp(s, "?") == 0) - || (strcmp(s, "!") == 0) - || (strcmp(s, "~") == 0)) + else if ((strcmp(s, "?") == 0) || + (strcmp(s, "!") == 0) || + (strcmp(s, "~") == 0)) #else - else if ((strcmp(s, "?") == 0) - || (strcmp(s, "!") == 0)) + else if ((strcmp(s, "?") == 0) || + (strcmp(s, "!") == 0)) #endif { FlagMove(*s);