The quark functions use a linear strcmp() search and could benefit from hashing.
For a lark, I did it
							
						
					For a lark, I did it
#ifndef SOUND_SDL
const struct sound_file_type supported_sound_files[] = {  {"", SDL_NULL} };
#endif
main-win.c: In function ‘load_sound_win’:
main-win.c:1157:19: error: ‘MCI_OPEN_PARMS’ has no member named ‘device’
    if (!sample->op.device) {
                   ^
main-win.c:1167:26: warning: comparison between pointer and integer
    data->loaded =  (NULL != sample->op.wDeviceID);
                          ^
main-win.c:1181:20: error: ‘win_sample’ has no member named ‘filname’
    my_strcpy(sample->filname, filename, strlen(filename) + 1)
                    ^
main-win.c:1182:4: error: expected ‘;’ before ‘data’
    data->loaded = true;
    ^
main-win.c: In function ‘play_sound_win’:
main-win.c:1208:15: error: ‘win_sample’ has no member named ‘device’
     if (sample->device) {
               ^
main-win.c:1215:4: error: case label not within a switch statement
    case WIN_WAV:
    ^
main-win.c:1224:4: error: break statement not within loop or switch
    break;
    ^
main-win.c:1227:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
main-win.c: In function ‘unload_sound_win’:
main-win.c:1236:15: error: ‘win_sample’ has no member named ‘device’
     if (sample->device)
               ^
main-win.c:1237:27: error: ‘win_sample’ has no member named ‘device’
      mciSendCommand(sample->device, MCI_CLOSE, MCI_WAIT, (size_t)(&sample->op))
                           ^
main-win.c:1239:5: error: expected ‘;’ before ‘break’
     break;
     ^
main-win.c: At top level:
main-win.c:1270:6: error: conflicting types for ‘init_sound_win’
 bool init_sound_win(struct sound_hooks *hooks, int argc, char **argv)
      ^
In file included from main-win.c:88:0:
snd-win.h:21:6: note: previous declaration of ‘init_sound_win’ was here
 errr init_sound_win(struct sound_hooks *hooks, int argc, char **argv);
      ^
#ifndef SOUND_SDL
const struct sound_file_type supported_sound_files[] = {  {"", SDL_NULL} };
#endif
 
							
						parser_reg(p, "sound sym type str sounds", parse_prefs_sound);
static enum parser_error parse_prefs_sound(struct parser *p)


 
							
						parser_reg(p, "sound sym type str sounds", parse_prefs_sound);
static enum parser_error parse_prefs_sound(struct parser *p)

In file included from ./ui-prefs.h:25:0,
                 from win/win-layout.c:21:
./ui-keymap.h:60:18: error: unknown type name ‘ang_file’
 void keymap_dump(ang_file *fff);
                  ^
Makefile.win:134: recipe for target 'win/win-layout.o' failed
 
							
						./run-tests
make tests
Comment