all repos — openbox @ 4534151926c4f3887ba9e37ae67df16f1eb039ef

openbox fork - make it a bit more like ryudo

wrap/otk_ustring.i (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-

%module otk_rendertexture

%{
#include "otk/ustring.hh"
%}

namespace otk {
    class ustring;

    /* Overloading check */

    %typemap(typecheck) ustring = char *;
    %typemap(typecheck) const ustring & = char *;

    %typemap(in) ustring {
        if (PyString_Check($input))
            $1 = otk::ustring(PyString_AsString($input));
        else
            SWIG_exception(SWIG_TypeError, "string expected");
    }

    %typemap(in) const ustring & (otk::ustring temp) {
        if (PyString_Check($input)) {
            temp = otk::ustring(PyString_AsString($input));
            $1 = &temp;
        } else {
            SWIG_exception(SWIG_TypeError, "string expected");
        }
    }

    %typemap(out) ustring {
        $result = PyString_FromString($1.c_str());
    }

    %typemap(out) const ustring & {
        $result = PyString_FromString($1->c_str());
    }
}