diff --git a/configure.ac b/configure.ac index 77277c08e..f0960ede6 100644 --- a/configure.ac +++ b/configure.ac @@ -468,6 +468,7 @@ PKG_CHECK_MODULES(E_FM_CMDLINE, [ ecore >= ${efl_version} ecore-file >= ${efl_version} edbus2 >= ${efl_version} + efreet >= ${efl_version} ]) PKG_CHECK_MODULES(E_FM_OP, [ diff --git a/src/bin/e_fm_cmdline.c b/src/bin/e_fm_cmdline.c index 35a142861..ccaad9037 100644 --- a/src/bin/e_fm_cmdline.c +++ b/src/bin/e_fm_cmdline.c @@ -3,6 +3,7 @@ # endif #include "e.h" +#include static EDBus_Connection *conn = NULL; static int retval = EXIT_SUCCESS; @@ -39,6 +40,21 @@ fm_open(const char *path) if (path[0] == '/') p = strdup(path); + else if (strstr(path, "://")) + { + Efreet_Uri *uri = efreet_uri_decode(path); + if ((!uri) || (!uri->protocol) || (strcmp(uri->protocol, "file") != 0)) + { + ERR("Invalid URI '%s'", path); + ecore_idler_add(fm_error_quit_last, NULL); + if (uri) + efreet_uri_free(uri); + return; + } + + p = strdup(uri->path); + efreet_uri_free(uri); + } else { char buf[PATH_MAX];