commit 941b3761caf7ad45b24b9556161424d183021d97 from: Omar Polo date: Thu Mar 18 11:31:02 2021 UTC take an initial URL as first positional argument commit - 3d8c2326ed9a64ab1c48af6e5bd057ae8b3dd888 commit + 941b3761caf7ad45b24b9556161424d183021d97 blob - 76dfc8347db50cbb03bd085d30afe700a4ea9226 blob + 1404d6ee3e645292a65ee33d7afb83cc92cf241f --- telescope.c +++ telescope.c @@ -412,7 +412,7 @@ add_to_bookmarks(const char *str) } int -main(void) +main(int argc, char **argv) { struct imsgbuf network_ibuf, fs_ibuf; int net_fds[2], fs_fds[2]; @@ -478,11 +478,11 @@ main(void) event_set(&fsev, fsibuf->fd, EV_READ | EV_PERSIST, handle_dispatch_imsg, fsibuf); event_add(&fsev, NULL); - ui_init(); - - sandbox_ui_process(); - - event_dispatch(); + if (ui_init(argc, argv)) { + sandbox_ui_process(); + event_dispatch(); + ui_end(); + } imsg_compose(netibuf, IMSG_QUIT, 0, 0, -1, NULL, 0); imsg_flush(netibuf); @@ -490,7 +490,5 @@ main(void) imsg_compose(fsibuf, IMSG_QUIT, 0, 0, -1, NULL, 0); imsg_flush(fsibuf); - ui_end(); - return 0; } blob - e2832ad89223268a6cf04b4c834b19187fb671e6 blob + 690933f8d7ccea28dedb9434becc39ee5fd5ee74 --- telescope.h +++ telescope.h @@ -246,7 +246,7 @@ void add_to_bookmarks(const char*); void textplain_initparser(struct parser*); /* ui.c */ -int ui_init(void); +int ui_init(int, const char**); void ui_on_tab_loaded(struct tab*); void ui_on_tab_refresh(struct tab*); void ui_require_input(struct tab*, int); blob - e240653612f5732871f10d6d675377072efdfd6a blob + afd5af58bc6dc398d89430885b0d128426610962 --- ui.c +++ ui.c @@ -137,6 +137,7 @@ static void enter_minibuffer(void(*)(void), void(*)( static void exit_minibuffer(void); static void switch_to_tab(struct tab*); static struct tab *new_tab(const char*); +static void usage(void); static struct { int meta, key; } thiskey; @@ -1653,9 +1654,31 @@ new_tab(const char *url) return tab; } -int -ui_init(void) +static void +usage(void) { + fprintf(stderr, "USAGE: %s [url]\n", getprogname()); +} + +int +ui_init(int argc, const char **argv) +{ + const char *url = NEW_TAB_URL; + int ch; + + while ((ch = getopt(argc, argv, "")) != -1) { + switch (ch) { + default: + usage(); + return 0; + } + } + argc -= optind; + argv += optind; + + if (argc != 0) + url = argv[0]; + setlocale(LC_ALL, ""); TAILQ_INIT(&global_map.m); @@ -1704,7 +1727,7 @@ ui_init(void) signal_set(&winchev, SIGWINCH, handle_resize, NULL); signal_add(&winchev, NULL); - new_tab(NEW_TAB_URL); + new_tab(url); return 1; }