From bf445005ab51de2de6bd36d3b61eed92a67850f5 Mon Sep 17 00:00:00 2001 From: eidheim Date: Mon, 25 Sep 2017 09:42:44 +0200 Subject: [PATCH] Added clangmm::CString --- src/Utility.cc | 12 ++++++++++++ src/Utility.h | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/src/Utility.cc b/src/Utility.cc index 854e02e..60fd0e7 100644 --- a/src/Utility.cc +++ b/src/Utility.cc @@ -10,6 +10,18 @@ std::string clangmm::to_string(CXString cx_string) { return string; } +clangmm::CString::CString(const CXString &cx_string) : cx_string(cx_string) { + if(cx_string.data!=NULL) + data=clang_getCString(cx_string); + else + data=""; +} + +clangmm::CString::~CString() { + if(cx_string.data!=NULL) + clang_disposeString(cx_string); +} + void clangmm::remove_include_guard(std::string &buffer) { static std::regex ifndef_regex1("^[ \t]*#[ \t]*ifndef[ \t]+([A-Za-z0-9_]+).*$"); static std::regex ifndef_regex2("^[ \t]*#[ \t]*if[ \t]+![ \t]*defined[ \t]*\\([ \t]*([A-Za-z0-9_]+).*$"); diff --git a/src/Utility.h b/src/Utility.h index dbc28a1..58ca6d2 100644 --- a/src/Utility.h +++ b/src/Utility.h @@ -2,10 +2,19 @@ #define UTILITY_H_ #include #include +#include namespace clangmm { std::string to_string(CXString cx_string); + class CString { + public: + CString(const CXString &cx_string); + ~CString(); + CXString cx_string; + const char *data; + }; + void remove_include_guard(std::string &buffer); }