]> Dogcows Code - chaz/yoink/blobdiff - src/stringtools.cc
extreme refactoring
[chaz/yoink] / src / stringtools.cc
diff --git a/src/stringtools.cc b/src/stringtools.cc
deleted file mode 100644 (file)
index 91d2a6c..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-
-/*******************************************************************************
-
- Copyright (c) 2009, Charles McGarvey
- All rights reserved.
- Redistribution   and   use  in  source  and  binary  forms,  with  or  without
- modification, are permitted provided that the following conditions are met:
-   * Redistributions  of  source  code  must retain the above copyright notice,
-     this list of conditions and the following disclaimer.
-   * Redistributions  in binary form must reproduce the above copyright notice,
-     this  list of conditions and the following disclaimer in the documentation
-     and/or other materials provided with the distribution.
- THIS  SOFTWARE  IS  PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND  ANY  EXPRESS  OR  IMPLIED  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED.  IN  NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- FOR  ANY  DIRECT,  INDIRECT,  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES  (INCLUDING,  BUT  NOT  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES;  LOSS  OF  USE,  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- CAUSED  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- OR  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-*******************************************************************************/
-
-#include <stdexcept>
-
-#include "ConvertUTF.h"
-
-#include "stringtools.hh"
-
-
-namespace dc {
-
-
-std::wstring multiToWide(const std::string& multiStr)
-{
-       size_t length = multiStr.length();
-
-       if (sizeof(wchar_t) == 2)
-       {
-               wchar_t* wideStr = new wchar_t[length + 1];
-
-               const UTF8* srcStart = reinterpret_cast<const UTF8*>(multiStr.c_str());
-               const UTF8* srcEnd = srcStart + length;
-               UTF16* targetStart = reinterpret_cast<UTF16*>(wideStr);
-               UTF16* targetEnd = targetStart + length+1;
-
-               ConversionResult res = ConvertUTF8toUTF16(&srcStart, srcEnd,
-                               &targetStart, targetEnd, lenientConversion);
-               if (res != conversionOK)
-               {
-                       delete[] wideStr;
-                       throw std::runtime_error("bad conversion from multi to wide characters");
-               }
-
-               *targetStart = 0;
-               std::wstring convertedStr(wideStr);
-               delete[] wideStr;
-               return convertedStr;
-       }
-       else if (sizeof(wchar_t) == 4)
-       {
-               wchar_t* wideStr = new wchar_t[length];
-
-               const UTF8* srcStart = reinterpret_cast<const UTF8*>(multiStr.c_str());
-               const UTF8* srcEnd = srcStart + length;
-               UTF32* targetStart = reinterpret_cast<UTF32*>(wideStr);
-               UTF32* targetEnd = targetStart + length;
-
-               ConversionResult res = ConvertUTF8toUTF32(&srcStart, srcEnd,
-                               &targetStart, targetEnd, lenientConversion);
-               if (res != conversionOK)
-               {
-                       delete[] wideStr;
-                       throw std::runtime_error("bad conversion from multi to wide characters");
-               }
-
-               *targetStart = 0;
-               std::wstring convertedStr(wideStr);
-               delete[] wideStr;
-               return convertedStr;
-       }
-       else
-       {
-               throw std::runtime_error("unknown size of wide characters");
-       }
-       return L"";
-}
-
-std::string wideToMulti(const std::wstring& wideStr)
-{
-       size_t length = wideStr.length();
-
-       if (sizeof(wchar_t) == 2)
-       {
-               size_t multiLength = 3 * length + 1;
-               char* multiStr = new char[multiLength];
-
-               const UTF16* srcStart = reinterpret_cast<const UTF16*>(wideStr.c_str());
-               const UTF16* srcEnd = srcStart + length;
-               UTF8* targetStart = reinterpret_cast<UTF8*>(multiStr);
-               UTF8* targetEnd = targetStart + multiLength;
-
-               ConversionResult res = ConvertUTF16toUTF8(&srcStart, srcEnd,
-                               &targetStart, targetEnd, lenientConversion);
-               if (res != conversionOK)
-               {
-                       delete[] multiStr;
-                       throw std::runtime_error("bad conversion from wide to multi-characters");
-               }
-
-               *targetStart = 0;
-               std::string convertedStr(multiStr);
-               delete[] multiStr;
-               return convertedStr;
-       }
-       else if (sizeof(wchar_t) == 4)
-       {
-               size_t multiLength = 4 * length + 1;
-               char* multiStr = new char[multiLength];
-
-               const UTF32* srcStart = reinterpret_cast<const UTF32*>(wideStr.c_str());
-               const UTF32* srcEnd = srcStart + length;
-               UTF8* targetStart = reinterpret_cast<UTF8*>(multiStr);
-               UTF8* targetEnd = targetStart + multiLength;
-
-               ConversionResult res = ConvertUTF32toUTF8(&srcStart, srcEnd,
-                               &targetStart, targetEnd, lenientConversion);
-               if (res != conversionOK)
-               {
-                       delete[] multiStr;
-                       throw std::runtime_error("bad conversion from wide to multi-characters");
-               }
-
-               *targetStart = 0;
-               std::string convertedStr(multiStr);
-               delete[] multiStr;
-               return convertedStr;
-       }
-       else
-       {
-               throw std::runtime_error("unknown size of wide characters");
-       }
-       return "";
-}
-
-
-} // namespace dc
-
-/** vim: set ts=4 sw=4 tw=80: *************************************************/
-
This page took 0.023062 seconds and 4 git commands to generate.