MCPcopy Index your code
hub / github.com/MapServer/MapServer / msApplySubstitutions

Function msApplySubstitutions

mapfile.c:5987–6021  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5985}
5986
5987void msApplySubstitutions(mapObj *map, char **names, char **values, int npairs) {
5988 int i,j;
5989
5990 char *tag=NULL;
5991 char *validation_pattern_key=NULL;
5992
5993 for(i=0; i<npairs; i++) {
5994
5995 /* runtime subtitution string */
5996 tag = (char *) msSmallMalloc(sizeof(char)*strlen(names[i]) + 3);
5997 sprintf(tag, "%%%s%%", names[i]);
5998
5999 /* validation pattern key - depricated */
6000 validation_pattern_key = (char *) msSmallMalloc(sizeof(char)*strlen(names[i]) + 20);
6001 sprintf(validation_pattern_key,"%s_validation_pattern", names[i]);
6002
6003 for(j=0; j<map->numlayers; j++) {
6004 layerObj *layer = GET_LAYER(map, j);
6005
6006 if(!layerNeedsSubstitutions(layer, tag)) continue;
6007
6008 if( layer->debug >= MS_DEBUGLEVEL_V )
6009 msDebug( " runtime substitution - Layer %s, tag %s...\n",
6010 layer->name, tag);
6011
6012 if(msValidateParameter(values[i], msLookupHashTable(&(layer->validation), names[i]), msLookupHashTable(&(map->web.validation), names[i]),
6013 msLookupHashTable(&(layer->metadata), validation_pattern_key), msLookupHashTable(&(map->web.validation), validation_pattern_key)) == MS_SUCCESS) {
6014 layerSubstituteString(layer, tag, values[i]);
6015 }
6016 }
6017
6018 msFree(tag);
6019 msFree(validation_pattern_key);
6020 } /* next name/value pair */
6021}
6022
6023/*
6024** Returns an array with one entry per mapfile token. Useful to manipulate

Callers 1

loadMapFunction · 0.85

Calls 7

msSmallMallocFunction · 0.85
layerNeedsSubstitutionsFunction · 0.85
msDebugFunction · 0.85
msValidateParameterFunction · 0.85
msLookupHashTableFunction · 0.85
layerSubstituteStringFunction · 0.85
msFreeFunction · 0.85

Tested by

no test coverage detected