winpr: fix PathCchAppend
authorNorbert Federa <norbert.federa@thincast.com>
Wed, 3 Jun 2015 14:05:19 +0000 (16:05 +0200)
committerNorbert Federa <norbert.federa@thincast.com>
Wed, 3 Jun 2015 14:06:02 +0000 (16:06 +0200)
commit178afd8dd5c1f00b3bbfd97f960f603233f5851d
tree516da57192f4f88b7873bc662e59df9f938aafe6
parent92b0076c53dea0e0a11637443ce57df7bf5ca056
winpr: fix PathCchAppend

Fix incorrect usage of S_FALSE which was used to indicate errors
although it is a HRESULT success code.
Make this function behave like the Windows 8 implementation and
the according MSDN specification.

- return E_INVALIDARG instead of S_FALSE if pszPath is NULL
- return E_INVALIDARG instead of S_FALSE if pszMore is NULL
- return E_INVALIDARG if cchPath is zero
- return E_INVALIDARG if cchPath is greater than PATHCCH_MAX_CCH
- return HRESULT_FROM_WIN32(ERROR_FILENAME_EXCED_RANGE) if the combined
  path size exceeds cchPath (this is the same HRESULT which the Windows
  implementation returns in this case and which is referred to as
  PATHCCH_E_FILENAME_TOO_LONG on msdn)

Also extended/fixed the TestPathCchAppend ctest
winpr/libwinpr/path/include/PathCchAppend.c
winpr/libwinpr/path/test/TestPathCchAppend.c