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

Function msSLDGetLeftExpressionOfOperator

mapogcsld.c:4616–4694  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4614}
4615
4616char *msSLDGetLeftExpressionOfOperator(char *pszExpression)
4617{
4618 char *pszReturn = NULL;
4619 int nLength = 0, i =0, iReturn=0;
4620
4621 if (!pszExpression || (nLength = strlen(pszExpression)) <=0)
4622 return NULL;
4623
4624 pszReturn = (char *)malloc(sizeof(char)*(nLength+1));
4625 pszReturn[0] = '\0';
4626 if (strstr(pszExpression, " AND ") || strstr(pszExpression, " and "))
4627 {
4628 for (i=0; i<nLength-5; i++)
4629 {
4630 if (pszExpression[i] == ' ' &&
4631 (pszExpression[i+1] == 'A' || pszExpression[i] == 'a') &&
4632 (pszExpression[i+2] == 'N' || pszExpression[i] == 'n') &&
4633 (pszExpression[i+3] == 'D' || pszExpression[i] == 'd') &&
4634 (pszExpression[i+4] == ' '))
4635 break;
4636 else
4637 {
4638 pszReturn[iReturn++] = pszExpression[i];
4639 }
4640 pszReturn[iReturn] = '\0';
4641 }
4642 }
4643 else if (strstr(pszExpression, "AND(") || strstr(pszExpression, "and("))
4644 {
4645 for (i=0; i<nLength-4; i++)
4646 {
4647 if ((pszExpression[i] == 'A' || pszExpression[i] == 'a') &&
4648 (pszExpression[i+1] == 'N' || pszExpression[i] == 'n') &&
4649 (pszExpression[i+2] == 'D' || pszExpression[i] == 'd') &&
4650 (pszExpression[i+3] == '('))
4651 break;
4652 else
4653 {
4654 pszReturn[iReturn++] = pszExpression[i];
4655 }
4656 pszReturn[iReturn] = '\0';
4657 }
4658 }
4659 else if (strstr(pszExpression, " OR ") || strstr(pszExpression, " or "))
4660 {
4661 for (i=0; i<nLength-4; i++)
4662 {
4663 if (pszExpression[i] == ' ' &&
4664 (pszExpression[i+1] == 'O' || pszExpression[i] == 'o') &&
4665 (pszExpression[i+2] == 'R' || pszExpression[i] == 'r') &&
4666 pszExpression[i+3] == ' ')
4667 break;
4668 else
4669 {
4670 pszReturn[iReturn++] = pszExpression[i];
4671 }
4672 pszReturn[iReturn] = '\0';
4673 }

Callers 1

BuildExpressionTreeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected