diff options
Diffstat (limited to 'src/UniqueString.cxx')
| -rw-r--r-- | src/UniqueString.cxx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/UniqueString.cxx b/src/UniqueString.cxx new file mode 100644 index 000000000..dcbdc441c --- /dev/null +++ b/src/UniqueString.cxx @@ -0,0 +1,28 @@ +// Scintilla source code edit control +/** @file UniqueString.cxx + ** Define an allocator for UniqueString. + **/ +// Copyright 2017 by Neil Hodgson <neilh@scintilla.org> +// The License.txt file describes the conditions under which this software may be distributed. + +#include <cstring> +#include <algorithm> +#include <memory> + +#include "UniqueString.h" + +namespace Scintilla { + +/// Equivalent to strdup but produces a std::unique_ptr<const char[]> allocation to go +/// into collections. +UniqueString UniqueStringCopy(const char *text) { + if (!text) { + return UniqueString(); + } + const size_t len = strlen(text); + std::unique_ptr<char[]> upcNew(new char[len + 1]); + memcpy(&upcNew[0], text, len + 1); + return UniqueString(upcNew.release()); +} + +} |
