mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Update translator tooling for bracket style
This commit is contained in:
@ -85,8 +85,9 @@ def make_cpptoc_function_impl_new(cls, name, func, defined_names, base_scoped):
|
|||||||
# parameter verification
|
# parameter verification
|
||||||
if isinstance(func, obj_function_virtual):
|
if isinstance(func, obj_function_virtual):
|
||||||
result += '\n DCHECK(self);'\
|
result += '\n DCHECK(self);'\
|
||||||
'\n if (!self)'\
|
'\n if (!self) {'\
|
||||||
'\n return'+retval_default+';'
|
'\n return'+retval_default+';'\
|
||||||
|
'\n }'
|
||||||
|
|
||||||
for arg in args:
|
for arg in args:
|
||||||
arg_type = arg.get_arg_type()
|
arg_type = arg.get_arg_type()
|
||||||
@ -115,8 +116,9 @@ def make_cpptoc_function_impl_new(cls, name, func, defined_names, base_scoped):
|
|||||||
arg_type == 'string_map_multi_byref' or arg_type == 'string_map_multi_byref_const':
|
arg_type == 'string_map_multi_byref' or arg_type == 'string_map_multi_byref_const':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n DCHECK('+arg_name+');'\
|
'\n DCHECK('+arg_name+');'\
|
||||||
'\n if (!'+arg_name+')'\
|
'\n if (!'+arg_name+') {'\
|
||||||
'\n return'+retval_default+';'
|
'\n return'+retval_default+';'\
|
||||||
|
'\n }'
|
||||||
if arg_type == 'struct_byref_const' or arg_type == 'struct_byref':
|
if arg_type == 'struct_byref_const' or arg_type == 'struct_byref':
|
||||||
result +=\
|
result +=\
|
||||||
'\n if (!template_util::has_valid_size('+arg_name+')) {'\
|
'\n if (!template_util::has_valid_size('+arg_name+')) {'\
|
||||||
@ -129,24 +131,27 @@ def make_cpptoc_function_impl_new(cls, name, func, defined_names, base_scoped):
|
|||||||
arg_type == 'rawptr_vec_same_byref' or arg_type == 'rawptr_vec_diff_byref':
|
arg_type == 'rawptr_vec_same_byref' or arg_type == 'rawptr_vec_diff_byref':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n DCHECK('+arg_name+'Count && (*'+arg_name+'Count == 0 || '+arg_name+'));'\
|
'\n DCHECK('+arg_name+'Count && (*'+arg_name+'Count == 0 || '+arg_name+'));'\
|
||||||
'\n if (!'+arg_name+'Count || (*'+arg_name+'Count > 0 && !'+arg_name+'))'\
|
'\n if (!'+arg_name+'Count || (*'+arg_name+'Count > 0 && !'+arg_name+')) {'\
|
||||||
'\n return'+retval_default+';'
|
'\n return'+retval_default+';'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'simple_vec_byref_const' or arg_type == 'bool_vec_byref_const' or \
|
elif arg_type == 'simple_vec_byref_const' or arg_type == 'bool_vec_byref_const' or \
|
||||||
arg_type == 'refptr_vec_same_byref_const' or arg_type == 'refptr_vec_diff_byref_const' or \
|
arg_type == 'refptr_vec_same_byref_const' or arg_type == 'refptr_vec_diff_byref_const' or \
|
||||||
arg_type == 'ownptr_vec_same_byref_const' or arg_type == 'ownptr_vec_diff_byref_const' or \
|
arg_type == 'ownptr_vec_same_byref_const' or arg_type == 'ownptr_vec_diff_byref_const' or \
|
||||||
arg_type == 'rawptr_vec_same_byref_const' or arg_type == 'rawptr_vec_diff_byref_const':
|
arg_type == 'rawptr_vec_same_byref_const' or arg_type == 'rawptr_vec_diff_byref_const':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n DCHECK('+arg_name+'Count == 0 || '+arg_name+');'\
|
'\n DCHECK('+arg_name+'Count == 0 || '+arg_name+');'\
|
||||||
'\n if ('+arg_name+'Count > 0 && !'+arg_name+')'\
|
'\n if ('+arg_name+'Count > 0 && !'+arg_name+') {'\
|
||||||
'\n return'+retval_default+';'
|
'\n return'+retval_default+';'\
|
||||||
|
'\n }'
|
||||||
|
|
||||||
# check index params
|
# check index params
|
||||||
index_params = arg.parent.get_attrib_list('index_param')
|
index_params = arg.parent.get_attrib_list('index_param')
|
||||||
if not index_params is None and arg_name in index_params:
|
if not index_params is None and arg_name in index_params:
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n DCHECK_GE('+arg_name+', 0);'\
|
'\n DCHECK_GE('+arg_name+', 0);'\
|
||||||
'\n if ('+arg_name+' < 0)'\
|
'\n if ('+arg_name+' < 0) {'\
|
||||||
'\n return'+retval_default+';'
|
'\n return'+retval_default+';'\
|
||||||
|
'\n }'
|
||||||
|
|
||||||
if len(optional) > 0:
|
if len(optional) > 0:
|
||||||
# Wrap the comment at 80 characters.
|
# Wrap the comment at 80 characters.
|
||||||
@ -193,15 +198,17 @@ def make_cpptoc_function_impl_new(cls, name, func, defined_names, base_scoped):
|
|||||||
struct_type = arg.get_type().get_type()
|
struct_type = arg.get_type().get_type()
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n '+struct_type+' '+arg_name+'Obj;'\
|
'\n '+struct_type+' '+arg_name+'Obj;'\
|
||||||
'\n if ('+arg_name+')'\
|
'\n if ('+arg_name+') {'\
|
||||||
'\n '+arg_name+'Obj.Set(*'+arg_name+', false);'
|
'\n '+arg_name+'Obj.Set(*'+arg_name+', false);'\
|
||||||
|
'\n }'
|
||||||
params.append(arg_name + 'Obj')
|
params.append(arg_name + 'Obj')
|
||||||
elif arg_type == 'struct_byref':
|
elif arg_type == 'struct_byref':
|
||||||
struct_type = arg.get_type().get_type()
|
struct_type = arg.get_type().get_type()
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n '+struct_type+' '+arg_name+'Obj;'\
|
'\n '+struct_type+' '+arg_name+'Obj;'\
|
||||||
'\n if ('+arg_name+')'\
|
'\n if ('+arg_name+') {'\
|
||||||
'\n '+arg_name+'Obj.AttachTo(*'+arg_name+');'
|
'\n '+arg_name+'Obj.AttachTo(*'+arg_name+');'\
|
||||||
|
'\n }'
|
||||||
params.append(arg_name + 'Obj')
|
params.append(arg_name + 'Obj')
|
||||||
elif arg_type == 'string_byref_const':
|
elif arg_type == 'string_byref_const':
|
||||||
params.append('CefString(' + arg_name + ')')
|
params.append('CefString(' + arg_name + ')')
|
||||||
@ -237,8 +244,9 @@ def make_cpptoc_function_impl_new(cls, name, func, defined_names, base_scoped):
|
|||||||
assign = ptr_class + 'CToCpp::Wrap(*' + arg_name + ')'
|
assign = ptr_class + 'CToCpp::Wrap(*' + arg_name + ')'
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n CefRefPtr<'+ptr_class+'> '+arg_name+'Ptr;'\
|
'\n CefRefPtr<'+ptr_class+'> '+arg_name+'Ptr;'\
|
||||||
'\n if ('+arg_name+' && *'+arg_name+')'\
|
'\n if ('+arg_name+' && *'+arg_name+') {'\
|
||||||
'\n '+arg_name+'Ptr = '+assign+';'\
|
'\n '+arg_name+'Ptr = '+assign+';'\
|
||||||
|
'\n }'\
|
||||||
'\n '+ptr_class+'* '+arg_name+'Orig = '+arg_name+'Ptr.get();'
|
'\n '+ptr_class+'* '+arg_name+'Orig = '+arg_name+'Ptr.get();'
|
||||||
params.append(arg_name + 'Ptr')
|
params.append(arg_name + 'Ptr')
|
||||||
elif arg_type == 'string_vec_byref' or arg_type == 'string_vec_byref_const':
|
elif arg_type == 'string_vec_byref' or arg_type == 'string_vec_byref_const':
|
||||||
@ -358,16 +366,19 @@ def make_cpptoc_function_impl_new(cls, name, func, defined_names, base_scoped):
|
|||||||
|
|
||||||
if arg_type == 'simple_byref':
|
if arg_type == 'simple_byref':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n if ('+arg_name+')'\
|
'\n if ('+arg_name+') {'\
|
||||||
'\n *'+arg_name+' = '+arg_name+'Val;'
|
'\n *'+arg_name+' = '+arg_name+'Val;'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'bool_byref' or arg_type == 'bool_byaddr':
|
elif arg_type == 'bool_byref' or arg_type == 'bool_byaddr':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n if ('+arg_name+')'\
|
'\n if ('+arg_name+') {'\
|
||||||
'\n *'+arg_name+' = '+arg_name+'Bool?true:false;'
|
'\n *'+arg_name+' = '+arg_name+'Bool?true:false;'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'struct_byref':
|
elif arg_type == 'struct_byref':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n if ('+arg_name+')'\
|
'\n if ('+arg_name+') {'\
|
||||||
'\n '+arg_name+'Obj.DetachTo(*'+arg_name+');'
|
'\n '+arg_name+'Obj.DetachTo(*'+arg_name+');'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'refptr_same_byref' or arg_type == 'refptr_diff_byref':
|
elif arg_type == 'refptr_same_byref' or arg_type == 'refptr_diff_byref':
|
||||||
ptr_class = arg.get_type().get_ptr_type()
|
ptr_class = arg.get_type().get_ptr_type()
|
||||||
if arg_type == 'refptr_same_byref':
|
if arg_type == 'refptr_same_byref':
|
||||||
|
@ -94,9 +94,9 @@ def make_ctocpp_function_impl_new(clsname, name, func, base_scoped):
|
|||||||
|
|
||||||
if isinstance(func, obj_function_virtual):
|
if isinstance(func, obj_function_virtual):
|
||||||
# add the structure size check
|
# add the structure size check
|
||||||
result += '\n if (CEF_MEMBER_MISSING(_struct, ' + func.get_capi_name(
|
result += '\n if (CEF_MEMBER_MISSING(_struct, ' + func.get_capi_name() + ')) {'\
|
||||||
) + '))'
|
'\n return' + retval_default + ';\n'\
|
||||||
result += '\n return' + retval_default + ';\n'
|
'\n }\n'
|
||||||
|
|
||||||
if len(invalid) > 0:
|
if len(invalid) > 0:
|
||||||
notify(name + ' could not be autogenerated')
|
notify(name + ' could not be autogenerated')
|
||||||
@ -131,32 +131,37 @@ def make_ctocpp_function_impl_new(clsname, name, func, base_scoped):
|
|||||||
if arg_type == 'simple_byaddr' or arg_type == 'bool_byaddr':
|
if arg_type == 'simple_byaddr' or arg_type == 'bool_byaddr':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n DCHECK('+arg_name+');'\
|
'\n DCHECK('+arg_name+');'\
|
||||||
'\n if (!'+arg_name+')'\
|
'\n if (!'+arg_name+') {'\
|
||||||
'\n return'+retval_default+';'
|
'\n return'+retval_default+';'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'refptr_same' or arg_type == 'refptr_diff' or \
|
elif arg_type == 'refptr_same' or arg_type == 'refptr_diff' or \
|
||||||
arg_type == 'ownptr_same' or arg_type == 'ownptr_diff':
|
arg_type == 'ownptr_same' or arg_type == 'ownptr_diff':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n DCHECK('+arg_name+'.get());'\
|
'\n DCHECK('+arg_name+'.get());'\
|
||||||
'\n if (!'+arg_name+'.get())'\
|
'\n if (!'+arg_name+'.get()) {'\
|
||||||
'\n return'+retval_default+';'
|
'\n return'+retval_default+';'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'rawptr_same' or arg_type == 'rawptr_diff':
|
elif arg_type == 'rawptr_same' or arg_type == 'rawptr_diff':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n DCHECK('+arg_name+');'\
|
'\n DCHECK('+arg_name+');'\
|
||||||
'\n if (!'+arg_name+')'\
|
'\n if (!'+arg_name+') {'\
|
||||||
'\n return'+retval_default+';'
|
'\n return'+retval_default+';'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'string_byref_const':
|
elif arg_type == 'string_byref_const':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n DCHECK(!'+arg_name+'.empty());'\
|
'\n DCHECK(!'+arg_name+'.empty());'\
|
||||||
'\n if ('+arg_name+'.empty())'\
|
'\n if ('+arg_name+'.empty()) {'\
|
||||||
'\n return'+retval_default+';'
|
'\n return'+retval_default+';'\
|
||||||
|
'\n }'
|
||||||
|
|
||||||
# check index params
|
# check index params
|
||||||
index_params = arg.parent.get_attrib_list('index_param')
|
index_params = arg.parent.get_attrib_list('index_param')
|
||||||
if not index_params is None and arg_name in index_params:
|
if not index_params is None and arg_name in index_params:
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n DCHECK_GE('+arg_name+', 0);'\
|
'\n DCHECK_GE('+arg_name+', 0);'\
|
||||||
'\n if ('+arg_name+' < 0)'\
|
'\n if ('+arg_name+' < 0) {'\
|
||||||
'\n return'+retval_default+';'
|
'\n return'+retval_default+';'\
|
||||||
|
'\n }'
|
||||||
|
|
||||||
if len(optional) > 0:
|
if len(optional) > 0:
|
||||||
# Wrap the comment at 80 characters.
|
# Wrap the comment at 80 characters.
|
||||||
@ -232,30 +237,34 @@ def make_ctocpp_function_impl_new(clsname, name, func, base_scoped):
|
|||||||
assign = ptr_class + 'CppToC::Wrap(' + arg_name + ')'
|
assign = ptr_class + 'CppToC::Wrap(' + arg_name + ')'
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n '+ptr_struct+'* '+arg_name+'Struct = NULL;'\
|
'\n '+ptr_struct+'* '+arg_name+'Struct = NULL;'\
|
||||||
'\n if ('+arg_name+'.get())'\
|
'\n if ('+arg_name+'.get()) {'\
|
||||||
'\n '+arg_name+'Struct = '+assign+';'\
|
'\n '+arg_name+'Struct = '+assign+';'\
|
||||||
|
'\n }'\
|
||||||
'\n '+ptr_struct+'* '+arg_name+'Orig = '+arg_name+'Struct;'
|
'\n '+ptr_struct+'* '+arg_name+'Orig = '+arg_name+'Struct;'
|
||||||
params.append('&' + arg_name + 'Struct')
|
params.append('&' + arg_name + 'Struct')
|
||||||
elif arg_type == 'string_vec_byref' or arg_type == 'string_vec_byref_const':
|
elif arg_type == 'string_vec_byref' or arg_type == 'string_vec_byref_const':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n cef_string_list_t '+arg_name+'List = cef_string_list_alloc();'\
|
'\n cef_string_list_t '+arg_name+'List = cef_string_list_alloc();'\
|
||||||
'\n DCHECK('+arg_name+'List);'\
|
'\n DCHECK('+arg_name+'List);'\
|
||||||
'\n if ('+arg_name+'List)'\
|
'\n if ('+arg_name+'List) {'\
|
||||||
'\n transfer_string_list_contents('+arg_name+', '+arg_name+'List);'
|
'\n transfer_string_list_contents('+arg_name+', '+arg_name+'List);'\
|
||||||
|
'\n }'
|
||||||
params.append(arg_name + 'List')
|
params.append(arg_name + 'List')
|
||||||
elif arg_type == 'string_map_single_byref' or arg_type == 'string_map_single_byref_const':
|
elif arg_type == 'string_map_single_byref' or arg_type == 'string_map_single_byref_const':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n cef_string_map_t '+arg_name+'Map = cef_string_map_alloc();'\
|
'\n cef_string_map_t '+arg_name+'Map = cef_string_map_alloc();'\
|
||||||
'\n DCHECK('+arg_name+'Map);'\
|
'\n DCHECK('+arg_name+'Map);'\
|
||||||
'\n if ('+arg_name+'Map)'\
|
'\n if ('+arg_name+'Map) {'\
|
||||||
'\n transfer_string_map_contents('+arg_name+', '+arg_name+'Map);'
|
'\n transfer_string_map_contents('+arg_name+', '+arg_name+'Map);'\
|
||||||
|
'\n }'
|
||||||
params.append(arg_name + 'Map')
|
params.append(arg_name + 'Map')
|
||||||
elif arg_type == 'string_map_multi_byref' or arg_type == 'string_map_multi_byref_const':
|
elif arg_type == 'string_map_multi_byref' or arg_type == 'string_map_multi_byref_const':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n cef_string_multimap_t '+arg_name+'Multimap = cef_string_multimap_alloc();'\
|
'\n cef_string_multimap_t '+arg_name+'Multimap = cef_string_multimap_alloc();'\
|
||||||
'\n DCHECK('+arg_name+'Multimap);'\
|
'\n DCHECK('+arg_name+'Multimap);'\
|
||||||
'\n if ('+arg_name+'Multimap)'\
|
'\n if ('+arg_name+'Multimap) {'\
|
||||||
'\n transfer_string_multimap_contents('+arg_name+', '+arg_name+'Multimap);'
|
'\n transfer_string_multimap_contents('+arg_name+', '+arg_name+'Multimap);'\
|
||||||
|
'\n }'
|
||||||
params.append(arg_name + 'Multimap')
|
params.append(arg_name + 'Multimap')
|
||||||
elif arg_type == 'simple_vec_byref' or arg_type == 'bool_vec_byref' or \
|
elif arg_type == 'simple_vec_byref' or arg_type == 'bool_vec_byref' or \
|
||||||
arg_type == 'refptr_vec_same_byref' or arg_type == 'refptr_vec_diff_byref':
|
arg_type == 'refptr_vec_same_byref' or arg_type == 'refptr_vec_diff_byref':
|
||||||
@ -374,8 +383,9 @@ def make_ctocpp_function_impl_new(clsname, name, func, base_scoped):
|
|||||||
'\n '+arg_name+' = '+arg_name+'Int?true:false;'
|
'\n '+arg_name+' = '+arg_name+'Int?true:false;'
|
||||||
elif arg_type == 'bool_byaddr':
|
elif arg_type == 'bool_byaddr':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n if ('+arg_name+')'\
|
'\n if ('+arg_name+') {'\
|
||||||
'\n *'+arg_name+' = '+arg_name+'Int?true:false;'
|
'\n *'+arg_name+' = '+arg_name+'Int?true:false;'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'refptr_same_byref' or arg_type == 'refptr_diff_byref':
|
elif arg_type == 'refptr_same_byref' or arg_type == 'refptr_diff_byref':
|
||||||
ptr_class = arg.get_type().get_ptr_type()
|
ptr_class = arg.get_type().get_ptr_type()
|
||||||
ptr_struct = arg.get_type().get_result_ptr_type_root()
|
ptr_struct = arg.get_type().get_result_ptr_type_root()
|
||||||
@ -400,8 +410,9 @@ def make_ctocpp_function_impl_new(clsname, name, func, base_scoped):
|
|||||||
'\n }'
|
'\n }'
|
||||||
elif arg_type == 'string_vec_byref_const':
|
elif arg_type == 'string_vec_byref_const':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n if ('+arg_name+'List)'\
|
'\n if ('+arg_name+'List) {'\
|
||||||
'\n cef_string_list_free('+arg_name+'List);'
|
'\n cef_string_list_free('+arg_name+'List);'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'string_map_single_byref':
|
elif arg_type == 'string_map_single_byref':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n if ('+arg_name+'Map) {'\
|
'\n if ('+arg_name+'Map) {'\
|
||||||
@ -411,8 +422,9 @@ def make_ctocpp_function_impl_new(clsname, name, func, base_scoped):
|
|||||||
'\n }'
|
'\n }'
|
||||||
elif arg_type == 'string_map_single_byref_const':
|
elif arg_type == 'string_map_single_byref_const':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n if ('+arg_name+'Map)'\
|
'\n if ('+arg_name+'Map) {'\
|
||||||
'\n cef_string_map_free('+arg_name+'Map);'
|
'\n cef_string_map_free('+arg_name+'Map);'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'string_map_multi_byref':
|
elif arg_type == 'string_map_multi_byref':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n if ('+arg_name+'Multimap) {'\
|
'\n if ('+arg_name+'Multimap) {'\
|
||||||
@ -422,8 +434,9 @@ def make_ctocpp_function_impl_new(clsname, name, func, base_scoped):
|
|||||||
'\n }'
|
'\n }'
|
||||||
elif arg_type == 'string_map_multi_byref_const':
|
elif arg_type == 'string_map_multi_byref_const':
|
||||||
result += comment+\
|
result += comment+\
|
||||||
'\n if ('+arg_name+'Multimap)'\
|
'\n if ('+arg_name+'Multimap) {'\
|
||||||
'\n cef_string_multimap_free('+arg_name+'Multimap);'
|
'\n cef_string_multimap_free('+arg_name+'Multimap);'\
|
||||||
|
'\n }'
|
||||||
elif arg_type == 'simple_vec_byref' or arg_type == 'bool_vec_byref' or \
|
elif arg_type == 'simple_vec_byref' or arg_type == 'bool_vec_byref' or \
|
||||||
arg_type == 'refptr_vec_same_byref' or arg_type == 'refptr_vec_diff_byref':
|
arg_type == 'refptr_vec_same_byref' or arg_type == 'refptr_vec_diff_byref':
|
||||||
count_func = arg.get_attrib_count_func()
|
count_func = arg.get_attrib_count_func()
|
||||||
@ -456,8 +469,9 @@ def make_ctocpp_function_impl_new(clsname, name, func, base_scoped):
|
|||||||
'\n delete '+ptr_class+'CppToC::GetWrapper('+arg_name+'List[i]);'\
|
'\n delete '+ptr_class+'CppToC::GetWrapper('+arg_name+'List[i]);'\
|
||||||
'\n }'\
|
'\n }'\
|
||||||
'\n }'
|
'\n }'
|
||||||
result += '\n if ('+arg_name+'List)'\
|
result += '\n if ('+arg_name+'List) {'\
|
||||||
'\n delete [] '+arg_name+'List;'
|
'\n delete [] '+arg_name+'List;'\
|
||||||
|
'\n }'
|
||||||
|
|
||||||
if len(result) != result_len:
|
if len(result) != result_len:
|
||||||
result += '\n'
|
result += '\n'
|
||||||
|
Reference in New Issue
Block a user