## stringprep stringprep |

## Types and Values

#define | IDNAPI
#define | STRINGPREP_VERSION
enum | Stringprep_rc
enum | Stringprep_profile_flags
enum | Stringprep_profile_steps
#define | STRINGPREP_MAX_MAP_CHARS

## Description

## Functions

## Types and Values

### IDNAPI

    #define             IDNAPI

### STRINGPREP_VERSION

    # define STRINGPREP_VERSION "1.34"

String defined via CPP denoting the header file version number. Used together with `stringprep_check_version()` to verify header file and run-time library consistency.

### enum Stringprep_rc

Enumerated return codes of `stringprep()`, `stringprep_profile()` functions (and macros using those functions). The value 0 is guaranteed to always correspond to success.

#### Members

STRINGPREP_OK | Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. |
STRINGPREP_CONTAINS_UNASSIGNED | String contain unassigned Unicode code points, which is forbidden by the profile. |
STRINGPREP_CONTAINS_PROHIBITED | String contain code points prohibited by the profile. |
STRINGPREP_BIDI_BOTH_L_AND_RAL | String contain code points with conflicting bidirection category. |
STRINGPREP_BIDI_LEADTRAIL_NOT_RAL | Leading and trailing character in string not of proper bidirectional category. |
STRINGPREP_BIDI_CONTAINS_PROHIBITED | Contains prohibited code points detected by bidirectional code. |
STRINGPREP_TOO_SMALL_BUFFER | Buffer handed to function was too small. This usually indicate a problem in the calling application. |
STRINGPREP_PROFILE_ERROR | The stringprep profile was inconsistent. This usually indicate an internal error in the library. |
STRINGPREP_FLAG_ERROR | The supplied flag conflicted with profile. This usually indicate a problem in the calling application. |
STRINGPREP_UNKNOWN_PROFILE | The supplied profile name was not known to the library. |
STRINGPREP_ICONV_ERROR | Could not convert string in locale encoding. |
STRINGPREP_NFKC_FAILED | The Unicode NFKC operation failed. This usually indicate an internal error in the library. |
STRINGPREP_MALLOC_ERROR | The `malloc()` was out of memory. This is usually a fatal error. |

### enum Stringprep_profile_flags

Stringprep profile flags.

#### Members

STRINGPREP_NO_NFKC | Disable the NFKC normalization, as well as selecting the non-NFKC case folding tables. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations. |
STRINGPREP_NO_BIDI | Disable the BIDI step. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations. |
STRINGPREP_NO_UNASSIGNED | Make the library return with an error if string contains unassigned characters according to profile. |

### enum Stringprep_profile_steps

Various steps in the stringprep algorithm. You really want to study the source code to understand this one. Only useful if you want to add another profile.

#### Members

STRINGPREP_NFKC | The NFKC step. |
STRINGPREP_BIDI | The BIDI step. |
STRINGPREP_MAP_TABLE | The MAP step. |
STRINGPREP_UNASSIGNED_TABLE | The Unassigned step. |
STRINGPREP_PROHIBIT_TABLE | The Prohibited step. |
STRINGPREP_BIDI_PROHIBIT_TABLE | The BIDI-Prohibited step. |
STRINGPREP_BIDI_RAL_TABLE | The BIDI-RAL step. |
STRINGPREP_BIDI_L_TABLE | The BIDI-L step. |

### STRINGPREP_MAX_MAP_CHARS

    # define STRINGPREP_MAX_MAP_CHARS 4

Maximum number of code points that can replace a single code point, during stringprep mapping.