MCPcopy Create free account
hub / github.com/NetHack/NetHack / process_options

Function process_options

outdated/sys/be/bemain.c:158–218  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

156}
157
158static void
159process_options(int argc, char **argv)
160{
161 int i;
162
163 while (argc > 1 && argv[1][0] == '-') {
164 argv++;
165 argc--;
166 switch (argv[0][1]) {
167 case 'D':
168 wizard = TRUE, discover = FALSE;
169 break;
170 case 'X':
171 discover = TRUE, wizard = FALSE;
172 break;
173#ifdef NEWS
174 case 'n':
175 iflags.news = FALSE;
176 break;
177#endif
178 case 'u':
179 if (argv[0][2])
180 (void) strncpy(svp.plname, argv[0] + 2, sizeof(svp.plname) - 1);
181 else if (argc > 1) {
182 argc--;
183 argv++;
184 (void) strncpy(svp.plname, argv[0], sizeof(svp.plname) - 1);
185 } else
186 raw_print("Player name expected after -u");
187 break;
188 case 'p': /* profession (role) */
189 if (argv[0][2]) {
190 if ((i = str2role(&argv[0][2])) >= 0)
191 flags.initrole = i;
192 } else if (argc > 1) {
193 argc--;
194 argv++;
195 if ((i = str2role(argv[0])) >= 0)
196 flags.initrole = i;
197 }
198 break;
199 case 'r': /* race */
200 if (argv[0][2]) {
201 if ((i = str2race(&argv[0][2])) >= 0)
202 flags.initrace = i;
203 } else if (argc > 1) {
204 argc--;
205 argv++;
206 if ((i = str2race(argv[0])) >= 0)
207 flags.initrace = i;
208 }
209 break;
210 case '@':
211 flags.randomall = 1;
212 break;
213 default:
214 raw_printf("Unknown option: %s", *argv);
215 break;

Callers 1

MAINFunction · 0.70

Calls 4

raw_printFunction · 0.85
str2roleFunction · 0.85
str2raceFunction · 0.85
raw_printfFunction · 0.50

Tested by

no test coverage detected