Fix quoting in Load Engine dialog
authorH.G. Muller <h.g.muller@hccnet.nl>
Wed, 24 Aug 2011 07:51:10 +0000 (09:51 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Fri, 26 Aug 2011 11:04:12 +0000 (13:04 +0200)
A (space-contaning)  engine name only needs quoting when there are parameters,
because the over-all engine command will be quoted anyway. For UCI engines
duplicate quoting is fatal, because when passed as the -ec argument of
Polyglot, it will be quoted yet another time, also with double quotes.

backend.c

index 12931a7..ebe010e 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -907,8 +907,8 @@ Load(ChessProgramState *cps, int i)
        appData.directory[i] = strdup(engineName);
        p[-1] = SLASH;
     } else appData.directory[i] = ".";
-    if(strchr(p, ' ') && !strchr(p, '"')) snprintf(buf2, MSG_SIZ, "\"%s\"", p), p = buf2; // quote if it contains spaces
     if(params[0]) {
+       if(strchr(p, ' ') && !strchr(p, '"')) snprintf(buf2, MSG_SIZ, "\"%s\"", p), p = buf2; // quote if it contains spaces
        snprintf(command, MSG_SIZ, "%s %s", p, params);
        p = command;
     }