diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/check/check.c | 15 | ||||
-rw-r--r-- | src/opt.c | 6 | ||||
-rw-r--r-- | src/ui.c | 7 | ||||
-rw-r--r-- | src/ui.h | 6 | ||||
-rw-r--r-- | src/ui_txtwindow.c | 2 |
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 ); @@ -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) { @@ -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); @@ -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); |