power: On Linux, compare status strings as case-insensitive.
In case something reports "Device" when we expected "device", etc. Reference Issue #6835. (cherry picked from commit df9d0fb332ea65c3fc47f72574851c91da2c912b)main
parent
2f75596d5a
commit
95f244598b
|
@ -142,18 +142,18 @@ static void check_proc_acpi_battery(const char *node, SDL_bool *have_battery,
|
||||||
|
|
||||||
ptr = &state[0];
|
ptr = &state[0];
|
||||||
while (make_proc_acpi_key_val(&ptr, &key, &val)) {
|
while (make_proc_acpi_key_val(&ptr, &key, &val)) {
|
||||||
if (SDL_strcmp(key, "present") == 0) {
|
if (SDL_strcasecmp(key, "present") == 0) {
|
||||||
if (SDL_strcmp(val, "yes") == 0) {
|
if (SDL_strcasecmp(val, "yes") == 0) {
|
||||||
*have_battery = SDL_TRUE;
|
*have_battery = SDL_TRUE;
|
||||||
}
|
}
|
||||||
} else if (SDL_strcmp(key, "charging state") == 0) {
|
} else if (SDL_strcasecmp(key, "charging state") == 0) {
|
||||||
/* !!! FIXME: what exactly _does_ charging/discharging mean? */
|
/* !!! FIXME: what exactly _does_ charging/discharging mean? */
|
||||||
if (SDL_strcmp(val, "charging/discharging") == 0) {
|
if (SDL_strcasecmp(val, "charging/discharging") == 0) {
|
||||||
charge = SDL_TRUE;
|
charge = SDL_TRUE;
|
||||||
} else if (SDL_strcmp(val, "charging") == 0) {
|
} else if (SDL_strcasecmp(val, "charging") == 0) {
|
||||||
charge = SDL_TRUE;
|
charge = SDL_TRUE;
|
||||||
}
|
}
|
||||||
} else if (SDL_strcmp(key, "remaining capacity") == 0) {
|
} else if (SDL_strcasecmp(key, "remaining capacity") == 0) {
|
||||||
char *endptr = NULL;
|
char *endptr = NULL;
|
||||||
const int cvt = (int)SDL_strtol(val, &endptr, 10);
|
const int cvt = (int)SDL_strtol(val, &endptr, 10);
|
||||||
if (*endptr == ' ') {
|
if (*endptr == ' ') {
|
||||||
|
@ -164,7 +164,7 @@ static void check_proc_acpi_battery(const char *node, SDL_bool *have_battery,
|
||||||
|
|
||||||
ptr = &info[0];
|
ptr = &info[0];
|
||||||
while (make_proc_acpi_key_val(&ptr, &key, &val)) {
|
while (make_proc_acpi_key_val(&ptr, &key, &val)) {
|
||||||
if (SDL_strcmp(key, "design capacity") == 0) {
|
if (SDL_strcasecmp(key, "design capacity") == 0) {
|
||||||
char *endptr = NULL;
|
char *endptr = NULL;
|
||||||
const int cvt = (int)SDL_strtol(val, &endptr, 10);
|
const int cvt = (int)SDL_strtol(val, &endptr, 10);
|
||||||
if (*endptr == ' ') {
|
if (*endptr == ' ') {
|
||||||
|
@ -220,8 +220,8 @@ static void check_proc_acpi_ac_adapter(const char *node, SDL_bool *have_ac)
|
||||||
|
|
||||||
ptr = &state[0];
|
ptr = &state[0];
|
||||||
while (make_proc_acpi_key_val(&ptr, &key, &val)) {
|
while (make_proc_acpi_key_val(&ptr, &key, &val)) {
|
||||||
if (SDL_strcmp(key, "state") == 0) {
|
if (SDL_strcasecmp(key, "state") == 0) {
|
||||||
if (SDL_strcmp(val, "on-line") == 0) {
|
if (SDL_strcasecmp(val, "on-line") == 0) {
|
||||||
*have_ac = SDL_TRUE;
|
*have_ac = SDL_TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -381,7 +381,7 @@ SDL_bool SDL_GetPowerInfo_Linux_proc_apm(SDL_PowerState *state, int *seconds, in
|
||||||
|
|
||||||
if (!next_string(&ptr, &str)) { /* remaining battery life time units */
|
if (!next_string(&ptr, &str)) { /* remaining battery life time units */
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
} else if (SDL_strcmp(str, "min") == 0) {
|
} else if (SDL_strcasecmp(str, "min") == 0) {
|
||||||
battery_time *= 60;
|
battery_time *= 60;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -446,7 +446,7 @@ SDL_bool SDL_GetPowerInfo_Linux_sys_class_power_supply(SDL_PowerState *state, in
|
||||||
continue; /* skip these, of course. */
|
continue; /* skip these, of course. */
|
||||||
} else if (!read_power_file(base, name, "type", str, sizeof(str))) {
|
} else if (!read_power_file(base, name, "type", str, sizeof(str))) {
|
||||||
continue; /* Don't know _what_ we're looking at. Give up on it. */
|
continue; /* Don't know _what_ we're looking at. Give up on it. */
|
||||||
} else if (SDL_strcmp(str, "Battery\n") != 0) {
|
} else if (SDL_strcasecmp(str, "Battery\n") != 0) {
|
||||||
continue; /* we don't care about UPS and such. */
|
continue; /* we don't care about UPS and such. */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -455,7 +455,7 @@ SDL_bool SDL_GetPowerInfo_Linux_sys_class_power_supply(SDL_PowerState *state, in
|
||||||
the system. Most system batteries don't list a scope at all; we
|
the system. Most system batteries don't list a scope at all; we
|
||||||
assume it's a system battery if not specified. */
|
assume it's a system battery if not specified. */
|
||||||
if (read_power_file(base, name, "scope", str, sizeof(str))) {
|
if (read_power_file(base, name, "scope", str, sizeof(str))) {
|
||||||
if (SDL_strcmp(str, "device\n") == 0) {
|
if (SDL_strcasecmp(str, "Device\n") == 0) {
|
||||||
continue; /* skip external devices with their own batteries. */
|
continue; /* skip external devices with their own batteries. */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -465,11 +465,11 @@ SDL_bool SDL_GetPowerInfo_Linux_sys_class_power_supply(SDL_PowerState *state, in
|
||||||
st = SDL_POWERSTATE_NO_BATTERY;
|
st = SDL_POWERSTATE_NO_BATTERY;
|
||||||
} else if (!read_power_file(base, name, "status", str, sizeof(str))) {
|
} else if (!read_power_file(base, name, "status", str, sizeof(str))) {
|
||||||
st = SDL_POWERSTATE_UNKNOWN; /* uh oh */
|
st = SDL_POWERSTATE_UNKNOWN; /* uh oh */
|
||||||
} else if (SDL_strcmp(str, "Charging\n") == 0) {
|
} else if (SDL_strcasecmp(str, "Charging\n") == 0) {
|
||||||
st = SDL_POWERSTATE_CHARGING;
|
st = SDL_POWERSTATE_CHARGING;
|
||||||
} else if (SDL_strcmp(str, "Discharging\n") == 0) {
|
} else if (SDL_strcasecmp(str, "Discharging\n") == 0) {
|
||||||
st = SDL_POWERSTATE_ON_BATTERY;
|
st = SDL_POWERSTATE_ON_BATTERY;
|
||||||
} else if ((SDL_strcmp(str, "Full\n") == 0) || (SDL_strcmp(str, "Not charging\n") == 0)) {
|
} else if ((SDL_strcasecmp(str, "Full\n") == 0) || (SDL_strcasecmp(str, "Not charging\n") == 0)) {
|
||||||
st = SDL_POWERSTATE_CHARGED;
|
st = SDL_POWERSTATE_CHARGED;
|
||||||
} else {
|
} else {
|
||||||
st = SDL_POWERSTATE_UNKNOWN; /* uh oh */
|
st = SDL_POWERSTATE_UNKNOWN; /* uh oh */
|
||||||
|
|
Loading…
Reference in New Issue