X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Ftint.c;h=4eb8cc7cbec7380443fabd338bfd13203db8204a;hb=8e711d63bec43974aa45f698302bb1016433dba0;hp=ba79855190a3b512f9148eed3b44758a4e5e3124;hpb=ed39165e7908dda7b2c7581075ef71a6de669a59;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index ba79855..4eb8cc7 100644 --- a/src/tint.c +++ b/src/tint.c @@ -46,8 +46,19 @@ void signal_handler(int sig) } -void init () +void init (int argc, char *argv[]) { + int c; + + // read options + c = getopt (argc, argv, "c:"); + if (c != -1) { + config_path = strdup (optarg); + c = getopt (argc, argv, "j:"); + if (c != -1) + thumbnail_path = strdup (optarg); + } + // Set signal handler signal(SIGUSR1, signal_handler); signal(SIGINT, signal_handler); @@ -105,6 +116,8 @@ void cleanup() #endif if (clock_lclick_command) g_free(clock_lclick_command); if (clock_rclick_command) g_free(clock_rclick_command); + if (config_path) g_free(config_path); + if (thumbnail_path) g_free(thumbnail_path); if (server.monitor) free(server.monitor); XFreeGC(server.dsp, server.gc); @@ -618,35 +631,32 @@ int main (int argc, char *argv[]) { XEvent e; fd_set fd; - int x11_fd, i, c; + int x11_fd, i; struct timeval tv; Panel *panel; GSList *it; - init (); + init (argc, argv); load_config: i = 0; - c = getopt (argc, argv, "c:"); init_config(); - if (c != -1) { - i = config_read_file (optarg); - c = getopt (argc, argv, "j:"); - if (c != -1) { - // usage: tint2 [-c] -j for internal use - printf("file %s\n", optarg); - cleanup(); - exit(0); - } + if (config_path) + i = config_read_file (config_path); + else + i = config_read (); + if (!i) { + fprintf(stderr, "usage: tint2 [-c] \n"); + cleanup(); + exit(1); } - if (!i) - i = config_read (); - if (!i) { - fprintf(stderr, "usage: tint2 [-c] \n"); - cleanup(); - exit(1); - } config_finish(); + if (thumbnail_path) { + // usage: tint2 -j for internal use + printf("file %s\n", thumbnail_path); + cleanup(); + exit(0); + } x11_fd = ConnectionNumber(server.dsp); XSync(server.dsp, False);