From ddc900185d41f431a0152487b85b88d7e3c4a794 Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 26 Mar 2013 01:00:29 +0100 Subject: [PATCH] Added String::Append(str, length); Former-commit-id: a1c16d5966221cffe1f28b20f099922078360818 --- include/Nazara/Core/String.hpp | 1 + src/Nazara/Core/String.cpp | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/Nazara/Core/String.hpp b/include/Nazara/Core/String.hpp index 4692c4930..dd1622d56 100644 --- a/include/Nazara/Core/String.hpp +++ b/include/Nazara/Core/String.hpp @@ -47,6 +47,7 @@ class NAZARA_API NzString : public NzHashable NzString& Append(char character); NzString& Append(const char* string); + NzString& Append(const char* string, unsigned int length); NzString& Append(const NzString& string); void Clear(bool keepBuffer = false); diff --git a/src/Nazara/Core/String.cpp b/src/Nazara/Core/String.cpp index e868f8e39..ce05d8e07 100644 --- a/src/Nazara/Core/String.cpp +++ b/src/Nazara/Core/String.cpp @@ -197,11 +197,12 @@ NzString& NzString::Append(char character) NzString& NzString::Append(const char* string) { - if (!string || !string[0]) - return *this; + return Append(string, std::strlen(string)); +} - unsigned int length = std::strlen(string); - if (length == 0) +NzString& NzString::Append(const char* string, unsigned int length) +{ + if (!string || !string[0] || length == 0) return *this; if (m_sharedString->capacity >= m_sharedString->size + length) @@ -227,6 +228,8 @@ NzString& NzString::Append(const char* string) m_sharedString->string = str; } + m_sharedString->string[m_sharedString->size] = '\0'; + return *this; }