Mercurial > hg > early-roguelike
comparison srogue/options.c @ 37:34d7a614855e
srogue: add support for SAVEDIR
| author | elwin |
|---|---|
| date | Thu, 25 Nov 2010 17:28:29 +0000 |
| parents | 2128c7dc8a40 |
| children | 8a9525231fb6 |
comparison
equal
deleted
inserted
replaced
| 36:2128c7dc8a40 | 37:34d7a614855e |
|---|---|
| 183 while (*str) { | 183 while (*str) { |
| 184 for (sp = str; isalpha(*sp); sp++) /* get option name */ | 184 for (sp = str; isalpha(*sp); sp++) /* get option name */ |
| 185 continue; | 185 continue; |
| 186 len = sp - str; | 186 len = sp - str; |
| 187 for (op = optlist; op < &optlist[NUM_OPTS]; op++) { | 187 for (op = optlist; op < &optlist[NUM_OPTS]; op++) { |
| 188 /* For security, some options can't be changed. */ | |
| 189 if (!allowchange(op)) | |
| 190 continue; | |
| 188 if (EQSTR(str, op->o_name, len)) { | 191 if (EQSTR(str, op->o_name, len)) { |
| 189 reg char *start; | 192 reg char *start; |
| 190 | 193 |
| 191 for (str = sp + 1; *str == '='; str++) | 194 for (str = sp + 1; *str == '='; str++) |
| 192 continue; | 195 continue; |
| 226 s1 += strlen(sp); | 229 s1 += strlen(sp); |
| 227 s2++; | 230 s2++; |
| 228 } | 231 } |
| 229 *s1 = '\0'; | 232 *s1 = '\0'; |
| 230 } | 233 } |
| 234 | |
| 235 int allowchange(OPTION *opt) | |
| 236 { | |
| 237 if (!use_savedir) | |
| 238 return 1; | |
| 239 if (!strcmp(opt->o_name, "name")) | |
| 240 return 0; | |
| 241 if (!strcmp(opt->o_name, "file")) | |
| 242 return 0; | |
| 243 return 1; | |
| 244 } |
