1
0
Fork 0

Fixed write if less than all pending bytes were written in one operation

pull/2/head
Emil Lenngren 8 years ago
parent ce39b7089f
commit 39d01b1f03

@ -349,8 +349,16 @@ static void handle_payload(int i, struct ports *port, unsigned char *payload, st
events[e_count].type = EV_SYN;
events[e_count].code = SYN_REPORT;
e_count++;
if (write(port->uinput, events, sizeof(events[0]) * e_count) != (int)sizeof(events[0]) * e_count)
fprintf(stderr, "Warning: writing input events failed\n");
size_t to_write = sizeof(events[0]) * e_count;
size_t written = 0;
while (written < to_write) {
ssize_t write_ret = write(port->uinput, (const char*)events + written, to_write - written);
if (write_ret <= 0) {
fprintf(stderr, "Warning: writing input events failed, return value was %d\n", write_ret);
break;
}
written += write_ret;
}
}
// check for rumble events

Loading…
Cancel
Save