X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=winboard%2Fwsettings.c;h=47cc1a3d4215d371012f53001d9999b1f5d946ef;hb=00d7f7869e045cbed5037d39e1e56224692eb766;hp=86a94175a567e56ac30c14d14cd84c6e9aca3594;hpb=be12082df5c3ef2c7ef9fe133d1ff397acec7a33;p=xboard.git diff --git a/winboard/wsettings.c b/winboard/wsettings.c index 86a9417..47cc1a3 100644 --- a/winboard/wsettings.c +++ b/winboard/wsettings.c @@ -34,15 +34,15 @@ int breaks[MAX_OPTIONS]; int checks, combos, buttons, layout, groups; char title[MSG_SIZ]; char *engineName, *engineDir, *engineChoice, *engineLine, *nickName, *params; -Boolean isUCI, hasBook, storeVariant, v1, addToList; +Boolean isUCI, hasBook, storeVariant, v1, addToList, useNick, isUCCI; extern Option installOptions[], matchOptions[]; char *engineNr[] = { N_("First"), N_("Second"), NULL }; char *engineList[1000] = {" "}, *engineMnemonic[1000] = {""}; void (*okFunc)(); ChessProgramState *activeCps; Option *activeList; -void InstallOK P((void)); -typedef void ButtonCallback(HWND h); +int InstallOK P((void)); +typedef int ButtonCallback(HWND h); ButtonCallback *comboCallback; void @@ -262,6 +262,17 @@ struct { 0x0000, 0x0000, L"Engine #1 Settings ", 8, L"MS Sans Serif" }; +char * +AddCR(char *s) +{ + char *p=s, *q; + int n=0; + while(p = strchr(p, '\n')) p++, n++; // count linefeeds + p = q = malloc(strlen(s) + n + 1); + while(*p++ = *s++) if(p[-1] == '\n') p[-1] = '\r', *p++ = '\n'; + return q; +} + void SetOptionValues(HWND hDlg, ChessProgramState *cps, Option *optionList) // Put all current option values in controls, and write option names next to them @@ -285,7 +296,9 @@ SetOptionValues(HWND hDlg, ChessProgramState *cps, Option *optionList) case TextBox: case FileName: case PathName: - SetDlgItemText( hDlg, 2001+2*i, cps ? optionList[j].textValue : *(char**)optionList[j].target ); + name = AddCR(cps ? optionList[j].textValue : *(char**)optionList[j].target); // stupid CR... + SetDlgItemText( hDlg, 2001+2*i, name); + free(name); break; case CheckBox: CheckDlgButton( hDlg, 2000+2*i, (cps ? optionList[j].value : *(Boolean*)optionList[j].target) != 0); @@ -321,13 +334,13 @@ SetOptionValues(HWND hDlg, ChessProgramState *cps, Option *optionList) } -void +int GetOptionValues(HWND hDlg, ChessProgramState *cps, Option *optionList) // read out all controls, and if value is altered, remember it and send it to the engine { HANDLE hwndCombo; - int i, k, new=0, changed=0; - char **choices, newText[MSG_SIZ], buf[MSG_SIZ]; + int i, k, new=0, changed=0, len; + char **choices, newText[MSG_SIZ], buf[MSG_SIZ], *text; BOOL success; for(i=0; i