Beef up variant detection in New Variant dialog WB
[xboard.git] / winboard / woptions.c
index 0d22012..d4f54d0 100644 (file)
@@ -896,13 +896,14 @@ VariantWhichRadio(HWND hDlg)
 void\r
 VariantShowRadio(HWND hDlg)\r
 {\r
-  char c = *engineVariant;\r
+  char c = *engineVariant, *v, *p;\r
   int i=0, j;\r
   CheckDlgButton(hDlg, radioButton[gameInfo.variant], TRUE);\r
   *engineVariant = NULLCHAR; // [HGM] kludge to prevent VariantName will always return engineVariant\r
   while((j = radioButton[i++]) != -2) {\r
        if(j == -1) continue; // no menu button\r
-       EnableWindow(GetDlgItem(hDlg, j), appData.noChessProgram || strstr(first.variants, VariantName(i-1)));\r
+       v = VariantName(i-1); p = strstr(first.variants, v);\r
+       EnableWindow(GetDlgItem(hDlg, j), appData.noChessProgram || p && (!*v || strlen(v) == strlen[p] || p[strlen[v]] == ','));\r
   }\r
   *engineVariant = c;\r
   for(i=0; i<15; i++) { // initialize engine-defined variants\r