diff --git a/lib/gis/parser_interface.c b/lib/gis/parser_interface.c index fb091af9144..035663d3812 100644 --- a/lib/gis/parser_interface.c +++ b/lib/gis/parser_interface.c @@ -210,12 +210,14 @@ void G__usage_xml(void) fprintf(stdout, "\t\t\n"); top = G_calloc(strlen(opt->key_desc) + 1, 1); strcpy(top, opt->key_desc); - s = strtok(top, ","); + char *saveptr; + s = strtok_r(top, ",", &saveptr); + for (i = 1; s != NULL; i++) { fprintf(stdout, "\t\t\t", i); print_escaped_for_xml(stdout, s); fprintf(stdout, "\n"); - s = strtok(NULL, ","); + s = strtok_r(NULL, ",", &saveptr); } fprintf(stdout, "\t\t\n"); G_free(top); @@ -225,11 +227,12 @@ void G__usage_xml(void) const char *atts[] = {"age", "element", "prompt", NULL}; top = G_calloc(strlen(opt->gisprompt) + 1, 1); strcpy(top, opt->gisprompt); - s = strtok(top, ","); + char *saveptr; + s = strtok_r(top, ",", &saveptr); fprintf(stdout, "\t\t\n"); G_free(top); diff --git a/lib/gis/parser_wps.c b/lib/gis/parser_wps.c index 7a769ed10e8..845f4b99fd1 100644 --- a/lib/gis/parser_wps.c +++ b/lib/gis/parser_wps.c @@ -251,7 +251,9 @@ void G__wps_print_process_description(void) const char *atts[] = {"age", "element", "prompt", NULL}; top = G_calloc(strlen(opt->gisprompt) + 1, 1); strcpy(top, opt->gisprompt); - s = strtok(top, ","); + char *saveptr = NULL; + s = strtok_r(top, ",", &saveptr); + for (i = 0; s != NULL && atts[i] != NULL; i++) { char *token = G_store(s); @@ -292,7 +294,7 @@ void G__wps_print_process_description(void) if (strcmp(token, "file") == 0) { data_type = TYPE_PLAIN_TEXT; } - s = strtok(NULL, ","); + s = strtok_r(NULL, ",", &saveptr); G_free(token); } G_free(top); @@ -302,11 +304,12 @@ void G__wps_print_process_description(void) if (opt->key_desc) { top = G_calloc(strlen(opt->key_desc) + 1, 1); strcpy(top, opt->key_desc); - s = strtok(top, ","); + char *saveptr = NULL; + s = strtok_r(top, ",", &saveptr); /* Count comma's */ for (i = 0; s != NULL; i++) { num_tuples++; - s = strtok(NULL, ","); + s = strtok_r(NULL, ",", &saveptr); } if (num_tuples > 1) is_tuple = 1; @@ -479,7 +482,8 @@ void G__wps_print_process_description(void) const char *atts[] = {"age", "element", "prompt", NULL}; top = G_calloc(strlen(opt->gisprompt) + 1, 1); strcpy(top, opt->gisprompt); - s = strtok(top, ","); + char *saveptr = NULL; + s = strtok_r(top, ",", &saveptr); for (i = 0; s != NULL && atts[i] != NULL; i++) { char *token = G_store(s); @@ -505,7 +509,7 @@ void G__wps_print_process_description(void) if (strcmp(token, "file") == 0) { data_type = TYPE_PLAIN_TEXT; } - s = strtok(NULL, ","); + s = strtok_r(NULL, ",", &saveptr); G_free(token); } G_free(top); @@ -867,10 +871,11 @@ static void wps_print_literal_input_output( /* Check for range values */ if (datatype && (strcmp(datatype, "integer") == 0 || strcmp(datatype, "float") == 0)) { - str = strtok((char *)choices[0], "-"); + char *saveptr = NULL; + str = strtok_r((char *)choices[0], "-", &saveptr); if (str != NULL) { snprintf(range[0], 24, "%s", str); - str = strtok(NULL, "-"); + str = strtok_r(NULL, "-", &saveptr); if (str != NULL) { snprintf(range[1], 24, "%s", str); type = TYPE_RANGE;