summaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2012-01-18 23:30:02 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2012-01-18 23:30:02 +0000
commitc427fa73c4f7853de992eda9de1c818c2ee525aa (patch)
treec1203a6a808f242038cb063eba4843cf97f2c40f /src/util.c
parent2512c508cb6b8edeefed308a3dce61054d58bb06 (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.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/util.c b/src/util.c
index 7594c46..944be9a 100644
--- a/src/util.c
+++ b/src/util.c
@@ -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;
+}