| 1676 | } |
| 1677 | |
| 1678 | static int loadLabel(labelObj *label) |
| 1679 | { |
| 1680 | int symbol; |
| 1681 | |
| 1682 | for(;;) { |
| 1683 | switch(msyylex()) { |
| 1684 | case(ANGLE): |
| 1685 | if((symbol = getSymbol(5, MS_NUMBER,MS_AUTO,MS_AUTO2,MS_FOLLOW,MS_BINDING)) == -1) |
| 1686 | return(-1); |
| 1687 | |
| 1688 | if(symbol == MS_NUMBER) |
| 1689 | label->angle = msyynumber; |
| 1690 | else if(symbol == MS_BINDING) { |
| 1691 | if (label->bindings[MS_LABEL_BINDING_ANGLE].item != NULL) |
| 1692 | msFree(label->bindings[MS_LABEL_BINDING_ANGLE].item); |
| 1693 | label->bindings[MS_LABEL_BINDING_ANGLE].item = msStrdup(msyystring_buffer); |
| 1694 | label->numbindings++; |
| 1695 | } else if ( symbol == MS_FOLLOW ) { |
| 1696 | #ifndef GD_HAS_FTEX_XSHOW |
| 1697 | msSetError(MS_IDENTERR, "Keyword FOLLOW is not valid without TrueType font support and GD version 2.0.29 or higher.", "loadlabel()"); |
| 1698 | return(-1); |
| 1699 | #else |
| 1700 | label->anglemode = MS_FOLLOW; |
| 1701 | #endif |
| 1702 | } else if ( symbol == MS_AUTO2 ) { |
| 1703 | label->anglemode = MS_AUTO2; |
| 1704 | } else |
| 1705 | label->anglemode = MS_AUTO; |
| 1706 | break; |
| 1707 | case(ALIGN): |
| 1708 | if((label->align = getSymbol(3, MS_ALIGN_LEFT,MS_ALIGN_CENTER,MS_ALIGN_RIGHT)) == -1) return(-1); |
| 1709 | break; |
| 1710 | case(ANTIALIAS): |
| 1711 | if((label->antialias = getSymbol(2, MS_TRUE,MS_FALSE)) == -1) |
| 1712 | return(-1); |
| 1713 | break; |
| 1714 | case(BUFFER): |
| 1715 | if(getInteger(&(label->buffer)) == -1) return(-1); |
| 1716 | break; |
| 1717 | case(COLOR): |
| 1718 | if(loadColor(&(label->color), &(label->bindings[MS_LABEL_BINDING_COLOR])) != MS_SUCCESS) return(-1); |
| 1719 | if(label->bindings[MS_LABEL_BINDING_COLOR].item) label->numbindings++; |
| 1720 | break; |
| 1721 | case(ENCODING): |
| 1722 | if((getString(&label->encoding)) == MS_FAILURE) return(-1); |
| 1723 | break; |
| 1724 | case(END): |
| 1725 | return(0); |
| 1726 | break; |
| 1727 | case(EOF): |
| 1728 | msSetError(MS_EOFERR, NULL, "loadLabel()"); |
| 1729 | return(-1); |
| 1730 | case(FONT): |
| 1731 | #if defined (USE_GD_TTF) || defined (USE_GD_FT) |
| 1732 | if((symbol = getSymbol(2, MS_STRING, MS_BINDING)) == -1) |
| 1733 | return(-1); |
| 1734 | |
| 1735 | if(symbol == MS_STRING) { |
no test coverage detected