aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/check/check.c15
-rw-r--r--src/opt.c6
-rw-r--r--src/ui.c7
-rw-r--r--src/ui.h6
-rw-r--r--src/ui_txtwindow.c2
5 files changed, 23 insertions, 13 deletions
diff --git a/src/check/check.c b/src/check/check.c
index 9d28129..f32506b 100644
--- a/src/check/check.c
+++ b/src/check/check.c
@@ -35,17 +35,21 @@ int main(int argc, char **argv)
m_attr.mq_curmsgs = 0;
mq_unlink("/testmq");
- myassert( (mq_test = mq_open( "/testmq", O_NONBLOCK | O_CREAT | O_EXCL | O_RDWR, S_IRWXU | S_IRWXG, &m_attr )) != (mqd_t)-1, 0x1 );
+ mq_test = mq_open( "/testmq", O_NONBLOCK | O_CREAT | O_EXCL | O_RDWR, S_IRWXU | S_IRWXG, &m_attr );
+ myassert( mq_test != (mqd_t)-1, 0x1 );
myassert( mq_getattr(mq_test, &m_attr) == 0, 0x2 );
strcpy(buf, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVQXYZ");
myassert( mq_send(mq_test, buf, bufsiz, 0) == 0, 0x4 );
- myassert( (sz_recv = mq_receive(mq_test, recv, bufsiz, &prio)) > 0, 0x8 );
+ sz_recv = mq_receive(mq_test, recv, bufsiz, &prio);
+ myassert( sz_recv > 0, 0x8 );
memset(recv, '\0', bufsiz);
if (fork() > 0) {
- myassert( (mq_recv = mq_open( "/testmq", O_RDONLY, S_IRWXU | S_IRWXG, &m_attr )) != (mqd_t)-1, 0x10 );
- myassert( (sz_recv = mq_receive(mq_recv, recv, bufsiz, &prio)) > 0, 0x20 );
+ mq_recv = mq_open( "/testmq", O_RDONLY, S_IRWXU | S_IRWXG, &m_attr );
+ myassert( mq_recv != (mqd_t)-1, 0x10 );
+ sz_recv = mq_receive(mq_recv, recv, bufsiz, &prio);
+ myassert( sz_recv > 0, 0x20 );
return ret;
}
myassert( mq_send(mq_test, buf, bufsiz, 0) == 0, 0x40 );
@@ -55,7 +59,8 @@ int main(int argc, char **argv)
myassert( mq_unlink("/testmq") == 0, 0x200 );
myassert( sem_unlink("/testsem") == 0, 0x400 );
- myassert( (sp_test = sem_open("/testsem", O_CREAT | O_EXCL, S_IRUSR | S_IWUSR, 0)), 0x800 );
+ sp_test = sem_open("/testsem", O_CREAT | O_EXCL, S_IRUSR | S_IWUSR, 0);
+ myassert( sp_test == 0, 0x800 );
myassert( sem_post(sp_test) == 0, 0x1000 );
myassert( sem_wait(sp_test) == 0, 0x1200 );
myassert( sem_close(sp_test) == 0, 0x1400 );
diff --git a/src/opt.c b/src/opt.c
index 996b4bb..49ae1a6 100644
--- a/src/opt.c
+++ b/src/opt.c
@@ -38,10 +38,12 @@ parse_cmd(int argc, char **argv)
usage(argv[0]);
return 1;
case 'f':
- SETOPT_str(FIFO_PATH, strdup(optarg));
+ if (optarg)
+ SETOPT_str(FIFO_PATH, strdup(optarg));
break;
case 'c':
- SETOPT_str(CRYPT_CMD, strdup(optarg));
+ if (optarg)
+ SETOPT_str(CRYPT_CMD, strdup(optarg));
break;
case 'l':
if (optarg) {
diff --git a/src/ui.c b/src/ui.c
index 360f015..4d9fac8 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -83,13 +83,15 @@ unregister_ui_elt(void *data)
next = cur->next;
if (cur->data != NULL && cur->data == data) {
free(cur);
+ cur = NULL;
if (before != NULL) {
before->next = next;
} else {
nui = next;
}
}
- before = cur;
+ if (cur != NULL)
+ before = cur;
cur = next;
}
}
@@ -197,7 +199,7 @@ do_ui_update(bool timed_out)
mvprintw(0, max_x - STRLEN(APP_TIMEOUT_FMT), "[" APP_TIMEOUT_FMT "]", atmout);
attroff(COLOR_PAIR(1));
/* EoT (End of Todo) */
- wmove(wnd_main, cur_y, cur_x);
+ retval |= (wmove(wnd_main, cur_y, cur_x) << 4);
wrefresh(wnd_main);
return (retval);
}
@@ -303,6 +305,7 @@ do_ui(void)
pthread_mutex_lock(&mtx_update);
if (run_ui_thrd() != 0) {
+ pthread_mutex_unlock(&mtx_update);
return ret;
}
ui_ipc_semwait(SEM_RD);
diff --git a/src/ui.h b/src/ui.h
index 8aa1d55..52090ce 100644
--- a/src/ui.h
+++ b/src/ui.h
@@ -10,9 +10,9 @@
#define UICB_ERR_BUF 3
#define DOUI_OK 0
-#define DOUI_ERR 1
-#define DOUI_TMOUT 2
-#define DOUI_NINIT 3
+#define DOUI_ERR 4
+#define DOUI_TMOUT 5
+#define DOUI_NINIT 6
#define UILOOP_TIMEOUT 1
diff --git a/src/ui_txtwindow.c b/src/ui_txtwindow.c
index 736fde4..0acfb72 100644
--- a/src/ui_txtwindow.c
+++ b/src/ui_txtwindow.c
@@ -152,7 +152,7 @@ __do_textadjust(struct txtwindow *a, char *text)
}
adj_text[i] = tok;
i++;
- } while (rows > 0);
+ } while (--rows > 0);
return adj_text;
error:
free(adj_text);