Make WinWStrDupFromWC endian agnostic (Patch #273)

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6783 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
f0rt 2016-09-06 18:48:32 +00:00
parent 25dac3a5e9
commit a190b4fc84
2 changed files with 4 additions and 4 deletions

View file

@ -35,15 +35,15 @@ public:
WINWCHAR test[] = { _x('t'), _x('e'), _x('s'), _x('t'), 0 };
WINWCHAR *dyn = WinWStrDupFromTChar(_T("test"));
CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, 5) );
CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, sizeof(test)) );
free(dyn);
dyn = WinWStrDupFromChar("test");
CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, 5) );
CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, sizeof(test)) );
free(dyn);
dyn = WinWStrDupFromWC(L"test");
CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, 5) );
CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, sizeof(test)) );
free(dyn);
}

View file

@ -111,7 +111,7 @@ WINWCHAR* WinWStrDupFromWC(const wchar_t *s)
// NOTE: Anything outside the ASCII range will not convert correctly!
size_t cch = wcslen(s);
WINWCHAR* p = (WINWCHAR*) malloc(++cch * 2);
if (p) for (size_t i = 0; i < cch; ++i) p[i] = (unsigned char) s[i];
if (p) for (size_t i = 0; i < cch; ++i) p[i] = FIX_ENDIAN_INT16(s[i]);
return p;
#endif
}