commit 92ce02e268a0aab7b86c441c9c01299d3af83d1d from: Omar Polo date: Sun Jan 02 22:29:15 2022 UTC rework handle_imsg_session into a switch on the imsg type commit - ea63925028272e2324146df682e86f4ca3c60a8c commit + 92ce02e268a0aab7b86c441c9c01299d3af83d1d blob - 0f24a1f1b10e35f9093653ca360142ece41f7059 blob + d884b8c2a8640baf5d73d7a9db615ddb4ca8c72e --- telescope.c +++ telescope.c @@ -509,7 +509,21 @@ handle_imsg_session(struct imsg *imsg, size_t datalen) if (operating) die(); - if (imsg->hdr.type == IMSG_SESSION_END) { + switch (imsg->hdr.type) { + case IMSG_SESSION_TAB: + if (datalen != sizeof(st)) + die(); + + memcpy(&st, imsg->data, sizeof(st)); + if ((tab = new_tab(st.uri, NULL, NULL)) == NULL) + die(); + strlcpy(tab->buffer.page.title, st.title, + sizeof(tab->buffer.page.title)); + if (st.flags & TAB_CURRENT) + curr = tab; + break; + + case IMSG_SESSION_END: if (datalen != sizeof(first_time)) die(); memcpy(&first_time, imsg->data, sizeof(first_time)); @@ -524,19 +538,11 @@ handle_imsg_session(struct imsg *imsg, size_t datalen) if (has_url || TAILQ_EMPTY(&tabshead)) new_tab(url, NULL, NULL); ui_main_loop(); - return; - } + break; - if (datalen != sizeof(st)) + default: die(); - - memcpy(&st, imsg->data, sizeof(st)); - if ((tab = new_tab(st.uri, NULL, NULL)) == NULL) - die(); - strlcpy(tab->buffer.page.title, st.title, - sizeof(tab->buffer.page.title)); - if (st.flags & TAB_CURRENT) - curr = tab; + } } static void