diff options
author | Chris Liddell <chris.liddell@artifex.com> | 2015-06-30 10:32:00 +0100 |
---|---|---|
committer | Chris Liddell <chris.liddell@artifex.com> | 2015-06-30 10:32:00 +0100 |
commit | 4310bfe55ad132a23bcd675e40f7560f6cfbe9d1 (patch) | |
tree | b506902be79706a3171ec65d5490253a6674e79d | |
parent | 300ecfd75294fa48f97b91e243954fd728dddeca (diff) | |
download | ghostpdl-gs_strtok-apache_strtok.tar.gz |
Modify code to use gs_strtok() instead of strtokgs_strtok-apache_strtok
-rw-r--r-- | gs/base/gsicc_cache.c | 8 | ||||
-rw-r--r-- | gs/base/gsicc_manage.c | 42 | ||||
-rw-r--r-- | gs/base/string_.h | 4 | ||||
-rw-r--r-- | gs/devices/gdevwpr2.c | 8 | ||||
-rw-r--r-- | gs/psi/dscparse.c | 10 | ||||
-rw-r--r-- | pl/pjparse.c | 5 | ||||
-rw-r--r-- | pl/pllfont.c | 6 |
7 files changed, 44 insertions, 39 deletions
diff --git a/gs/base/gsicc_cache.c b/gs/base/gsicc_cache.c index d0c118e02..92cf6e1c0 100644 --- a/gs/base/gsicc_cache.c +++ b/gs/base/gsicc_cache.c @@ -1145,7 +1145,7 @@ gsicc_transform_named_color(const float tint_values[], int buffer_count; int count; int code; - char *pch, *temp_ptr; + char *pch, *temp_ptr, *last = NULL; bool done; int curr_name_size; bool found_match; @@ -1209,9 +1209,9 @@ gsicc_transform_named_color(const float tint_values[], namedcolor_table->named_color = namedcolor_data; for (k = 0; k < num_entries; k++) { if (k == 0) { - pch = strtok(buffptr,",;"); + pch = gs_strtok(buffptr,",;", &last); } else { - pch = strtok(NULL,",;"); + pch = gs_strtok(NULL,",;", &last); } /* Remove any /0d /0a stuff from start */ temp_ptr = pch; @@ -1234,7 +1234,7 @@ gsicc_transform_named_color(const float tint_values[], strncpy(namedcolor_data[k].colorant_name,temp_ptr, namedcolor_data[k].name_size+1); for (j = 0; j < 3; j++) { - pch = strtok(NULL,",;"); + pch = gs_strtok(NULL,",;", &last); count = sscanf(pch,"%f",&(lab[j])); } lab[0] = lab[0]*65535/100.0; diff --git a/gs/base/gsicc_manage.c b/gs/base/gsicc_manage.c index 12da99355..89f2a1c7a 100644 --- a/gs/base/gsicc_manage.c +++ b/gs/base/gsicc_manage.c @@ -490,7 +490,7 @@ gsicc_profile_from_ps(cmm_profile_t *profile_data) /* Fill in the actual source structure rending information */ static void -gsicc_fill_srcgtag_item(gsicc_rendering_param_t *r_params, bool cmyk) +gsicc_fill_srcgtag_item(gsicc_rendering_param_t *r_params, char **pstrlast, bool cmyk) { char *curr_ptr; int blackptcomp; @@ -498,20 +498,20 @@ gsicc_fill_srcgtag_item(gsicc_rendering_param_t *r_params, bool cmyk) int ri, count = 0; /* Get the intent */ - curr_ptr = strtok(NULL, "\t,\32\n\r"); + curr_ptr = gs_strtok(NULL, "\t,\32\n\r", pstrlast); count = sscanf(curr_ptr, "%d", &ri); r_params->rendering_intent = ri | gsRI_OVERRIDE; /* Get the black point compensation setting */ - curr_ptr = strtok(NULL, "\t,\32\n\r"); + curr_ptr = gs_strtok(NULL, "\t,\32\n\r", pstrlast); count = sscanf(curr_ptr, "%d", &blackptcomp); r_params->black_point_comp = blackptcomp | gsBP_OVERRIDE; /* Get the over-ride embedded ICC boolean */ - curr_ptr = strtok(NULL, "\t,\32\n\r"); + curr_ptr = gs_strtok(NULL, "\t,\32\n\r", pstrlast); count = sscanf(curr_ptr, "%d", &or_icc); r_params->override_icc = or_icc; if (cmyk) { /* Get the preserve K control */ - curr_ptr = strtok(NULL, "\t,\32\n\r"); + curr_ptr = gs_strtok(NULL, "\t,\32\n\r", pstrlast); count = sscanf(curr_ptr, "%d", &preserve_k); r_params->preserve_black = preserve_k | gsKP_OVERRIDE; } else { @@ -545,7 +545,7 @@ gsicc_set_srcgtag_struct(gsicc_manager_t *icc_manager, const char* pname, stream *str; int code; int info_size; - char *buffer_ptr, *curr_ptr; + char *buffer_ptr, *curr_ptr, *last; int num_bytes; char str_format_key[6], str_format_file[6]; int k; @@ -608,10 +608,10 @@ gsicc_set_srcgtag_struct(gsicc_manager_t *icc_manager, const char* pname, } while (start || strlen(curr_ptr) > 0) { if (start) { - curr_ptr = strtok(buffer_ptr, "\t,\32\n\r"); + curr_ptr = gs_strtok(buffer_ptr, "\t,\32\n\r", &last); start = false; } else { - curr_ptr = strtok(NULL, "\t,\32\n\r"); + curr_ptr = gs_strtok(NULL, "\t,\32\n\r", &last); } if (curr_ptr == NULL) break; /* Now go ahead and see if we have a match */ @@ -621,7 +621,7 @@ gsicc_set_srcgtag_struct(gsicc_manager_t *icc_manager, const char* pname, object is not to be color managed. Also, if the curr_ptr is Replace which indicates we will be doing direct replacement of the colors. */ - curr_ptr = strtok(NULL, "\t,\32\n\r"); + curr_ptr = gs_strtok(NULL, "\t,\32\n\r", &last); if (strncmp(curr_ptr, GSICC_SRCTAG_NOCM, strlen(GSICC_SRCTAG_NOCM)) == 0 && strlen(curr_ptr) == strlen(GSICC_SRCTAG_NOCM)) { cmm = gsCMM_NONE; @@ -673,42 +673,42 @@ gsicc_set_srcgtag_struct(gsicc_manager_t *icc_manager, const char* pname, srcgtag->cmyk_profiles[gsSRC_GRAPPRO] = icc_profile; srcgtag->cmyk_rend_cond[gsSRC_GRAPPRO].cmm = cmm; if (cmm == gsCMM_DEFAULT) { - gsicc_fill_srcgtag_item(&(srcgtag->cmyk_rend_cond[gsSRC_GRAPPRO]), true); + gsicc_fill_srcgtag_item(&(srcgtag->cmyk_rend_cond[gsSRC_GRAPPRO]), &last, true); } break; case IMAGE_CMYK: srcgtag->cmyk_profiles[gsSRC_IMAGPRO] = icc_profile; srcgtag->cmyk_rend_cond[gsSRC_IMAGPRO].cmm = cmm; if (cmm == gsCMM_DEFAULT) { - gsicc_fill_srcgtag_item(&(srcgtag->cmyk_rend_cond[gsSRC_IMAGPRO]), true); + gsicc_fill_srcgtag_item(&(srcgtag->cmyk_rend_cond[gsSRC_IMAGPRO]), &last, true); } break; case TEXT_CMYK: srcgtag->cmyk_profiles[gsSRC_TEXTPRO] = icc_profile; srcgtag->cmyk_rend_cond[gsSRC_TEXTPRO].cmm = cmm; if (cmm == gsCMM_DEFAULT) { - gsicc_fill_srcgtag_item(&(srcgtag->cmyk_rend_cond[gsSRC_TEXTPRO]), true); + gsicc_fill_srcgtag_item(&(srcgtag->cmyk_rend_cond[gsSRC_TEXTPRO]), &last, true); } break; case GRAPHIC_RGB: srcgtag->rgb_profiles[gsSRC_GRAPPRO] = icc_profile; srcgtag->rgb_rend_cond[gsSRC_GRAPPRO].cmm = cmm; if (cmm == gsCMM_DEFAULT) { - gsicc_fill_srcgtag_item(&(srcgtag->rgb_rend_cond[gsSRC_GRAPPRO]), false); + gsicc_fill_srcgtag_item(&(srcgtag->rgb_rend_cond[gsSRC_GRAPPRO]), &last, false); } break; case IMAGE_RGB: srcgtag->rgb_profiles[gsSRC_IMAGPRO] = icc_profile; srcgtag->rgb_rend_cond[gsSRC_IMAGPRO].cmm = cmm; if (cmm == gsCMM_DEFAULT) { - gsicc_fill_srcgtag_item(&(srcgtag->rgb_rend_cond[gsSRC_IMAGPRO]), false); + gsicc_fill_srcgtag_item(&(srcgtag->rgb_rend_cond[gsSRC_IMAGPRO]), &last, false); } break; case TEXT_RGB: srcgtag->rgb_profiles[gsSRC_TEXTPRO] = icc_profile; srcgtag->rgb_rend_cond[gsSRC_TEXTPRO].cmm = cmm; if (cmm == gsCMM_DEFAULT) { - gsicc_fill_srcgtag_item(&(srcgtag->rgb_rend_cond[gsSRC_TEXTPRO]), false); + gsicc_fill_srcgtag_item(&(srcgtag->rgb_rend_cond[gsSRC_TEXTPRO]), &last, false); } break; case GSICC_NUM_SRCGTAG_KEYS: @@ -1349,7 +1349,7 @@ gsicc_set_device_profile_colorants(gx_device *dev, char *name_str) gsicc_colorname_t *name_entry; gsicc_colorname_t **curr_entry; gs_memory_t *mem; - char *temp_ptr; + char *temp_ptr, *last = NULL; int done; gsicc_namelist_t *spot_names; char *pch; @@ -1421,7 +1421,7 @@ gsicc_set_device_profile_colorants(gx_device *dev, char *name_str) spot_names->name_str[str_len] = 0; curr_entry = &(spot_names->head); /* Go ahead and tokenize now */ - pch = strtok(name_str, ","); + pch = gs_strtok(name_str, ",", &last); count = 0; while (pch != NULL) { temp_ptr = pch; @@ -1447,7 +1447,7 @@ gsicc_set_device_profile_colorants(gx_device *dev, char *name_str) /* Get the next entry location */ curr_entry = &((*curr_entry)->next); count += 1; - pch = strtok(NULL, ","); + pch = gs_strtok(NULL, ",", &last); } spot_names->count = count; /* Create the color map. Query the device to find out where these @@ -2546,7 +2546,7 @@ int gs_setdevicenprofileicc(const gs_state * pgs, gs_param_string * pval) { int code = 0; - char *pname, *pstr, *pstrend; + char *pname, *pstr, *pstrend, *last = NULL; int namelen = (pval->size)+1; gs_memory_t *mem = pgs->memory; @@ -2564,7 +2564,7 @@ gs_setdevicenprofileicc(const gs_state * pgs, gs_param_string * pval) return_error(gs_error_VMerror); memcpy(pname,pval->data,namelen-1); pname[namelen-1] = 0; - pstr = strtok(pname, ",;"); + pstr = gs_strtok(pname, ",;", &last); while (pstr != NULL) { namelen = strlen(pstr); /* Remove leading and trailing spaces from the name */ @@ -2581,7 +2581,7 @@ gs_setdevicenprofileicc(const gs_state * pgs, gs_param_string * pval) code = gsicc_set_profile(pgs->icc_manager, (const char*) pstr, namelen, DEVICEN_TYPE); if (code < 0) return gs_throw(code, "cannot find devicen icc profile"); - pstr = strtok(NULL, ",;"); + pstr = gs_strtok(NULL, ",;", &last); } gs_free_object(mem, pname, "set_devicen_profile_icc"); diff --git a/gs/base/string_.h b/gs/base/string_.h index 9e153b3fd..3be7bfc02 100644 --- a/gs/base/string_.h +++ b/gs/base/string_.h @@ -43,4 +43,8 @@ # endif #endif +#include "gsstrtok.h" + +#define strtok DO_NOT_USE_STRTOK + #endif /* string__INCLUDED */ diff --git a/gs/devices/gdevwpr2.c b/gs/devices/gdevwpr2.c index 28935b61b..b6cb8b0f4 100644 --- a/gs/devices/gdevwpr2.c +++ b/gs/devices/gdevwpr2.c @@ -121,7 +121,7 @@ #include "gdevprn.h" #include "gdevpccm.h" - +#include "string_.h" #include "windows_.h" #include <shellapi.h> #include "gp_mswin.h" @@ -954,7 +954,7 @@ static int win_pr2_getdc(gx_device_win_pr2 * wdev) { char *device; - char driverbuf[512]; + char driverbuf[512], *dbuflast = NULL; char *driver; char *output; char *devcap; @@ -1044,8 +1044,8 @@ win_pr2_getdc(gx_device_win_pr2 * wdev) wchar_to_utf8(driverbuf, unidrvbuf); } #endif - driver = strtok(driverbuf, ","); - output = strtok(NULL, ","); + driver = gs_strtok(driverbuf, ",", &dbuflast); + output = gs_strtok(NULL, ",", dbuflast); if (!gp_OpenPrinter(device, &hprinter)) return FALSE; diff --git a/gs/psi/dscparse.c b/gs/psi/dscparse.c index 16ca027b2..6888466c7 100644 --- a/gs/psi/dscparse.c +++ b/gs/psi/dscparse.c @@ -40,7 +40,7 @@ #include <stdio_.h> /* for sprintf(), not file I/O */ #include <stdlib.h> -#include <string.h> +#include <string_.h> #include <ctype.h> #define MAXSTR 256 @@ -1088,7 +1088,7 @@ dsc_read_line(CDSC *dsc) * <type> ::= Hex | Binary | ASCII (Type of data) * <bytesorlines> ::= Bytes | Lines (Read in bytes or lines) */ - char begindata[MAXSTR+1]; + char begindata[MAXSTR+1], *bdatalast = NULL; int cnt; const char *numberof, *bytesorlines; cnt = dsc->line_length; @@ -1096,9 +1096,9 @@ dsc_read_line(CDSC *dsc) cnt = sizeof(begindata)-1; memcpy(begindata, dsc->line, cnt); begindata[cnt] = '\0'; - numberof = strtok(begindata+12, " \r\n"); - strtok(NULL, " \r\n"); /* dump type */ - bytesorlines = strtok(NULL, " \r\n"); + numberof = gs_strtok(begindata+12, " \r\n", &bdatalast); + gs_strtok(NULL, " \r\n", &bdatalast); /* dump type */ + bytesorlines = gs_strtok(NULL, " \r\n", &bdatalast); if (bytesorlines == NULL) bytesorlines = "Bytes"; diff --git a/pl/pjparse.c b/pl/pjparse.c index ae401c0e7..add19c1e8 100644 --- a/pl/pjparse.c +++ b/pl/pjparse.c @@ -19,6 +19,7 @@ #include "stat_.h" #include "memory_.h" #include "stdio_.h" +#include "string_.h" #include "scommon.h" #include "gdebug.h" #include "gp.h" @@ -392,7 +393,7 @@ pjl_check_font_path(char *path_list, gs_memory_t * mem) /* lookup a font path and check if any files (presumably fonts are present) */ char tmp_path[PJL_PATH_NAME_LENGTH + 1]; - char *tmp_pathp = tmp_path; + char *tmp_pathp = tmp_path, *tplast = NULL; const char pattern[] = "*"; char tmp_path_and_pattern[PJL_PATH_NAME_LENGTH + 1 + 1]; /* pattern + null */ char *dirname; @@ -403,7 +404,7 @@ pjl_check_font_path(char *path_list, gs_memory_t * mem) /* for each path search for fonts. If we find them return we only check if the directory resource has files without checking if the files are indeed fonts. */ - while ((dirname = strtok(tmp_pathp, ";")) != NULL) { + while ((dirname = gs_strtok(tmp_pathp, ";", &tplast)) != NULL) { file_enum *fe; strcpy(tmp_path_and_pattern, dirname); diff --git a/pl/pllfont.c b/pl/pllfont.c index 9e70d9817..6076fabd9 100644 --- a/pl/pllfont.c +++ b/pl/pllfont.c @@ -606,7 +606,7 @@ pl_load_built_in_fonts(const char *pathname, gs_memory_t * mem, byte key[3]; /* max pathname of 1024 including pattern */ char tmp_path_copy[1024]; - char *tmp_pathp; + char *tmp_pathp, *tplast = NULL; bool found; bool found_any = false; const char pattern[] = "*"; @@ -630,9 +630,9 @@ pl_load_built_in_fonts(const char *pathname, gs_memory_t * mem, } /* Enumerate through the files in the path */ - /* make a copy of the path for strtok */ + /* make a copy of the path for gs_strtok */ strcpy(tmp_path_copy, pathname); - for (tmp_pathp = tmp_path_copy; (tmp_pathp = strtok(tmp_pathp, ";")) != NULL; /* NB shouldn't use strtok */ + for (tmp_pathp = tmp_path_copy; (tmp_pathp = gs_strtok(tmp_pathp, ";", &tplast)) != NULL; tmp_pathp = NULL) { int code; file_enum *fe; |