--- swig/export.cpp 2015-02-27 21:14:36.000000000 +0900 +++ swig/export.cpp 2015-02-27 21:06:34.000000000 +0900 @@ -279,10 +279,10 @@ retrieve_thru(dbr, query, this->measure, this->threshold, std::back_inserter(ret)); break; case 2: - retrieve_iconv(dbr, query, UTF16, this->measure, this->threshold, std::back_inserter(ret)); + throw std::runtime_error("UTF16 not supported in OSX python bindings because of libc++ incompatibility"); break; case 4: - retrieve_iconv(dbr, query, UTF32, this->measure, this->threshold, std::back_inserter(ret)); + throw std::runtime_error("UTF32 not supported in OSX python bindings because of libc++ incompatibility"); break; } @@ -296,18 +296,8 @@ if (dbr.char_size() == 1) { std::string qstr = query; return dbr.check(qstr, translate_measure(this->measure), this->threshold); - } else if (dbr.char_size() == 2) { - std::basic_string qstr; - iconv_t fwd = iconv_open(UTF16, "UTF-8"); - iconv_convert(fwd, std::string(query), qstr); - iconv_close(fwd); - return dbr.check(qstr, translate_measure(this->measure), this->threshold); - } else if (dbr.char_size() == 4) { - std::basic_string qstr; - iconv_t fwd = iconv_open(UTF32, "UTF-8"); - iconv_convert(fwd, std::string(query), qstr); - iconv_close(fwd); - return dbr.check(qstr, translate_measure(this->measure), this->threshold); + } else { + throw std::runtime_error("UTF16/32 not supported in OSX python bindings because of libc++ incompatibility"); } return false; --- swig/python/sample_unicode.py.orig 2015-02-27 21:06:34.000000000 +0900 +++ swig/python/sample_unicode.py 2015-02-28 19:33:29.000000000 +0900 @@ -11,8 +11,8 @@ import simstring -# Open a SimString database for writing with Unicode mode. -db = simstring.writer('sample_unicode.db', 3, False, True) +# Open a SimString database for writing. +db = simstring.writer('sample_unicode.db') # Write a string, and close the database. db.insert('スパゲティ') --- swig/python/setup.py.in.orig 2015-02-28 20:08:27.000000000 +0900 +++ swig/python/setup.py.in 2015-02-28 20:06:41.000000000 +0900 @@ -15,9 +15,6 @@ def get_swigdir(): return os.path.join(get_rootdir(), 'swig') -import os; os.environ['CC'] = 'g++'; os.environ['CXX'] = 'g++'; -os.environ['CPP'] = 'g++'; os.environ['LDSHARED'] = 'g++' - from distutils.core import setup, Extension simstring_module = Extension( @@ -27,7 +24,6 @@ 'export_wrap.cpp', ], include_dirs=[get_includedir(),], - extra_link_args=['-shared'], language='c++', )