[SCM] Samba Shared Repository - branch master updated

Andrew Tridgell tridge at samba.org
Tue Sep 21 00:17:36 MDT 2010


The branch, master has been updated
       via  6a3c687 pidl/python: Allow passing in UTF8 string objects as well as unicode objects for IDL strings.
      from  d86d225 s3:services_db: convert get_common_service_dispname() to talloc

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 6a3c687f039f8f6cfeb8d12d81cd71157ad43ddd
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Sep 20 22:18:45 2010 -0700

    pidl/python: Allow passing in UTF8 string objects as well as unicode
    objects for IDL strings.
    
    Signed-off-by: Andrew Tridgell <tridge at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 pidl/lib/Parse/Pidl/Samba4/Python.pm |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm
index d4db4c0..ed43ba4 100644
--- a/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -987,9 +987,21 @@ sub ConvertObjectFromPythonLevel($$$$$$$$)
 		}
 
 		if (is_charset_array($e, $l)) {
-			$self->pidl("PY_CHECK_TYPE(&PyUnicode_Type, $py_var, $fail);");
+			$self->pidl("if (PyUnicode_Check($py_var)) {");
+			$self->indent;
 			# FIXME: Use Unix charset setting rather than utf-8
 			$self->pidl($var_name . " = PyString_AsString(PyUnicode_AsEncodedString($py_var, \"utf-8\", \"ignore\"));");
+			$self->deindent;
+			$self->pidl("} else if (PyString_Check($py_var)) {");
+			$self->indent;
+			$self->pidl($var_name . " = PyString_AsString($py_var);");
+			$self->deindent;
+			$self->pidl("} else {");
+			$self->indent;
+			$self->pidl("PyErr_Format(PyExc_TypeError, \"Expected string or unicode object, got %s\", Py_TYPE($py_var)->tp_name);");
+			$self->pidl("$fail;");
+			$self->deindent;
+			$self->pidl("}");
 		} else {
 			my $counter = "$e->{NAME}_cntr_$l->{LEVEL_INDEX}";
 			$self->pidl("PY_CHECK_TYPE(&PyList_Type, $py_var, $fail);");


-- 
Samba Shared Repository


More information about the samba-cvs mailing list