diff options
Diffstat (limited to 'examples/summaries/unicode_strings.py')
| -rw-r--r-- | examples/summaries/unicode_strings.py | 73 | 
1 files changed, 39 insertions, 34 deletions
| diff --git a/examples/summaries/unicode_strings.py b/examples/summaries/unicode_strings.py index 319433ff3c15..a9ba15a10256 100644 --- a/examples/summaries/unicode_strings.py +++ b/examples/summaries/unicode_strings.py @@ -11,38 +11,43 @@ License. See LICENSE.TXT for details.  """  import lldb -def utf8_summary(value,unused): -	pointer = value.GetChildMemberWithName("first").GetValueAsUnsigned(0) -	length = value.GetChildMemberWithName("second").GetValueAsUnsigned(0) -	if pointer == 0: -		return False -	if length == 0: -		return '""' -	error = lldb.SBError() -	string_data = value.process.ReadMemory(pointer, length, error) -	return '"%s"' % (string_data) # utf8 is safe to emit as-is on OSX - -def utf16_summary(value,unused): -	pointer = value.GetChildMemberWithName("first").GetValueAsUnsigned(0) -	length = value.GetChildMemberWithName("second").GetValueAsUnsigned(0) -	# assume length is in bytes - if in UTF16 chars, just multiply by 2 -	if pointer == 0: -		return False -	if length == 0: -		return '""' -	error = lldb.SBError() -	string_data = value.process.ReadMemory(pointer, length, error) -	return '"%s"' % (string_data.decode('utf-16').encode('utf-8')) # utf8 is safe to emit as-is on OSX - -def utf32_summary(value,unused): -	pointer = value.GetChildMemberWithName("first").GetValueAsUnsigned(0) -	length = value.GetChildMemberWithName("second").GetValueAsUnsigned(0) -	# assume length is in bytes - if in UTF32 chars, just multiply by 4 -	if pointer == 0: -		return False -	if length == 0: -		return '""' -	error = lldb.SBError() -	string_data = value.process.ReadMemory(pointer, length, error) -	return '"%s"' % (string_data.decode('utf-32').encode('utf-8')) # utf8 is safe to emit as-is on OSX + +def utf8_summary(value, unused): +    pointer = value.GetChildMemberWithName("first").GetValueAsUnsigned(0) +    length = value.GetChildMemberWithName("second").GetValueAsUnsigned(0) +    if pointer == 0: +        return False +    if length == 0: +        return '""' +    error = lldb.SBError() +    string_data = value.process.ReadMemory(pointer, length, error) +    return '"%s"' % (string_data)  # utf8 is safe to emit as-is on OSX + + +def utf16_summary(value, unused): +    pointer = value.GetChildMemberWithName("first").GetValueAsUnsigned(0) +    length = value.GetChildMemberWithName("second").GetValueAsUnsigned(0) +    # assume length is in bytes - if in UTF16 chars, just multiply by 2 +    if pointer == 0: +        return False +    if length == 0: +        return '""' +    error = lldb.SBError() +    string_data = value.process.ReadMemory(pointer, length, error) +    # utf8 is safe to emit as-is on OSX +    return '"%s"' % (string_data.decode('utf-16').encode('utf-8')) + + +def utf32_summary(value, unused): +    pointer = value.GetChildMemberWithName("first").GetValueAsUnsigned(0) +    length = value.GetChildMemberWithName("second").GetValueAsUnsigned(0) +    # assume length is in bytes - if in UTF32 chars, just multiply by 4 +    if pointer == 0: +        return False +    if length == 0: +        return '""' +    error = lldb.SBError() +    string_data = value.process.ReadMemory(pointer, length, error) +    # utf8 is safe to emit as-is on OSX +    return '"%s"' % (string_data.decode('utf-32').encode('utf-8')) | 
