#define __BIG_ENDIAN 1
#elif defined(__MACH__) && defined(__APPLE__)
#include <machine/endian.h>
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined(__DragonFly__)
#include <sys/endian.h>
#else
#include <endian.h>
{
u32 i;
const uchar16_t* oa = other.c_str();
- for(i=0; array[i] && oa[i] && i < n; ++i)
+ for(i=0; i < n && array[i] && oa[i]; ++i)
if (array[i] != oa[i])
return false;
if (!str)
return false;
u32 i;
- for(i=0; array[i] && str[i] && i < n; ++i)
+ for(i=0; i < n && array[i] && str[i]; ++i)
if (array[i] != str[i])
return false;
ret[0] = unicode::BOM;
else if (endian == unicode::EUTFEE_LITTLE)
{
- uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(ret.c_str());
+ uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(&ret[0]);
*ptr8++ = unicode::BOM_ENCODE_UTF16_LE[0];
*ptr8 = unicode::BOM_ENCODE_UTF16_LE[1];
}
else
{
- uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(ret.c_str());
+ uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(&ret[0]);
*ptr8++ = unicode::BOM_ENCODE_UTF16_BE[0];
*ptr8 = unicode::BOM_ENCODE_UTF16_BE[1];
}