| 5985 | } |
| 5986 | |
| 5987 | void 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 |
no test coverage detected