Let PGN parser accept lower-case piece in drop moves
authorH.G. Muller <h.g.muller@hccnet.nl>
Mon, 4 Jul 2011 09:23:05 +0000 (11:23 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Mon, 4 Jul 2011 10:54:30 +0000 (12:54 +0200)
The @ sign prevents amiguity with other notations anyway.

parser.c

index d2bae37..0a6549e 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -195,6 +195,7 @@ int NextUnit(char **p)
        piece = separator = promoted = slash = n = 0;
        for(i=0; i<4; i++) coord[i] = -1, type[i] = NOTHING;
        if(**p == '+') (*p)++, promoted++;
+       if(**p >= 'a' && **p <= 'z' && (*p)[1]== '@') piece =*(*p)++ + 'A' - 'a'; else
        if(**p >= 'A' && **p <= 'Z') {
             piece = *(*p)++; // Note we could test for 2-byte non-ascii names here
             if(**p == '/') slash = *(*p)++;
@@ -579,3 +580,4 @@ ChessMove yylexstr(int boardIndex, char *s, char *buf, int buflen)
     fromString = 0;
     return ret;
 }
+