X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=a4f78524d57585c59b6af641ba345a26d530cf02;hb=d82d80274f7fb7c07dcf12ba873bb4c842279171;hp=b956f94489c05c571f11ceff58c27333a80ffa08;hpb=59b7ace7dd899298869a0921c0b9137e233c196b;p=xboard.git diff --git a/backend.c b/backend.c index b956f94..a4f7852 100644 --- a/backend.c +++ b/backend.c @@ -5556,6 +5556,7 @@ ParseOneMove (char *move, int moveNum, ChessMove *moveType, int *fromX, int *fro *toX = currentMoveString[2] - AAA; *toY = currentMoveString[3] - ONE; *promoChar = currentMoveString[4]; + if(*promoChar == ';') *promoChar = NULLCHAR; if (*fromX < BOARD_LEFT || *fromX >= BOARD_RGHT || *fromY < 0 || *fromY >= BOARD_HEIGHT || *toX < BOARD_LEFT || *toX >= BOARD_RGHT || *toY < 0 || *toY >= BOARD_HEIGHT) { if (appData.debugMode) { @@ -6003,7 +6004,7 @@ ptclen (const char *s, char *escapes) { int n = 0; if(!*escapes) return strlen(s); - while(*s) n += (*s != '/' && *s != '-' && *s != '^' && *s != '*' && !strchr(escapes, *s)), s++; + while(*s) n += (*s != '/' && *s != '-' && *s != '^' && *s != '*' && !strchr(escapes, *s)) - 2*(*s == '='), s++; return n; } @@ -6027,6 +6028,7 @@ SetCharTableEsc (unsigned char *table, const char * map, char * escapes) table[i+offs] = map[j++]; if(p = strchr(escapes, map[j])) j++, table[i+offs] += 64*(p - escapes + 1); if(c) partner[i+offs] = table[i+offs], table[i+offs] = c; + if(*escapes && map[j] == '=') pieceNickName[i+offs] = map[++j], j++; } table[(int) WhiteKing] = map[j++]; for( ii=offs=0; ii