diff --git a/extras/Introjucer/Source/Utility/jucer_TranslationTool.h b/extras/Introjucer/Source/Utility/jucer_TranslationTool.h index d9d1aad869..36232a58ad 100644 --- a/extras/Introjucer/Source/Utility/jucer_TranslationTool.h +++ b/extras/Introjucer/Source/Utility/jucer_TranslationTool.h @@ -76,7 +76,8 @@ struct TranslationHelpers if (c == '"') { out << String (start, p); - parseStringLiteral (++p, out); + ++p; + parseStringLiteral (p, out); return; } diff --git a/modules/juce_core/text/juce_String.cpp b/modules/juce_core/text/juce_String.cpp index b229b1b1c5..14c0225fd1 100644 --- a/modules/juce_core/text/juce_String.cpp +++ b/modules/juce_core/text/juce_String.cpp @@ -614,18 +614,19 @@ void String::appendCharPointer (const CharPointerType startOfTextToAppend, const CharPointerType endOfTextToAppend) { jassert (startOfTextToAppend.getAddress() != nullptr && endOfTextToAppend.getAddress() != nullptr); - jassert (startOfTextToAppend.getAddress() <= endOfTextToAppend.getAddress()); - const size_t extraBytesNeeded = endOfTextToAppend.getAddress() - startOfTextToAppend.getAddress(); + const int extraBytesNeeded = getAddressDifference (endOfTextToAppend.getAddress(), + startOfTextToAppend.getAddress()); + jassert (extraBytesNeeded >= 0); if (extraBytesNeeded > 0) { const size_t byteOffsetOfNull = getByteOffsetOfEnd(); - preallocateBytes (byteOffsetOfNull + extraBytesNeeded); + preallocateBytes (byteOffsetOfNull + (size_t) extraBytesNeeded); - char* const newStringStart = addBytesToPointer (text.getAddress(), (int) byteOffsetOfNull); + CharPointerType::CharType* const newStringStart = addBytesToPointer (text.getAddress(), (int) byteOffsetOfNull); memcpy (newStringStart, startOfTextToAppend.getAddress(), extraBytesNeeded); - CharPointerType (newStringStart + extraBytesNeeded).writeNull(); + CharPointerType (addBytesToPointer (newStringStart, extraBytesNeeded)).writeNull(); } } diff --git a/modules/juce_core/xml/juce_XmlDocument.cpp b/modules/juce_core/xml/juce_XmlDocument.cpp index fe78858ec5..e118b31dcf 100644 --- a/modules/juce_core/xml/juce_XmlDocument.cpp +++ b/modules/juce_core/xml/juce_XmlDocument.cpp @@ -122,6 +122,7 @@ XmlElement* XmlDocument::getDocumentElement (const bool onlyReadOuterDocumentEle MemoryOutputStream data; data.writeFromInputStream (*in, onlyReadOuterDocumentElement ? 8192 : -1); + #if JUCE_STRING_UTF_TYPE == 8 if (data.getDataSize() > 2) { data.writeByte (0); @@ -141,6 +142,9 @@ XmlElement* XmlDocument::getDocumentElement (const bool onlyReadOuterDocumentEle return parseDocumentElement (String::CharPointerType (text), onlyReadOuterDocumentElement); } } + #else + originalText = data.toString(); + #endif } }