TCHAR *tmpp;
TCHAR tmpbuf[CONFIG_BLEN];
- if (_tcsncmp (option, _T("input."), 6) == 0) {
+ if (_tcsncmp (option, _T("input."), 6) == 0 || _tcsncmp(option, _T("input_"), 6) == 0) {
read_inputdevice_config (p, option, value);
return 1;
}
}
if (!cfgfile_separate_line (line, line1b, line2b))
return;
+ if (!_tcsnicmp(line1b, _T("input."), 6)) {
+ line1b[5] = '_';
+ }
u = xcalloc (struct strlist, 1);
- u->option = my_strdup (line1b);
- u->value = my_strdup (line2b);
- u->next = temp_lines;
- temp_lines = u;
+ if (u) {
+ u->option = my_strdup(line1b);
+ u->value = my_strdup(line2b);
+ u->next = temp_lines;
+ temp_lines = u;
+ }
}
#if 0
va_end (parms);
strlist *u = xcalloc (struct strlist, 1);
- u->option = my_strdup (bufp);
- u->next = error_lines;
- error_lines = u;
+ if (u) {
+ u->option = my_strdup(bufp);
+ if (u->option) {
+ u->next = error_lines;
+ error_lines = u;
+ }
+ }
if (bufp != buffer)
xfree (bufp);
TCHAR *p2, *custom;
struct temp_uids *tid = &temp_uid;
struct inputdevice_functions *idf = NULL;
+ bool directmode = option[5] == '_';
option += 6; /* "input." */
p = getstring (&option);
return;
idnum--;
- if (idnum != tid->idnum) {
+ if (idnum != tid->idnum || directmode) {
reset_inputdevice_config_temp();
tid->idnum = idnum;
}
}
#endif
}
+ if (directmode) {
+ tid->joystick = joystick;
+ tid->devtype = devtype;
+ }
if (!_tcscmp (p2, _T("name"))) {
xfree(tid->configname);
tid->configname = my_strdup (value);
- tid->joystick = joystick;
- tid->devtype = devtype;
tid->custom = false;
tid->empty = false;
tid->disabled = false;
+ tid->joystick = joystick;
+ tid->devtype = devtype;
return;
}
if (!_tcscmp (p2, _T("friendlyname"))) {
xfree (tid->name);
tid->name = my_strdup (value);
- tid->joystick = joystick;
- tid->devtype = devtype;
tid->custom = false;
tid->empty = false;
tid->disabled = false;
+ tid->joystick = joystick;
+ tid->devtype = devtype;
return;
}
if (!_tcscmp (p2, _T("custom"))) {
p = value;
tid->custom = getnum(&p);
+ tid->empty = false;
tid->joystick = joystick;
tid->devtype = devtype;
- tid->empty = false;
return;
}
if (!_tcscmp(p2, _T("empty"))) {
return;
}
- if (newdev) {
+ if (newdev && !directmode) {
if (!tid->initialized)
clear_id(id);
if (!tid->empty && tid->devtype == IDTYPE_KEYBOARD && !tid->initialized) {