aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic/ConvertUTFWrapper.cpp
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2012-07-27 20:36:22 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2012-07-27 20:36:22 +0000
commite43031344b17cdb345957c4acc9d39d26f86efd3 (patch)
tree924b7e1a9a005f1ceb6a10cd0042d8aca8dbb415 /lib/Basic/ConvertUTFWrapper.cpp
parent4684778993c667246039b4664acbce59dc99440c (diff)
Add a function to convert a single Unicode code point to a UTF8 sequence.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160890 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/ConvertUTFWrapper.cpp')
-rw-r--r--lib/Basic/ConvertUTFWrapper.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Basic/ConvertUTFWrapper.cpp b/lib/Basic/ConvertUTFWrapper.cpp
index 42b4f58079..a1b3f7fd9d 100644
--- a/lib/Basic/ConvertUTFWrapper.cpp
+++ b/lib/Basic/ConvertUTFWrapper.cpp
@@ -51,4 +51,20 @@ bool ConvertUTF8toWide(unsigned WideCharWidth, llvm::StringRef Source,
return result == conversionOK;
}
+bool ConvertCodePointToUTF8(unsigned Source, char *&ResultPtr) {
+ const UTF32 *SourceStart = &Source;
+ const UTF32 *SourceEnd = SourceStart + 1;
+ UTF8 *TargetStart = reinterpret_cast<UTF8 *>(ResultPtr);
+ UTF8 *TargetEnd = TargetStart + 4;
+ ConversionResult CR = ConvertUTF32toUTF8(&SourceStart, SourceEnd,
+ &TargetStart, TargetEnd,
+ strictConversion);
+ if (CR != conversionOK)
+ return false;
+
+ ResultPtr = reinterpret_cast<char*>(TargetStart);
+ return true;
}
+
+} // end namespace clang
+