Fix variant recognition in ICS mode
authorH.G.Muller <hgm@hgm-xboard.(none)>
Wed, 13 Jan 2016 21:23:55 +0000 (22:23 +0100)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Wed, 13 Jan 2016 21:23:55 +0000 (22:23 +0100)
The patch that made recognizing variant names of the 'exotic variants'
(i.e. those beyond Shogi) more strict, by requiring an exact match,
had broken variant recognition on the Variant ICS. In that case it
has to act on strings like "ICS unrated xiangqi game", and this now
defaulted to variant normal. The requirement that the variant name
should be the first word of the string is now dropped in ICS mode.

backend.c

index a7be826..a3a81ef 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -2127,7 +2127,7 @@ StringToVariant (char *e)
     } else
     for (i=0; i<sizeof(variantNames)/sizeof(char*); i++) {
       if (p = StrCaseStr(e, variantNames[i])) {
     } else
     for (i=0; i<sizeof(variantNames)/sizeof(char*); i++) {
       if (p = StrCaseStr(e, variantNames[i])) {
-       if(p && i >= VariantShogi && (p != e || isalpha(p[strlen(variantNames[i])]))) continue;
+       if(p && i >= VariantShogi && (p != e && !appData.icsActive || isalpha(p[strlen(variantNames[i])]))) continue;
        v = (VariantClass) i;
        found = TRUE;
        break;
        v = (VariantClass) i;
        found = TRUE;
        break;