tabs->spaces

This commit is contained in:
Wenzel Jakob 2016-03-26 23:38:46 +01:00
parent 9883ec01d7
commit 08927e9809

View File

@ -406,14 +406,14 @@ protected:
template <> class type_caster<std::wstring> { template <> class type_caster<std::wstring> {
public: public:
bool load(handle src, bool) { bool load(handle src, bool) {
object temp; object temp;
handle load_src = src; handle load_src = src;
if (!PyUnicode_Check(load_src.ptr())) { if (!PyUnicode_Check(load_src.ptr())) {
temp = object(PyUnicode_FromObject(load_src.ptr()), false); temp = object(PyUnicode_FromObject(load_src.ptr()), false);
if (!temp) { PyErr_Clear(); return false; } if (!temp) { PyErr_Clear(); return false; }
load_src = temp; load_src = temp;
} }
wchar_t *buffer = nullptr; wchar_t *buffer = nullptr;
ssize_t length = -1; ssize_t length = -1;
#if PY_MAJOR_VERSION >= 3 #if PY_MAJOR_VERSION >= 3
@ -430,24 +430,24 @@ public:
} }
#endif #endif
if (!buffer) { PyErr_Clear(); return false; } if (!buffer) { PyErr_Clear(); return false; }
value = std::wstring(buffer, length); value = std::wstring(buffer, length);
success = true; success = true;
return true; return true;
} }
static handle cast(const std::wstring &src, return_value_policy /* policy */, handle /* parent */) { static handle cast(const std::wstring &src, return_value_policy /* policy */, handle /* parent */) {
return PyUnicode_FromWideChar(src.c_str(), src.length()); return PyUnicode_FromWideChar(src.c_str(), src.length());
} }
PYBIND11_TYPE_CASTER(std::wstring, _(PYBIND11_STRING_NAME)); PYBIND11_TYPE_CASTER(std::wstring, _(PYBIND11_STRING_NAME));
protected: protected:
bool success = false; bool success = false;
}; };
template <> class type_caster<char> : public type_caster<std::string> { template <> class type_caster<char> : public type_caster<std::string> {
public: public:
bool load(handle src, bool convert) { bool load(handle src, bool convert) {
if (src.ptr() == Py_None) { return true; } if (src.ptr() == Py_None) { return true; }
return type_caster<std::string>::load(src, convert); return type_caster<std::string>::load(src, convert);
} }
@ -462,32 +462,32 @@ public:
} }
operator char*() { return success ? (char *) value.c_str() : nullptr; } operator char*() { return success ? (char *) value.c_str() : nullptr; }
operator char&() { return value[0]; } operator char&() { return value[0]; }
static PYBIND11_DESCR name() { return type_descr(_(PYBIND11_STRING_NAME)); } static PYBIND11_DESCR name() { return type_descr(_(PYBIND11_STRING_NAME)); }
}; };
template <> class type_caster<wchar_t> : public type_caster<std::wstring> { template <> class type_caster<wchar_t> : public type_caster<std::wstring> {
public: public:
bool load(handle src, bool convert) { bool load(handle src, bool convert) {
if (src.ptr() == Py_None) { return true; } if (src.ptr() == Py_None) { return true; }
return type_caster<std::wstring>::load(src, convert); return type_caster<std::wstring>::load(src, convert);
} }
static handle cast(const wchar_t *src, return_value_policy /* policy */, handle /* parent */) { static handle cast(const wchar_t *src, return_value_policy /* policy */, handle /* parent */) {
if (src == nullptr) return handle(Py_None).inc_ref(); if (src == nullptr) return handle(Py_None).inc_ref();
return PyUnicode_FromWideChar(src, wcslen(src)); return PyUnicode_FromWideChar(src, wcslen(src));
} }
static handle cast(wchar_t src, return_value_policy /* policy */, handle /* parent */) { static handle cast(wchar_t src, return_value_policy /* policy */, handle /* parent */) {
wchar_t wstr[2] = { src, L'\0' }; wchar_t wstr[2] = { src, L'\0' };
return PyUnicode_FromWideChar(wstr, 1); return PyUnicode_FromWideChar(wstr, 1);
} }
operator wchar_t*() { return success ? (wchar_t *) value.c_str() : nullptr; } operator wchar_t*() { return success ? (wchar_t *) value.c_str() : nullptr; }
operator wchar_t&() { return value[0]; } operator wchar_t&() { return value[0]; }
static PYBIND11_DESCR name() { return type_descr(_(PYBIND11_STRING_NAME)); } static PYBIND11_DESCR name() { return type_descr(_(PYBIND11_STRING_NAME)); }
}; };
template <typename T1, typename T2> class type_caster<std::pair<T1, T2>> { template <typename T1, typename T2> class type_caster<std::pair<T1, T2>> {