|
@@ -4937,13 +4937,14 @@ write_function_instance(ostream &out, FunctionRemap *remap,
|
|
|
expected_params += "NoneType";
|
|
expected_params += "NoneType";
|
|
|
|
|
|
|
|
} else if (TypeManager::is_char(type)) {
|
|
} else if (TypeManager::is_char(type)) {
|
|
|
- indent(out, indent_level) << "char " << param_name << default_expr << ";\n";
|
|
|
|
|
|
|
+ indent(out, indent_level) << "char *" << param_name << "_str;\n";
|
|
|
|
|
+ indent(out, indent_level) << "Py_ssize_t " << param_name << "_len;\n";
|
|
|
|
|
|
|
|
- format_specifiers += "c";
|
|
|
|
|
- parameter_list += ", &" + param_name;
|
|
|
|
|
|
|
+ format_specifiers += "s#";
|
|
|
|
|
+ parameter_list += ", &" + param_name + "_str, &" + param_name + "_len";
|
|
|
|
|
+ extra_param_check << " && " << param_name << "_len == 1";
|
|
|
|
|
|
|
|
- // extra_param_check << " && isascii(" << param_name << ")";
|
|
|
|
|
- pexpr_string = "(char) " + param_name;
|
|
|
|
|
|
|
+ pexpr_string = param_name + "_str[0]";
|
|
|
expected_params += "char";
|
|
expected_params += "char";
|
|
|
only_pyobjects = false;
|
|
only_pyobjects = false;
|
|
|
|
|
|