diff options
-rw-r--r-- | gs/base/gsdparam.c | 42 | ||||
-rw-r--r-- | gs/base/gsicc_manage.c | 5 | ||||
-rw-r--r-- | gs/devices/gdevpsd.c | 7 |
3 files changed, 26 insertions, 28 deletions
diff --git a/gs/base/gsdparam.c b/gs/base/gsdparam.c index 747edacbc..8dd0c7dee 100644 --- a/gs/base/gsdparam.c +++ b/gs/base/gsdparam.c @@ -1423,27 +1423,30 @@ e: param_signal_error(plist, param_name, ecode);\ (*dev_proc(dev, get_page_device))(dev) != 0 ) { switch (code = param_read_int(plist, (param_name = "NumCopies"), &nci)) { - case 0: - if (nci < 0) - ecode = gs_error_rangecheck; - else { - ncset = 1; - break; - } - goto nce; - default: - if ((code = param_read_null(plist, param_name)) == 0) { - ncset = 0; - break; - } - ecode = code; /* can't be 1 */ + case 0: + if (nci < 0) + ecode = gs_error_rangecheck; + else { + ncset = 1; + break; + } + goto nce; + default: + if ((code = param_read_null(plist, param_name)) == 0) { + ncset = 0; + break; + } + ecode = code; /* can't be 1 */ nce: - param_signal_error(plist, param_name, ecode); - case 1: - break; + param_signal_error(plist, param_name, ecode); + case 1: + break; + } } + /* Set the ICC output colors first */ + if ((code = param_read_string(plist, "ICCOutputColors", &icc_pro)) != 1) { + gx_default_put_icc_colorants(&icc_pro, dev); } - /* Set the directory first */ if ((code = param_read_string(plist, "OutputICCProfile", &icc_pro)) != 1) { gx_default_put_icc(&icc_pro, dev, gsDEFAULTPROFILE); } @@ -1464,9 +1467,6 @@ nce: if ((code = param_read_string(plist, "DeviceLinkProfile", &icc_pro)) != 1) { gx_default_put_icc(&icc_pro, dev, gsLINKPROFILE); } - if ((code = param_read_string(plist, "ICCOutputColors", &icc_pro)) != 1) { - gx_default_put_icc_colorants(&icc_pro, dev); - } if ((code = param_read_int(plist, (param_name = "RenderIntent"), &(rend_intent[0]))) < 0) { ecode = code; diff --git a/gs/base/gsicc_manage.c b/gs/base/gsicc_manage.c index 96a1961ad..c7840093e 100644 --- a/gs/base/gsicc_manage.c +++ b/gs/base/gsicc_manage.c @@ -1366,6 +1366,10 @@ gsicc_set_device_profile_colorants(gx_device *dev, char *name_str) int num_comps = profile_struct->device_profile[0]->num_comps; char temp_str[DEFAULT_ICC_COLORANT_LENGTH+2]; + /* If names are already set then we do not want to set default ones */ + if (profile_struct->spotnames != NULL) + return 0; + free_str = true; /* Assume first 4 are CMYK */ total_len = ((DEFAULT_ICC_COLORANT_LENGTH + 1) * (num_comps-4)) + @@ -1387,6 +1391,7 @@ gsicc_set_device_profile_colorants(gx_device *dev, char *name_str) if (profile_struct->spotnames != NULL && profile_struct->spotnames->name_str != NULL && strlen(profile_struct->spotnames->name_str) == str_len) { + /* Here we check if the names are the same */ if (strncmp(name_str, profile_struct->spotnames->name_str, str_len) == 0) { if (free_str) gs_free_object(dev->memory, name_str, diff --git a/gs/devices/gdevpsd.c b/gs/devices/gdevpsd.c index c56484f1f..df6d7a3e5 100644 --- a/gs/devices/gdevpsd.c +++ b/gs/devices/gdevpsd.c @@ -341,13 +341,6 @@ psd_prn_open(gx_device * pdev) limit_icc = false; #endif code = dev_proc(pdev, get_profile)((gx_device *)pdev, &profile_struct); - /* Check for case where someone did NOT specify sICCOutputColors but we - have an NCLR ICC profile for the output. In that case, we use a set of - "default" names */ - if (profile_struct->device_profile[0]->num_comps > 4 && - profile_struct->spotnames == NULL) { - - } if (profile_struct->spotnames == NULL) { force_pdf = false; force_ps = false; |