[SHLWAPI] Import Wine commit 4b33a33 by Sebastian Lackner: Add implementation for StrCatChainW. Based on a patch by Huw Campbell.

CORE-7556

svn path=/trunk/; revision=65749
This commit is contained in:
Amine Khaldi 2014-12-19 13:20:42 +00:00
parent 58d4218202
commit cfcca647bc
2 changed files with 42 additions and 1 deletions

View file

@ -767,7 +767,7 @@
767 stdcall StrCSpnW(wstr wstr)
768 stdcall StrCatBuffA(str str long)
769 stdcall StrCatBuffW(wstr wstr long)
#770 StrCatChainW
770 stdcall StrCatChainW (ptr long long wstr)
771 stdcall StrCatW(ptr wstr)
772 stdcall StrChrA(str long)
773 stdcall StrChrIA(str long)

View file

@ -437,6 +437,47 @@ LPWSTR WINAPI StrCatW(LPWSTR lpszStr, LPCWSTR lpszSrc)
return lpszStr;
}
/*************************************************************************
* StrCatChainW [SHLWAPI.@]
*
* Concatenates two unicode strings.
*
* PARAMS
* lpszStr [O] Initial string
* cchMax [I] Length of destination buffer
* ichAt [I] Offset from the destination buffer to begin concatenation
* lpszCat [I] String to concatenate
*
* RETURNS
* The offset from the beginning of pszDst to the terminating NULL.
*/
DWORD WINAPI StrCatChainW(LPWSTR lpszStr, DWORD cchMax, DWORD ichAt, LPCWSTR lpszCat)
{
TRACE("(%s,%u,%d,%s)\n", debugstr_w(lpszStr), cchMax, ichAt, debugstr_w(lpszCat));
if (ichAt == -1)
ichAt = strlenW(lpszStr);
if (!cchMax)
return ichAt;
if (ichAt == cchMax)
ichAt--;
if (lpszCat && ichAt < cchMax)
{
lpszStr += ichAt;
while (ichAt < cchMax - 1 && *lpszCat)
{
*lpszStr++ = *lpszCat++;
ichAt++;
}
*lpszStr = 0;
}
return ichAt;
}
/*************************************************************************
* StrCpyW [SHLWAPI.@]
*