[Goodies-commits] r3268 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Fri Sep 28 22:01:02 CEST 2007
Author: stephan
Date: 2007-09-28 20:01:02 +0000 (Fri, 28 Sep 2007)
New Revision: 3268
Modified:
ristretto/trunk/src/main.c
Log:
Modify opening files from cli, to support relative paths.
Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c 2007-09-28 17:56:31 UTC (rev 3267)
+++ ristretto/trunk/src/main.c 2007-09-28 20:01:02 UTC (rev 3268)
@@ -55,6 +55,7 @@
mime_dbase = thunar_vfs_mime_database_get_default();
+
gtk_window_set_default_icon_name("ristretto");
xfce_rc = xfce_rc_config_open(XFCE_RESOURCE_CONFIG, "ristretto/ristrettorc", FALSE);
@@ -74,76 +75,90 @@
for (n = 1; n < argc; ++n)
{
- ThunarVfsPath *path = thunar_vfs_path_new(argv[n], NULL);
+ ThunarVfsPath *path;
+ if (g_path_is_absolute(argv[n]))
+ path = thunar_vfs_path_new(argv[n], NULL);
+ else
+ {
+ gchar *base_dir = g_get_current_dir();
+ gchar *path_dir = g_build_path("/", base_dir, argv[n], NULL);
+ path = thunar_vfs_path_new(path_dir, NULL);
+ g_free(base_dir);
+ g_free(path_dir);
+ }
- ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
- if(info)
+ if (path)
{
- if(strcmp(thunar_vfs_mime_info_get_name(info->mime_info), "inode/directory"))
+
+ ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
+ if(info)
{
- ThunarVfsPath *_path = thunar_vfs_path_get_parent(path);
- thunar_vfs_path_unref(path);
- path = _path;
+ if(strcmp(thunar_vfs_mime_info_get_name(info->mime_info), "inode/directory"))
+ {
+ ThunarVfsPath *_path = thunar_vfs_path_get_parent(path);
+ thunar_vfs_path_unref(path);
+ path = _path;
- gchar *path_string = thunar_vfs_path_dup_string(path);
-
- GDir *dir = g_dir_open(path_string, 0, NULL);
- const gchar *filename = g_dir_read_name(dir);
- while (filename)
- {
- gchar *path_name = g_strconcat(path_string, "/", filename, NULL);
- ThunarVfsPath *file_path = thunar_vfs_path_new(path_name, NULL);
- if (file_path)
+ gchar *path_string = thunar_vfs_path_dup_string(path);
+
+ GDir *dir = g_dir_open(path_string, 0, NULL);
+ const gchar *filename = g_dir_read_name(dir);
+ while (filename)
{
- ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
- gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
- if(!strcmp(file_media, "image"))
+ gchar *path_name = g_strconcat(path_string, "/", filename, NULL);
+ ThunarVfsPath *file_path = thunar_vfs_path_new(path_name, NULL);
+ if (file_path)
{
- RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
- gint i = rstto_navigator_add (navigator, entry);
- if (!strcmp(path_name, argv[n]))
+ ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
+ gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
+ if(!strcmp(file_media, "image"))
{
- rstto_navigator_set_file(navigator, i);
+ RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
+ gint i = rstto_navigator_add (navigator, entry);
+ if (!strcmp(path_name, argv[n]))
+ {
+ rstto_navigator_set_file(navigator, i);
+ }
}
+ g_free(file_media);
+ thunar_vfs_path_unref(file_path);
}
- g_free(file_media);
- thunar_vfs_path_unref(file_path);
+ g_free(path_name);
+ filename = g_dir_read_name(dir);
}
- g_free(path_name);
- filename = g_dir_read_name(dir);
+ g_free(path_string);
}
- g_free(path_string);
- }
- else
- {
- GDir *dir = g_dir_open(argv[n], 0, NULL);
- const gchar *filename = g_dir_read_name(dir);
- while (filename)
+ else
{
- gchar *path_name = g_strconcat(argv[n], "/", filename, NULL);
- ThunarVfsPath *file_path = thunar_vfs_path_new(path_name, NULL);
- if (file_path)
+ GDir *dir = g_dir_open(argv[n], 0, NULL);
+ const gchar *filename = g_dir_read_name(dir);
+ while (filename)
{
- ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
- gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
- if(!strcmp(file_media, "image"))
+ gchar *path_name = g_strconcat(argv[n], "/", filename, NULL);
+ ThunarVfsPath *file_path = thunar_vfs_path_new(path_name, NULL);
+ if (file_path)
{
- RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
- rstto_navigator_add (navigator, entry);
+ ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
+ gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
+ if(!strcmp(file_media, "image"))
+ {
+ RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
+ rstto_navigator_add (navigator, entry);
+ }
+ g_free(file_media);
+ thunar_vfs_path_unref(file_path);
}
- g_free(file_media);
- thunar_vfs_path_unref(file_path);
+ g_free(path_name);
+ filename = g_dir_read_name(dir);
}
- g_free(path_name);
- filename = g_dir_read_name(dir);
+ rstto_navigator_jump_first(navigator);
}
- rstto_navigator_jump_first(navigator);
+ gchar *uri = thunar_vfs_path_dup_uri(info->path);
+ gtk_recent_manager_add_item(recent_manager, uri);
+ g_free(uri);
}
- gchar *uri = thunar_vfs_path_dup_uri(info->path);
- gtk_recent_manager_add_item(recent_manager, uri);
- g_free(uri);
+ thunar_vfs_path_unref(path);
}
- thunar_vfs_path_unref(path);
}
More information about the Goodies-commits
mailing list