summaryrefslogtreecommitdiff
path: root/subversion/bindings/swig/include/svn_string.swg
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/bindings/swig/include/svn_string.swg')
-rw-r--r--subversion/bindings/swig/include/svn_string.swg67
1 files changed, 50 insertions, 17 deletions
diff --git a/subversion/bindings/swig/include/svn_string.swg b/subversion/bindings/swig/include/svn_string.swg
index 9fb2dac..8be4c3d 100644
--- a/subversion/bindings/swig/include/svn_string.swg
+++ b/subversion/bindings/swig/include/svn_string.swg
@@ -36,9 +36,8 @@ typedef struct svn_string_t svn_string_t;
if (*$1 == NULL) {
Py_INCREF(Py_None);
s = Py_None;
- }
- else {
- s = PyString_FromStringAndSize((*$1)->data, (*$1)->len);
+ } else {
+ s = PyBytes_FromStringAndSize((*$1)->data, (*$1)->len);
if (s == NULL)
SWIG_fail;
}
@@ -75,14 +74,20 @@ typedef struct svn_string_t svn_string_t;
#ifdef SWIGPYTHON
%typemap(in) svn_stringbuf_t * {
- if (!PyString_Check($input)) {
- PyErr_SetString(PyExc_TypeError, "not a string");
+ if (!PyBytes_Check($input)) {
+ PyErr_SetString(PyExc_TypeError, "not a bytes object");
SWIG_fail;
}
- $1 = svn_stringbuf_ncreate(PyString_AS_STRING($input),
- PyString_GET_SIZE($input),
- /* ### gah... what pool to use? */
- _global_pool);
+ {
+ Py_ssize_t strBufLen;
+ char *strBufChar;
+ if (-1 == PyBytes_AsStringAndSize($input, &strBufChar, &strBufLen)) {
+ SWIG_fail;
+ }
+ $1 = svn_stringbuf_ncreate(strBufChar, strBufLen,
+ /* ### gah... what pool to use? */
+ _global_pool);
+ }
}
#endif
@@ -139,7 +144,7 @@ typedef struct svn_string_t svn_string_t;
#ifdef SWIGPYTHON
%typemap(out) svn_stringbuf_t * {
- $result = PyString_FromStringAndSize($1->data, $1->len);
+ $result = PyBytes_FromStringAndSize($1->data, (Py_ssize_t)($1->len));
}
#endif
@@ -174,12 +179,16 @@ typedef struct svn_string_t svn_string_t;
if ($input == Py_None)
$1 = NULL;
else {
- if (!PyString_Check($input)) {
- PyErr_SetString(PyExc_TypeError, "not a string");
+ Py_ssize_t pyStrLen;
+ if (!PyBytes_Check($input)) {
+ PyErr_SetString(PyExc_TypeError, "not a bytes object");
+ SWIG_fail;
+ }
+ if (PyBytes_AsStringAndSize($input, (char **)&(value.data),
+ &pyStrLen) == -1) {
SWIG_fail;
}
- value.data = PyString_AS_STRING($input);
- value.len = PyString_GET_SIZE($input);
+ value.len = pyStrLen;
$1 = &value;
}
}
@@ -223,7 +232,7 @@ typedef struct svn_string_t svn_string_t;
#ifdef SWIGPYTHON
%typemap(out) svn_string_t * {
- $result = PyString_FromStringAndSize($1->data, $1->len);
+ $result = PyBytes_FromStringAndSize($1->data, $1->len);
}
#endif
#ifdef SWIGPERL
@@ -242,6 +251,26 @@ typedef struct svn_string_t svn_string_t;
}
#endif
+ /* -----------------------------------------------------------------------
+ Type: char * (input)
+*/
+#ifdef SWIGPYTHON
+%typemap (in) IN_STRING
+{
+ $1 = svn_swig_py_string_to_cstring($input, FALSE, "$symname", "$1_name");
+ if (PyErr_Occurred()) SWIG_fail;
+}
+
+%typemap (freearg) IN_STRING "";
+
+%apply IN_STRING {
+ const char *,
+ char *,
+ char const *,
+ char * const,
+ char const * const
+};
+#endif
/* -----------------------------------------------------------------------
define a way to return a 'const char *'
*/
@@ -253,7 +282,7 @@ typedef struct svn_string_t svn_string_t;
s = Py_None;
}
else {
- s = PyString_FromString(*$1);
+ s = PyBytes_FromString(*$1);
if (s == NULL)
SWIG_fail;
}
@@ -283,4 +312,8 @@ typedef struct svn_string_t svn_string_t;
#endif
/* svn_wc_get_ancestry() lacks a 'const' */
-%apply const char **OUTPUT { const char **, char **url };
+%apply const char **OUTPUT {
+ const char **,
+ char **url,
+ char **log_message
+};