1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#include "sqp.h"
HSQPCOMPARISON sqpStoreComparison( char *pszLValue, char *pszOperator, char *pszRValue, char *pszEscape )
{
HSQPCOMPARISON pComparison;
HSQPPARAM hSQPParam;
#ifdef SQPDEBUG
printf( "[SQP][%s][%d] BEGIN: %s %s %s %s\n", __FILE__, __LINE__, pszLValue, pszOperator, pszRValue, pszEscape );
#endif
pComparison = (HSQPCOMPARISON)malloc( sizeof(SQPCOMPARISON) );
pComparison->pszLValue = (char*)strdup( pszLValue );
pComparison->pszOperator = (char*)strdup( pszOperator );
if ( !strcmp(pszRValue, "?") )
{
pComparison->pszRValue = NULL;
if ( !lstEOL( g_hParams ) )
{
hSQPParam = (HSQPPARAM)lstGet( g_hParams );
pComparison->pszRValue = (char *)strdup( hSQPParam->pszValue );
lstNext( g_hParams );
}
}
else
{
pComparison->pszRValue = (char*)strdup(&(pszRValue[1]));
pComparison->pszRValue[strlen(pComparison->pszRValue)-1]= '\0';
}
if (pszEscape)
pComparison->cEscape = pszEscape[1];
else
pComparison->cEscape = NULL;
#ifdef SQPDEBUG
printf( "[SQP][%s][%d] END: %s %s %s\n", __FILE__, __LINE__, pComparison->pszLValue, pComparison->pszOperator, pComparison->pszRValue );
#endif
return( pComparison );
}
|