Rhino C++ API  8.14
Public Attributes | Static Public Attributes | List of all members
ON_UnicodeErrorParameters Struct Reference

#include <opennurbs_unicode.h>

Public Attributes

ON__UINT32 m_error_code_point
 
unsigned int m_error_mask
 
unsigned int m_error_status
 

Static Public Attributes

static const ON_UnicodeErrorParameters FailOnErrors
 m_error_status = 0, m_error_mask = 0, m_error_code_point = ON_UnicodeCodePoint::ON_ReplacementCharacter More...
 
static const ON_UnicodeErrorParameters MaskErrors
 m_error_status = 0, m_error_mask = 0xFFFFFFFF, m_error_code_point = ON_UnicodeCodePoint::ON_ReplacementCharacter More...
 

Member Data Documentation

◆ FailOnErrors

const ON_UnicodeErrorParameters ON_UnicodeErrorParameters::FailOnErrors
static

m_error_status = 0, m_error_mask = 0, m_error_code_point = ON_UnicodeCodePoint::ON_ReplacementCharacter

◆ m_error_code_point

ON__UINT32 ON_UnicodeErrorParameters::m_error_code_point

Unicode code point value to use in when masking type 16 errors. If 0 == (error_mask & 16), then this parameter is ignored. ON_UnicodeCodePoint::ON_ReplacementCharacter (U+FFFD) is a popular choice for the m_error_code_point value.

◆ m_error_mask

unsigned int ON_UnicodeErrorParameters::m_error_mask

If 0 != (error_mask & 4), then type 4 errors are masked. If 0 != (error_mask & 8), then type 8 errors are masked. If 0 != (error_mask & 16) and m_error_code_point is a valid unicode code point value, then type 16 errors are masked.

◆ m_error_status

unsigned int ON_UnicodeErrorParameters::m_error_status

If an error occurs, then bits of error_status are set to indicate what type of error occurred.

Error types: 1: The input parameters were invalid. This error cannot be masked.

2: The output buffer was not large enough to hold the converted string. As much conversion as possible is performed in this case and the error cannot be masked.

4: When parsing a UTF-8 or UTF-32 string, the values of two consecutive encoding sequences formed a valid UTF-16 surrogate pair.

This error is masked if 0 != (4 & m_error_mask). If the error is masked, then the surrogate pair is decoded, the value of the resulting unicode code point is used, and parsing continues.

8: An overlong UTF-8 encoding sequence was encountered and the value of the overlong sUTF-8 sequence was a valid unicode code point.

This error is masked if 0 != (8 & m_error_mask). If the error is masked, then the unicode code point is used and parsing continues.

16: An illegal UTF-8, UTF-16 or UTF-32 sequence occurred, or an unsupported or invalid Windows code page value,
or an invalid unicode code point value resulted from decoding a UTF-8 sequence.

This error is masked if 0 != (16 & m_error_mask). If the error is masked and the value of m_error_code_point is a valid unicode code point, then m_error_code_point is used and parsing continues.

◆ MaskErrors

const ON_UnicodeErrorParameters ON_UnicodeErrorParameters::MaskErrors
static

m_error_status = 0, m_error_mask = 0xFFFFFFFF, m_error_code_point = ON_UnicodeCodePoint::ON_ReplacementCharacter