| 4082 | } |
| 4083 | |
| 4084 | int loadReferenceMap(referenceMapObj *ref, mapObj *map) |
| 4085 | { |
| 4086 | int state; |
| 4087 | |
| 4088 | ref->map = (mapObj *)map; |
| 4089 | |
| 4090 | for(;;) { |
| 4091 | switch(msyylex()) { |
| 4092 | case(EOF): |
| 4093 | msSetError(MS_EOFERR, NULL, "loadReferenceMap()"); |
| 4094 | return(-1); |
| 4095 | case(END): |
| 4096 | if(!ref->image) { |
| 4097 | msSetError(MS_MISCERR, "No image defined for the reference map.", "loadReferenceMap()"); |
| 4098 | return(-1); |
| 4099 | } |
| 4100 | if(ref->width == 0 || ref->height == 0) { |
| 4101 | msSetError(MS_MISCERR, "No image size defined for the reference map.", "loadReferenceMap()"); |
| 4102 | return(-1); |
| 4103 | } |
| 4104 | return(0); |
| 4105 | break; |
| 4106 | case(COLOR): |
| 4107 | if(loadColor(&(ref->color), NULL) != MS_SUCCESS) return(-1); |
| 4108 | break; |
| 4109 | case(EXTENT): |
| 4110 | if(getDouble(&(ref->extent.minx)) == -1) return(-1); |
| 4111 | if(getDouble(&(ref->extent.miny)) == -1) return(-1); |
| 4112 | if(getDouble(&(ref->extent.maxx)) == -1) return(-1); |
| 4113 | if(getDouble(&(ref->extent.maxy)) == -1) return(-1); |
| 4114 | if (!MS_VALID_EXTENT(ref->extent)) { |
| 4115 | msSetError(MS_MISCERR, "Given reference extent is invalid. Check that it " \ |
| 4116 | "is in the form: minx, miny, maxx, maxy", "loadReferenceMap()"); |
| 4117 | return(-1); |
| 4118 | } |
| 4119 | break; |
| 4120 | case(IMAGE): |
| 4121 | if(getString(&ref->image) == MS_FAILURE) return(-1); |
| 4122 | break; |
| 4123 | case(OUTLINECOLOR): |
| 4124 | if(loadColor(&(ref->outlinecolor), NULL) != MS_SUCCESS) return(-1); |
| 4125 | break; |
| 4126 | case(SIZE): |
| 4127 | if(getInteger(&(ref->width)) == -1) return(-1); |
| 4128 | if(getInteger(&(ref->height)) == -1) return(-1); |
| 4129 | break; |
| 4130 | case(STATUS): |
| 4131 | if((ref->status = getSymbol(2, MS_ON,MS_OFF)) == -1) return(-1); |
| 4132 | break; |
| 4133 | case(MARKER): |
| 4134 | if((state = getSymbol(2, MS_NUMBER,MS_STRING)) == -1) return(-1); |
| 4135 | |
| 4136 | if(state == MS_NUMBER) |
| 4137 | ref->marker = (int) msyynumber; |
| 4138 | else |
| 4139 | { |
| 4140 | if (ref->markername != NULL) |
| 4141 | msFree(ref->markername); |
no test coverage detected