aboutsummaryrefslogtreecommitdiff
path: root/graphics/cinepaint/files/patch-app__cms.c
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/cinepaint/files/patch-app__cms.c')
-rw-r--r--graphics/cinepaint/files/patch-app__cms.c263
1 files changed, 263 insertions, 0 deletions
diff --git a/graphics/cinepaint/files/patch-app__cms.c b/graphics/cinepaint/files/patch-app__cms.c
new file mode 100644
index 000000000000..a0b7acf9116c
--- /dev/null
+++ b/graphics/cinepaint/files/patch-app__cms.c
@@ -0,0 +1,263 @@
+--- app/cms.c.orig
++++ app/cms.c
+@@ -37,16 +37,9 @@
+ #endif
+
+ #ifdef HAVE_OY
+-#include <oyranos/oyranos.h>
+-#ifndef OYRANOS_VERSION
+-#define OYRANOS_VERSION 0
+-#endif
+-#if OYRANOS_VERSION < 108
+-#include <arpa/inet.h> /* ntohl */
+-#include <oyranos/oyranos_monitor.h>
+-#else
+-#include <oyranos/oyranos_alpha.h>
+-#endif
++#include <oyranos_devices.h>
++#include <oyObject_s.h>
++#include <oyProfiles_s.h>
+ #endif
+
+ #include "config.h"
+@@ -114,7 +107,7 @@
+ cmsHPROFILE handle;
+ char *data; /* save original data for profile i/o */
+ size_t size;
+- char cspace[8];
++ const char *cspace;
+ };
+
+ /* same for transform */
+@@ -348,7 +341,7 @@
+
+ #ifdef HAVE_OY
+ # if OYRANOS_VERSION > 107
+-int iccMessageFunc( int code, const oyStruct_s * context, const char * format, ... )
++int iccMessageFunc( int code, const oyPointer * context, const char * format, ... )
+ {
+ char* text = 0, *pos = 0;
+ va_list list;
+@@ -359,10 +352,10 @@
+ return 0;
+
+
+- if(context && oyOBJECT_NONE < context->type_)
++ if(context && oyOBJECT_NONE < ((oyStruct_s*)context)->type_)
+ {
+- type_name = oyStruct_TypeToText( context );
+- id = oyObject_GetId( context->oy_ );
++ type_name = oyStruct_TypeToText( (oyStruct_s*)context );
++ id = oyObject_GetId( ((oyStruct_s*)context)->oy_ );
+ }
+
+ text = (char*)calloc(sizeof(char), 4096);
+@@ -463,7 +456,7 @@
+ const char *display_name = gdk_get_display ();
+
+ test = oyGetMonitorProfile( display_name, &test_size, my_alloc_func );
+- printf("%s:%d %s() monitor profile size: %d\n",__FILE__,__LINE__,__func__,
++ printf("%s:%d %s() monitor profile size: %lu\n",__FILE__,__LINE__,__func__,
+ test_size );
+
+ if (test == NULL || !test_size)
+@@ -566,36 +559,36 @@
+
+ const char*
+ cms_get_color_space_name (cmsHPROFILE hProfile)
+-{ static gchar name[10];
++{ static char *name = 10;
+
+ switch (cmsGetColorSpace (hProfile))
+ {
+- case icSigXYZData: sprintf(name, _("XYZ")); break;
+- case icSigLabData: sprintf(name, _("Lab")); break;
+- case icSigLuvData: sprintf(name, _("Luv")); break;
+- case icSigYCbCrData: sprintf(name, _("YCbCr")); break;
+- case icSigYxyData: sprintf(name, _("Yxy")); break;
+- case icSigRgbData: sprintf(name, _("Rgb")); break;
+- case icSigGrayData: sprintf(name, _("Gray")); break;
+- case icSigHsvData: sprintf(name, _("Hsv")); break;
+- case icSigHlsData: sprintf(name, _("Hls")); break;
+- case icSigCmykData: sprintf(name, _("Cmyk")); break;
+- case icSigCmyData: sprintf(name, _("Cmy")); break;
+- case icSig2colorData: sprintf(name, _("2color")); break;
+- case icSig3colorData: sprintf(name, _("3color")); break;
+- case icSig4colorData: sprintf(name, _("4color")); break;
+- case icSig5colorData: sprintf(name, _("5color")); break;
+- case icSig6colorData: sprintf(name, _("6color")); break;
+- case icSig7colorData: sprintf(name, _("7color")); break;
+- case icSig8colorData: sprintf(name, _("8color")); break;
+- case icSig9colorData: sprintf(name, _("9color")); break;
+- case icSig10colorData: sprintf(name, _("10color")); break;
+- case icSig11colorData: sprintf(name, _("11color")); break;
+- case icSig12colorData: sprintf(name, _("12color")); break;
+- case icSig13colorData: sprintf(name, _("13color")); break;
+- case icSig14colorData: sprintf(name, _("14color")); break;
+- case icSig15colorData: sprintf(name, _("15color")); break;
+- default: name[0] = '\0';
++ case icSigXYZData: name = _("XYZ"); break;
++ case icSigLabData: name = _("Lab"); break;
++ case icSigLuvData: name = _("Luv"); break;
++ case icSigYCbCrData: name = _("YCbCr"); break;
++ case icSigYxyData: name = _("Yxy"); break;
++ case icSigRgbData: name = _("Rgb"); break;
++ case icSigGrayData: name = _("Gray"); break;
++ case icSigHsvData: name = _("Hsv"); break;
++ case icSigHlsData: name = _("Hls"); break;
++ case icSigCmykData: name = _("Cmyk"); break;
++ case icSigCmyData: name = _("Cmy"); break;
++ case icSig2colorData: name = _("2color"); break;
++ case icSig3colorData: name = _("3color"); break;
++ case icSig4colorData: name = _("4color"); break;
++ case icSig5colorData: name = _("5color"); break;
++ case icSig6colorData: name = _("6color"); break;
++ case icSig7colorData: name = _("7color"); break;
++ case icSig8colorData: name = _("8color"); break;
++ case icSig9colorData: name = _("9color"); break;
++ case icSig10colorData: name = _("10color"); break;
++ case icSig11colorData: name = _("11color"); break;
++ case icSig12colorData: name = _("12color"); break;
++ case icSig13colorData: name = _("13color"); break;
++ case icSig14colorData: name = _("14color"); break;
++ case icSig15colorData: name = _("15color"); break;
++ default: name = "";
+ }
+
+ return name;
+@@ -603,17 +596,16 @@
+
+ const char**
+ cms_get_color_space_channel_names (cmsHPROFILE hProfile)
+-{ static char** name = 0;
++{ static char* name[5] = {0,0,0,0,0};
+ const char** ret = 0;
+- if(!name)
++ if(!name[0])
+ { int i;
+- name=(char**)calloc(sizeof(char**),4);
+ for(i = 0; i < 4; ++i)
+- name[i] = (char*)calloc(sizeof(char*),36);
++ name[i] = (char*)calloc(sizeof(char),128);
+ }
++ sprintf(name[0], "---");
+ sprintf(name[1], "---");
+ sprintf(name[2], "---");
+- sprintf(name[3], "---");
+
+ ret = (const char**) name;
+ sprintf( name[3],_("Alpha"));
+@@ -683,7 +675,7 @@
+
+ const char*
+ cms_get_device_class_name (cmsHPROFILE hProfile)
+-{ static char class[15];
++{ static char class[128];
+
+ switch (cmsGetDeviceClass (hProfile))
+ {
+@@ -1193,6 +1185,8 @@
+ */
+ const char * cms_get_profile_cspace ( CMSProfile * profile )
+ {
++ if(!profile->cspace)
++ return "";
+ return profile->cspace;
+ }
+
+@@ -1222,22 +1216,21 @@
+ #ifdef HAVE_OY
+ if ( profile == NULL )
+ {
++ char *pp_name = NULL;
+ /* add path to non pathnamed file names */
+ if(file_name && !strchr(file_name, OY_SLASH_C))
+ {
+- char *pp_name = oyGetPathFromProfileName( file_name, my_alloc_func );
++ pp_name = oyGetPathFromProfileName( file_name, my_alloc_func );
+
+ if(pp_name && strlen(pp_name))
+ {
+ fullFileName = (char*) calloc (MAX_PATH, sizeof(char));;
+ sprintf(fullFileName, "%s%s%s", pp_name, OY_SLASH, file_name);;
+ }
+- if(pp_name) free(pp_name);
+ } else
+ /* catch non correct paths */
+ if(file_name && strchr(file_name, OY_SLASH_C))
+ {
+- char *pp_name = NULL;
+ char *ptr = NULL;
+
+ ptr = strrchr(file_name, OY_SLASH_C);
+@@ -1251,12 +1244,13 @@
+ fullFileName = (char*) calloc (MAX_PATH, sizeof(char));;
+ sprintf(fullFileName, "%s%s%s", pp_name, OY_SLASH, ptr);;
+ }
+- if(pp_name) free(pp_name);
+ }
+ }
+
+ /* give lcms */
+- profile = cmsOpenProfileFromFile (fullFileName, "r");
++ if (pp_name);
++ profile = cmsOpenProfileFromFile (fullFileName, "r");
++ if (pp_name) free(pp_name);
+ }
+ #endif
+
+@@ -1282,8 +1276,7 @@
+ return_value = g_new(CMSProfile, 1);
+ return_value->cache_key = strdup(cms_get_profile_keyname(profile,mem));
+ return_value->handle = profile;
+- sprintf( return_value->cspace,
+- cms_get_color_space_name( return_value->handle ) );
++ return_value->cspace = cms_get_color_space_name( return_value->handle );
+
+ /* save an copy of the original icc profile to mem */
+ return_value->size = 0;
+@@ -1336,8 +1329,7 @@
+ return_value = g_new(CMSProfile, 1);
+ return_value->cache_key = strdup(cms_get_profile_keyname(profile,mem_pointer));
+ return_value->handle = profile;
+- sprintf( return_value->cspace,
+- cms_get_color_space_name( return_value->handle ) );
++ return_value->cspace = cms_get_color_space_name( return_value->handle );
+
+ cache_entry = g_new(ProfileCacheEntry, 1);
+ cache_entry->ref_count = 1;
+@@ -2689,7 +2681,7 @@
+
+ GSList *profile_file_names = 0;
+ GSList *iterator = 0;
+- gchar *current_filename;
++ gchar *current_long_fname;
+ CMSProfile *current_profile;
+ CMSProfileInfo *current_profile_info;
+ int pos = can_select_none ? 1 : 0, select_pos = -1;
+@@ -2720,16 +2712,20 @@
+
+ while (iterator != NULL)
+ {
+- current_filename = iterator->data;
+- current_profile = cms_get_profile_from_file(current_filename);
++ const char *file_name;
++ current_long_fname = iterator->data;
++ file_name = current_long_fname;
++ if(strrchr(file_name,'/'))
++ file_name = strrchr(file_name,'/') + 1;
++ current_profile = cms_get_profile_from_file(current_long_fname);
+ current_profile_info = cms_get_profile_info(current_profile);
+ if(prefered_name && strlen(prefered_name) &&
+- strcmp( current_filename, prefered_name ) == 0 )
++ strcmp( file_name, prefered_name ) == 0 )
+ select_pos = pos;
+- sprintf(label_text, "%s (%s)", current_profile_info->description, current_filename);
++ sprintf(label_text, "%s (%s)", current_profile_info->description, current_long_fname);
+ menuitem = gtk_menu_item_new_with_label (label_text);
+ gtk_menu_append (GTK_MENU (menu), menuitem);
+- gtk_object_set_data_full(GTK_OBJECT(menuitem), "value", (gpointer)current_filename, g_free);
++ gtk_object_set_data_full(GTK_OBJECT(menuitem), "value", (gpointer)current_long_fname, g_free);
+
+ cms_return_profile(current_profile);
+