static int ac_online;
static unsigned int present_mask, charge_mask, discharge_mask;
+static unsigned int last_charge_mask, last_discharge_mask;
+static int last_ac_online = -1;
+
static char *parse_line(char *line)
{
char *t = strchr(line, '\n');
static void show_if_warn(void)
{
- if (discharge_mask && discharge_time < warn_threshold)
+ if (discharge_mask && discharge_time < warn_threshold ||
+ last_ac_online >= 0 && (
+ charge_mask != last_charge_mask ||
+ discharge_mask != last_discharge_mask ||
+ ac_online != last_ac_online))
show();
+
+ last_charge_mask = charge_mask;
+ last_discharge_mask = discharge_mask;
+ last_ac_online = ac_online;
}
static void NONRET