Skip to content

Commit d4bfb2a

Browse files
committed
Clean up linux keyboard reading.
1 parent 8f55c01 commit d4bfb2a

File tree

1 file changed

+24
-39
lines changed

1 file changed

+24
-39
lines changed

src/doomgeneric_ascii.c

Lines changed: 24 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -370,60 +370,41 @@ unsigned char convertToDoomKey(char **buf)
370370
(*buf)++;
371371
switch (**buf) {
372372
case '5':
373-
if (*(++(*buf)) == '~')
374-
return KEY_F5;
375-
break;
373+
return (*(++(*buf)) == '~') ? KEY_F5 : '\0';
376374
case '7':
377-
if (*(++(*buf)) == '~')
378-
return KEY_F6;
379-
break;
375+
return (*(++(*buf)) == '~') ? KEY_F6 : '\0';
380376
case '8':
381-
if (*(++(*buf)) == '~')
382-
return KEY_F7;
383-
break;
377+
return (*(++(*buf)) == '~') ? KEY_F7 : '\0';
384378
case '9':
385-
if (*(++(*buf)) == '~')
386-
return KEY_F8;
387-
break;
379+
return (*(++(*buf)) == '~') ? KEY_F8 : '\0';
380+
default:
381+
return '\0';
388382
}
389-
break;
390383
case '2':
391384
(*buf)++;
392385
switch (**buf) {
393386
case '0':
394-
if (*(++(*buf)) == '~')
395-
return KEY_F9;
396-
break;
387+
return (*(++(*buf)) == '~') ? KEY_F9 : '\0';
397388
case '1':
398-
if (*(++(*buf)) == '~')
399-
return KEY_F10;
400-
break;
389+
return (*(++(*buf)) == '~') ? KEY_F10 : '\0';
401390
case '3':
402-
if (*(++(*buf)) == '~')
403-
return KEY_F11;
404-
break;
391+
return (*(++(*buf)) == '~') ? KEY_F11 : '\0';
405392
case '4':
406-
if (*(++(*buf)) == '~')
407-
return KEY_F12;
408-
break;
393+
return (*(++(*buf)) == '~') ? KEY_F12 : '\0';
409394
case '~':
410395
return KEY_INS;
396+
default:
397+
return '\0';
411398
}
412-
break;
413399
case '3':
414-
if (*(++(*buf)) == '~')
415-
return KEY_DEL;
416-
break;
400+
return (*(++(*buf)) == '~') ? KEY_DEL : '\0';
417401
case '5':
418-
if (*(++(*buf)) == '~')
419-
return KEY_PGUP;
420-
break;
402+
return (*(++(*buf)) == '~') ? KEY_PGUP : '\0';
421403
case '6':
422-
if (*(++(*buf)) == '~')
423-
return KEY_PGDN;
424-
break;
404+
return (*(++(*buf)) == '~') ? KEY_PGDN : '\0';
405+
default:
406+
return '\0';
425407
}
426-
break;
427408
case 'O':
428409
(*buf)++;
429410
switch (**buf) {
@@ -435,17 +416,18 @@ unsigned char convertToDoomKey(char **buf)
435416
return KEY_F3;
436417
case 'S':
437418
return KEY_F4;
419+
default:
420+
return '\0';
438421
}
439-
break;
440422
default:
423+
(*buf)--;
441424
return KEY_ESCAPE;
442425
}
443426
case ' ':
444427
return KEY_FIRE;
445428
default:
446429
return tolower(**buf);
447430
}
448-
return '\0';
449431
}
450432
#endif
451433

@@ -516,7 +498,10 @@ void DG_ReadInput(void)
516498
char *raw_input_buf_loc = raw_input_buffer;
517499
unsigned char *input_buf_loc = input_buffer;
518500
while (*raw_input_buf_loc) {
519-
*input_buf_loc++ = convertToDoomKey(&raw_input_buf_loc);
501+
unsigned char inp = convertToDoomKey(&raw_input_buf_loc);
502+
if (!inp)
503+
break;
504+
*input_buf_loc++ = inp;
520505
raw_input_buf_loc++;
521506
}
522507
#endif

0 commit comments

Comments
 (0)