if (szLine[1] == '?') {
				mir_strncpy(szSection, szLine + 2, min(sizeof(szSection), (int)(szEnd - szLine - 1)));
				db_enum_settings(0, SettingsEnumProc, szSection);
				while (setting_items) {
					SettingsList *next = setting_items->next;
					db_unset(0, szSection, setting_items->name);
					mir_free(setting_items->name);
					mir_free(setting_items);
					setting_items = next;
				}
			}
оказывается, вместо дефиса должен быть вопросительный знак
почему - никто не помнит
надо будет дефис тоже добавить