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; }
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; } } }
/*********************************************************************** * 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; }