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

Function loadSymbolSet

mapsymbol.c:510–581  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

508}
509
510int loadSymbolSet(symbolSetObj *symbolset, mapObj *map)
511{
512 int status=1;
513 char szPath[MS_MAXPATHLEN], *pszSymbolPath=NULL;
514
515 int foundSymbolSetToken=MS_FALSE;
516 int token;
517
518 if(!symbolset) {
519 msSetError(MS_SYMERR, "Symbol structure unallocated.", "loadSymbolSet()");
520 return(-1);
521 }
522
523 symbolset->map = (mapObj *)map;
524
525 if(!symbolset->filename) return(0);
526
527 /*
528 ** Open the file
529 */
530 if((msyyin = fopen(msBuildPath(szPath, symbolset->map->mappath, symbolset->filename), "r")) == NULL) {
531 msSetError(MS_IOERR, "(%s)", "loadSymbolSet()", symbolset->filename);
532 return(-1);
533 }
534
535 pszSymbolPath = msGetPath(szPath);
536
537 msyylineno = 0; /* reset line counter */
538 msyyrestart(msyyin); /* flush the scanner - there's a better way but this works for now */
539
540 /*
541 ** Read the symbol file
542 */
543 for(;;) {
544 token = msyylex();
545
546 if(!foundSymbolSetToken && token != SYMBOLSET) {
547 msSetError(MS_IDENTERR, "First token must be SYMBOLSET, this doesn't look like a symbol file.", "msLoadSymbolSet()");
548 return(-1);
549 }
550
551 switch(token) {
552 case(END):
553 case(EOF):
554 status = 0;
555 break;
556 case(SYMBOL):
557 /* Allocate/init memory for new symbol if needed */
558 if (msGrowSymbolSet(symbolset) == NULL) {
559 status = -1;
560 }
561 else if((loadSymbol((symbolset->symbol[symbolset->numsymbols]), pszSymbolPath) == -1))
562 status = -1;
563 else
564 symbolset->numsymbols++;
565 break;
566 case(SYMBOLSET):
567 foundSymbolSetToken = MS_TRUE;

Callers 2

loadMapInternalFunction · 0.85
msLoadSymbolSetFunction · 0.85

Calls 6

msSetErrorFunction · 0.85
msBuildPathFunction · 0.85
msGetPathFunction · 0.85
msyyrestartFunction · 0.85
msGrowSymbolSetFunction · 0.85
loadSymbolFunction · 0.85

Tested by

no test coverage detected