MCPcopy Create free account
hub / github.com/MapServer/MapServer / msUpdateLayerFromString

Function msUpdateLayerFromString

mapfile.c:3927–3978  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3925}
3926
3927int msUpdateLayerFromString(layerObj *layer, char *string, int url_string)
3928{
3929 int j, k;
3930
3931 if(!layer || !string) return MS_FAILURE;
3932
3933 msAcquireLock( TLOCK_PARSER );
3934
3935 if(url_string)
3936 msyystate = MS_TOKENIZE_URL_STRING;
3937 else
3938 msyystate = MS_TOKENIZE_STRING;
3939 msyystring = string;
3940 msyylex(); /* sets things up, but doesn't process any tokens */
3941
3942 msyylineno = 1; /* start at line 1 */
3943
3944 if(loadLayer(layer, layer->map) == -1) {
3945 msReleaseLock( TLOCK_PARSER );
3946 return MS_FAILURE; /* parse error */;
3947 }
3948 msReleaseLock( TLOCK_PARSER );
3949
3950 msyylex_destroy();
3951
3952 /* step through classes to resolve symbol names */
3953 for(j=0; j<layer->numclasses; j++) {
3954
3955 /* class styles */
3956 for(k=0; k<layer->class[j]->numstyles; k++) {
3957 if(layer->class[j]->styles[k]->symbolname) {
3958 if((layer->class[j]->styles[k]->symbol = msGetSymbolIndex(&(layer->map->symbolset), layer->class[j]->styles[k]->symbolname, MS_TRUE)) == -1) {
3959 msSetError(MS_MISCERR, "Undefined symbol \"%s\" in class %d, style %d of layer %s.", "msUpdateLayerFromString()", layer->class[j]->styles[k]->symbolname, j, k, layer->name);
3960 return MS_FAILURE;
3961 }
3962 }
3963 }
3964
3965 /* label styles */
3966 for(k=0; k<layer->class[j]->label.numstyles; k++) {
3967 if(layer->class[j]->label.styles[k]->symbolname) {
3968 if((layer->class[j]->label.styles[k]->symbol = msGetSymbolIndex(&(layer->map->symbolset), layer->class[j]->label.styles[k]->symbolname, MS_TRUE)) == -1) {
3969 msSetError(MS_MISCERR, "Undefined symbol \"%s\" in class %d, label style %d of layer %s.",
3970 "msUpdateLayerFromString()", layer->class[j]->label.styles[k]->symbolname, j, k, layer->name);
3971 return MS_FAILURE;
3972 }
3973 }
3974 }
3975 }
3976
3977 return MS_SUCCESS;
3978}
3979
3980static void writeLayer(FILE *stream, int indent, layerObj *layer)
3981{

Callers 2

msUpdateMapFromURLFunction · 0.85

Calls 6

msAcquireLockFunction · 0.85
loadLayerFunction · 0.85
msReleaseLockFunction · 0.85
msyylex_destroyFunction · 0.85
msGetSymbolIndexFunction · 0.85
msSetErrorFunction · 0.85

Tested by

no test coverage detected