This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include "includes.h"
-#include "Python.h"
#include "py_conv.h"
/* Helper for rpcstr_pull() function */
rpcstr_pull(str, uni->buffer, sizeof(fstring), -1, STR_TERMINATE);
}
+static void fstr_pull2(fstring str, UNISTR2 *uni)
+{
+ rpcstr_pull(str, uni->buffer, sizeof(fstring), -1, STR_TERMINATE);
+}
+
/* Convert a structure to a Python dict */
PyObject *from_struct(void *s, struct pyconv *conv)
switch (conv[i].type) {
case PY_UNISTR: {
UNISTR *u = (UNISTR *)((char *)s + conv[i].offset);
- fstring s = "";
+ fstring str = "";
if (u->buffer)
- fstr_pull(s, u);
+ fstr_pull(str, u);
+
+ item = PyString_FromString(str);
+ PyDict_SetItemString(obj, conv[i].name, item);
- item = PyString_FromString(s);
+ break;
+ }
+ case PY_UNISTR2: {
+ UNISTR2 *u = (UNISTR2 *)((char *)s + conv[i].offset);
+ fstring str = "";
+
+ if (u->buffer)
+ fstr_pull2(str, u);
+
+ item = PyString_FromString(str);
PyDict_SetItemString(obj, conv[i].name, item);
break;
switch (conv[i].type) {
case PY_UNISTR: {
UNISTR *u = (UNISTR *)((char *)s + conv[i].offset);
- char *s = "";
+ char *str = "";
if (!PyString_Check(obj))
goto done;
- s = PyString_AsString(obj);
- init_unistr(u, s);
+ str = PyString_AsString(obj);
+ init_unistr(u, str);
break;
}