summaryrefslogtreecommitdiffstatshomepage
path: root/xkbcat.c
diff options
context:
space:
mode:
authorGravatar Antti K2014-07-29 17:37:34 +0200
committerGravatar Antti K2014-07-29 20:35:36 +0200
commite2bcf8ba1be6e78c850621e4d908bc3f25fae2a7 (patch)
tree0e4a5ff9110c55cc1472c49fccc5dd3a492e8770 /xkbcat.c
parent66d5bb2c84cd9f92eb146a8496bda4c9c9b0f0ce (diff)
downloadxkbcat-e2bcf8ba1be6e78c850621e4d908bc3f25fae2a7.tar.gz
xkbcat-e2bcf8ba1be6e78c850621e4d908bc3f25fae2a7.zip
Use nanosleep instead of usleep
`usleep` is removed from POSIX C11.
Diffstat (limited to 'xkbcat.c')
-rw-r--r--xkbcat.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/xkbcat.c b/xkbcat.c
index 9a14a65..45fec2a 100644
--- a/xkbcat.c
+++ b/xkbcat.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
+#include <time.h>
char *DEFAULT_DISPLAY = ":0";
const int DEFAULT_DELAY = 10000;
@@ -50,10 +51,10 @@ int main(int argc, char *argv[]) {
buf1[32], buf2[32],
*keys,
*saved;
- int i, delay = DEFAULT_DELAY;
+ int delay = DEFAULT_DELAY;
/* get args */
- for (i=1; i<argc; i++) {
+ for (int i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-help")) usage();
else if (!strcmp(argv[i], "-display")) {
i++;
@@ -79,10 +80,15 @@ int main(int argc, char *argv[]) {
saved = buf1; keys=buf2;
XQueryKeymap(disp, saved);
+ struct timespec sleepTime = {
+ .tv_sec = 0,
+ .tv_nsec = delay * 1000
+ };
+
while (1) {
/* find changed keys */
XQueryKeymap(disp, keys);
- for (i=0; i<32*8; i++) {
+ for (int i = 0; i < 32*8; i++) {
if (BIT(keys, i) != BIT(saved, i)) {
register char *str;
str = (char *)KeyCodeToStr(i, BIT(keys, i));
@@ -96,7 +102,7 @@ int main(int argc, char *argv[]) {
saved = keys;
keys = char_ptr;
- usleep(delay);
+ nanosleep(&sleepTime, NULL);
}
}