changeset 1356:681e79dd0820

Slightly modify access_file() and use it to test profile files existence and read access.
author zas_
date Sun, 01 Mar 2009 15:41:51 +0000
parents 5a61fb9adc05
children 4ca837d74999
files src/image.c src/layout.c src/ui_fileops.c
diffstat 3 files changed, 8 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/image.c	Sun Mar 01 15:28:06 2009 +0000
+++ b/src/image.c	Sun Mar 01 15:41:51 2009 +0000
@@ -204,13 +204,12 @@
 	if (imd->color_profile_input >= COLOR_PROFILE_FILE &&
 	    imd->color_profile_input <  COLOR_PROFILE_FILE + COLOR_PROFILE_INPUTS)
 		{
-		gint n;
-
-		n = imd->color_profile_input - COLOR_PROFILE_FILE;
-		if (!options->color_profile.input_file[n] || !options->color_profile.input_file[n][0]) return FALSE;
+		const gchar *file = options->color_profile.input_file[imd->color_profile_input - COLOR_PROFILE_FILE];
+	
+		if (!access_file(file, R_OK)) return FALSE;
 
 		input_type = COLOR_PROFILE_FILE;
-		input_file = options->color_profile.input_file[n];
+		input_file = file;
 		}
 	else if (imd->color_profile_input >= COLOR_PROFILE_SRGB &&
 		 imd->color_profile_input <  COLOR_PROFILE_FILE)
@@ -224,8 +223,7 @@
 		}
 
 	if (imd->color_profile_screen == 1 &&
-	    options->color_profile.screen_file &&
-	    options->color_profile.screen_file[0])
+	    access_file(options->color_profile.screen_file, R_OK))
 		{
 		screen_type = COLOR_PROFILE_FILE;
 		screen_file = options->color_profile.screen_file;
--- a/src/layout.c	Sun Mar 01 15:28:06 2009 +0000
+++ b/src/layout.c	Sun Mar 01 15:41:51 2009 +0000
@@ -482,7 +482,7 @@
 					   G_CALLBACK(layout_color_menu_input_cb), lw);
 		g_free(buf);
 		g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(i + COLOR_PROFILE_FILE));
-		gtk_widget_set_sensitive(item, active && !from_image && file && file[0] && access_file(file, R_OK));
+		gtk_widget_set_sensitive(item, active && !from_image && access_file(file, R_OK));
 		}
 
 	menu_item_add_divider(menu);
@@ -498,7 +498,7 @@
 				   _("_Screen profile"), (screen == 1),
 				   G_CALLBACK(layout_color_menu_screen_cb), lw);
 	g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(1));
-	gtk_widget_set_sensitive(item, active && options->color_profile.screen_file && options->color_profile.screen_file[0]);
+	gtk_widget_set_sensitive(item, active && access_file(options->color_profile.screen_file, R_OK));
 
 	gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, GDK_CURRENT_TIME);
 #endif /* HAVE_LCMS */
--- a/src/ui_fileops.c	Sun Mar 01 15:28:06 2009 +0000
+++ b/src/ui_fileops.c	Sun Mar 01 15:41:51 2009 +0000
@@ -424,7 +424,7 @@
 	gchar *sl;
 	gint ret;
 
-	if (!s) return FALSE;
+	if (!s || !s[0]) return FALSE;
 
 	sl = path_from_utf8(s);
 	ret = (access(sl, mode) == 0);