-static char *sskip(char *p)
-{
- while (*p && isspace(*p))
- p++;
- return p;
-}
-
-static char *nsskip(char *p)
-{
- while (*p && !isspace(*p))
- p++;
- return p;
-}
-
-static int check_token(const char *p, const char *token)
-{
- int tlen = strlen(token);
- return strncasecmp(p, token, tlen) == 0 && isspace(p[tlen]);
-}
-
-static void do_config(void)
-{
- char buff[256];
- FILE *f;
-
- f = fopen("pmsdl.cfg", "r");
- if (f == NULL)
- return;
-
- while (!feof(f)) {
- char *p, *line = fgets(buff, sizeof(buff), f);
- if (line == NULL)
- break;
- p = line = sskip(line);
- if (*p == '#')
- continue;
-
- if (check_token(p, "bind")) {
- char *key, *key_end, *sdlkey, *sdlkey_end;
- key = sskip(p + 5);
- key_end = nsskip(key);
- p = sskip(key_end);
- if (*p != '=')
- goto bad;
- sdlkey = sskip(p + 1);
- sdlkey_end = nsskip(sdlkey);
- p = sskip(sdlkey_end);
- if (*key == 0 || *sdlkey == 0 || *p != 0)
- goto bad;
- *key_end = *sdlkey_end = 0;
-
- pmsdl_input_bind(key, sdlkey);
- continue;
- }
-
-bad:
- err("config: failed to parse: %s", line);
- }
- fclose(f);
-}
-