Error Handling
MISC API

Error handling of the m17n library. More...

Collaboration diagram for Error Handling:

## Enumerations

enum

MErrorCode {
MERROR_NONE ,
MERROR_OBJECT ,
MERROR_SYMBOL ,
MERROR_MTEXT ,
MERROR_TEXTPROP ,
MERROR_CHAR ,
MERROR_CHARTABLE ,
MERROR_CHARSET ,
MERROR_CODING ,
MERROR_RANGE ,
MERROR_LANGUAGE ,
MERROR_LOCALE ,
MERROR_PLIST ,
MERROR_MISC ,
MERROR_WIN ,
MERROR_X ,
MERROR_FRAME ,
MERROR_FACE ,
MERROR_DRAW ,
MERROR_FLT ,
MERROR_FONT ,
MERROR_FONTSET ,
MERROR_FONT_OTF ,
MERROR_FONT_X ,
MERROR_FONT_FT ,
MERROR_IM ,
MERROR_DB ,
MERROR_IO ,
MERROR_DEBUG ,
MERROR_MEMORY ,
MERROR_GD ,
MERROR_MAX
}

| Enumeration for error code of the m17n library. More...

## Variables

int | merror_code
| External variable to hold error code of the m17n library. More...
void(* | m17n_memory_full_handler )(enum MErrorCode err)
| Memory allocation error handler. More...

## Detailed Description

Error handling of the m17n library.

There are two types of errors that may happen in a function of the m17n library.

The first type is argument errors. When a library function is called with invalid arguments, it returns a value that indicates error and at the same time sets the external variable merror_code to a non-zero integer.

The second type is memory allocation errors. When the required amount of memory is not available on the system, m17n library functions call a function pointed to by the external variable `m17n_memory_full_handler`. The default value of the variable is a pointer to the default_error_handle() function, which just calls `exit()`.

## Enumeration Type Documentation

## MErrorCode

enum MErrorCode

Enumeration for error code of the m17n library.

Enumeration for error code of the m17n library.

When a library function is called with an invalid argument, it sets the external variable merror_code to one of these values. All the error codes are positive integers.

When a memory allocation error happens, the function pointed to by the external variable m17n_memory_full_handler is called with one of these values as an argument.

Enumerator
MERROR_NONE |
MERROR_OBJECT |
MERROR_SYMBOL |
MERROR_MTEXT |
MERROR_TEXTPROP |
MERROR_CHAR |
MERROR_CHARTABLE |
MERROR_CHARSET |
MERROR_CODING |
MERROR_RANGE |
MERROR_LANGUAGE |
MERROR_LOCALE |
MERROR_PLIST |
MERROR_MISC |
MERROR_WIN |
MERROR_X |
MERROR_FRAME |
MERROR_FACE |
MERROR_DRAW |
MERROR_FLT |
MERROR_FONT |
MERROR_FONTSET |
MERROR_FONT_OTF |
MERROR_FONT_X |
MERROR_FONT_FT |
MERROR_IM |
MERROR_DB |
MERROR_IO |
MERROR_DEBUG |
MERROR_MEMORY |
MERROR_GD |
MERROR_MAX |

## Variable Documentation

## merror_code

int merror_code

External variable to hold error code of the m17n library.

The external variable merror_code holds an error code of the m17n library. When a library function is called with an invalid argument, it sets this variable to one of `enum` MErrorCode.

This variable initially has the value 0.

## m17n_memory_full_handler

void(* m17n_memory_full_handler) (enum MErrorCode err) | ( | enum MErrorCode | err | ) |

Memory allocation error handler.

The external variable m17n_memory_full_handler holds a pointer to the function to call when a library function failed to allocate memory. err is one of `enum` MErrorCode indicating in which function the error occurred.

This variable initially points a function that simply calls the `exit` () function with err as an argument.

An application program that needs a different error handling can change this variable to point a proper function.