diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2012-01-18 23:30:02 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2012-01-18 23:30:02 +0000 |
commit | c427fa73c4f7853de992eda9de1c818c2ee525aa (patch) | |
tree | c1203a6a808f242038cb063eba4843cf97f2c40f /src/util.c | |
parent | 2512c508cb6b8edeefed308a3dce61054d58bb06 (diff) |
full and default gtk3 support, almost. the graph is disabled as the drawing api has changed quite a bit. yet another implementation to pass arguments, which made a cleanup of main.c necessary.
Diffstat (limited to 'src/util.c')
-rw-r--r-- | src/util.c | 56 |
1 files changed, 56 insertions, 0 deletions
@@ -533,3 +533,59 @@ evutil_vsnprintf(char *buf, size_t buflen, const char *format, va_list ap) return r; #endif } + +gboolean is_minimised_arg(gchar * arg) +{ + return !g_strcmp0(arg, "-m") + || !g_strcmp0(arg, "--minimized") + || !g_strcmp0(arg, "/m"); +} + +gboolean should_be_minimised(int argc, char *argv[]) +{ + int i; + for (i = 1; i < argc; i++) + if (is_minimised_arg(argv[i])) + return TRUE; + + return FALSE; +} + +gchar **convert_args(int argc, char *argv[]) +{ + gchar *cwd = g_get_current_dir(); + gchar **files = NULL; + + if (argc > 1) { + GSList *list = NULL; + int i; + + for (i = 1; i < argc; i++) { + if (is_minimised_arg(argv[i])) { + continue; + } else if (!is_url(argv[i]) && !is_magnet(argv[i]) + && g_file_test(argv[i], G_FILE_TEST_IS_REGULAR) + && !g_path_is_absolute(argv[i])) { + list = g_slist_append(list, + g_build_path(G_DIR_SEPARATOR_S, cwd, + argv[i], NULL)); + } else { + list = g_slist_append(list, g_strdup(argv[i])); + } + } + + if (list) { + GSList *li; + files = g_new0(gchar *, g_slist_length(list) + 1); + i = 0; + for (li = list; li; li = g_slist_next(li)) { + files[i++] = li->data; + } + g_slist_free(list); + } + } + + g_free(cwd); + + return files; +} |