+ err_try_fgets(line, linemax, file, context, "0nf");
+ if (!strcmp(world.delim, line))
+ {
+ break;
+ }
+ err_line(' ' == line[strlen(line) - 2], line, context, err_space);
+ char * ptr_space;
+ err_line(!(ptr_space = strchr(line, ' ')), line, context, err_nospace);
+ uint8_t i = 0;
+ err_line(0 == (ptr_space - line), line, context, err_int);
+ for (; i < (ptr_space - line); i++)
+ {
+ err_line(line[i] < '0' || '9' < line[i], line, context, err_int);
+ }
+ err_line(i > 3, line, context, err_toolarge);
+
+ struct KeyBinding kb;
+ line[strlen(line) - 1] = '\0';
+ kb.command = get_command(ptr_space + 1);
+ err_line(!(kb.command), line, context, err_cmd);
+ kb.keycode = atoi(line);
+ array_append(kbdb->n_of_kbs, sizeof(struct KeyBinding), (void *) &kb,
+ (void **) kbdb);
+ kbdb->n_of_kbs++;