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 } |