Exemplo n.º 1
0
BOOL IsNumber( const wchar_t * szNumber )
{
	Assert( szNumber );
	int nLen = T_strlen( szNumber );
	for( int i = 0; i < nLen; i++ )
	{
		if( szNumber[i] > L'9' || szNumber[i] < L'0' )
			return FALSE;
	}
	return TRUE;
}
Exemplo n.º 2
0
void makefullpath(TCHAR* pdbname)
{
	TCHAR* pdbstart = pdbname;
	TCHAR fullname[260];
	TCHAR* pfullname = fullname;

	int drive = 0;
	if (pdbname[0] && pdbname[1] == ':')
	{
		if (pdbname[2] == '\\' || pdbname[2] == '/')
			return;
		drive = T_toupper (pdbname[0]);
		pdbname += 2;
	}
	else
	{
		drive = _getdrive();
	}

	if (*pdbname != '\\' && *pdbname != '/')
	{
		T_getdcwd(drive, pfullname, sizeof(fullname)/sizeof(fullname[0]) - 2);
		pfullname += T_strlen(pfullname);
		if (pfullname[-1] != '\\')
			*pfullname++ = '\\';
	}
	else
	{
		*pfullname++ = 'a' - 1 + drive;
		*pfullname++ = ':';
	}
	T_strcpy(pfullname, pdbname);
	T_strcpy(pdbstart, fullname);

	for(TCHAR*p = pdbstart; *p; p++)
		if (*p == '/')
			*p = '\\';

	// remove relative parts "./" and "../"
	while (TCHAR* p = T_strstr (pdbstart, TEXT("\\.\\")))
		T_strcpy(p, p + 2);

	while (TCHAR* p = T_strstr (pdbstart, TEXT("\\..\\")))
	{
		for (TCHAR* q = p - 1; q >= pdbstart; q--)
			if (*q == '\\')
			{
				T_strcpy(q, p + 3);
				break;
			}
	}
}
Exemplo n.º 3
0
/***********************************************************************
 * Function Name	: PSPReturnXMLResult
 * Description		: This function appends given element(xmlNode)
 * 				      to the Result XML
 * Input			: pTrSet - Transaction Set
 * 				      xmlNode  - Result XML element to be appended.
 *				      Calling function should free"xmlNode".
 * Output		: none
 * Return value	: CNTRLXML_SUCCESS, CNTRLXML_BADPARAM, CNTRLXML_FAILURE
 ***********************************************************************/
t_int32
PSPReturnXMLResult (PSPTransactionId_t * pTrSet, DOM xmlNode)
{
  t_char8 xmlDeclare[] = "<?xml version=\"1.0\"encoding=\"UTF-8\"?>";
  t_char8 xmlFile[] =
    "<result><Transaction status=\'ok\'></Transaction></result>";
  t_int32 retVal = 0;
  t_char8 *tempBuff = NULL;

  if (!xmlNode)
  {
    return CNTRLXML_BADPARAM;
  }

  if (IsValidTransaction (pTrSet))
  {
    if (pXmlResult == NULL)
    {
      /*
       *      Create error XML DOM structure.
       */
      retVal = CNTRLXMLParseXML (xmlFile, &pXmlResult);
    }

    if (!pTransList)            /*If no transactions in progress */
    {
      /*
       *      Convert the XML structure into string buffer
       */
      retVal = CNTRLXMLtoBuffer (pXmlResult, &tempBuff);

      if (retVal == CNTRLXML_SUCCESS)
      {
        pXMLResultStr = (t_char8 *) T_malloc (T_strlen (xmlDeclare)
                                              + T_strlen (tempBuff) + 1);
        T_strcat (pXMLResultStr, xmlDeclare);
        T_strcat (pXMLResultStr, tempBuff);
        free (tempBuff);
      }
    }
    else
    {
      /*
       *      Append xmlNode structure to pXmlError
       */
      t_void *rootNode = NULL;
      t_void *pCurrentCommand = NULL;

      CNTRLXMLGetRootNode (pXmlResult, &rootNode);

      retVal = CNTRLXMLGetFirstChildElement (rootNode, &pCurrentCommand);
      if (retVal != CNTRLXML_SUCCESS)
      {
#ifdef XMLDEBUG
        XML_Debug ("Could not append the child.", __FUNCTION__);
#endif
        return CNTRLXML_FAILURE;
      }
      retVal = CNTRLXMLAppendChildNode (&rootNode, xmlNode);

      if (retVal != CNTRLXML_SUCCESS)
      {
#ifdef XMLDEBUG
        XML_Debug ("Could not append the child.", __FUNCTION__);
#endif
        return CNTRLXML_FAILURE;
      }
    }
  }
  else
  {
    /*
     *      Convert the XML structure into string buffer
     */
    retVal = CNTRLXMLtoBuffer (pXmlResult, &pXMLResultStr);
    if (retVal != CNTRLXML_SUCCESS)
    {
#ifdef XMLDEBUG
      XML_Debug ("Could not append the Result XML.", __FUNCTION__);
#endif
      return CNTRLXML_FAILURE;
    }
  }
  return CNTRLXML_SUCCESS;

}