File ghostscript-9.00-icc.dif of Package ghostscript-library

--- base/gsicc_manage.c
+++ base/gsicc_manage.c	2010-10-01 13:22:19.011925867 +0000
@@ -673,7 +673,7 @@ gsicc_open_search(const char* pname, int
     stream* str;
 
     /* Check if we need to prepend the file name  */
-    if ( icc_manager != NULL) {
+    if ( icc_manager != NULL && *pname != '/' ) {
         if ( icc_manager->profiledir != NULL ) {            
             /* If this fails, we will still try the file by itself and with 
                %rom% since someone may have left a space some of the spaces 
--- psi/zusparam.c
+++ psi/zusparam.c	2010-10-01 13:30:27.871926079 +0000
@@ -596,7 +596,11 @@ set_default_gray_icc(i_ctx_t *i_ctx_p, g
 static void
 current_icc_directory(i_ctx_t *i_ctx_p, gs_param_string * pval)
 {
+#ifdef ICCPROFILESDIR
+    static const char *const rfs = ICCPROFILESDIR;
+#else
     static const char *const rfs = "%rom%iccprofiles/";   /* as good as any other */
+#endif
     const gs_imager_state * pis = (gs_imager_state *) igs;
 
     pval->data = (const byte *)( (pis->icc_manager->profiledir == NULL) ?
--- base/gxccman.c
+++ base/gxccman.c	2010-10-04 09:08:51.615926243 +0000
@@ -609,7 +609,8 @@ gx_alloc_char_bits(gs_font_dir * dir, gx
 	gs_make_mem_mono_device(pdev, pdev->memory, target);
 	rc_decrement_only(target, "gx_alloc_char_bits"); /* can't go to 0 */
         /* Decrement the ICC profile also.  Same device is getting reinitialized */
-        rc_decrement(target->device_icc_profile,"gx_alloc_char_bits(icc profile)");
+	if (target)
+            rc_decrement(target->device_icc_profile,"gx_alloc_char_bits(icc profile)");
 	pdev->rc = rc;
 	pdev->retained = retained;
 	pdev->width = iwidth;
openSUSE Build Service is sponsored by