error

error — Functions for allocating and manipulating lu_error structures.

Synopsis

#include <libuser/error.h>

struct              lu_error;
typedef             lu_error_t;
#define             LU_ERROR_CHECK                      (err_p_p)
void                lu_error_new                        (struct lu_error **error,
                                                         enum lu_status code,
                                                         const char *fmt,
                                                         ...);
void                lu_error_free                       (struct lu_error **error);
gboolean            lu_error_is_success                 (enum lu_status status);
gboolean            lu_error_is_warning                 (enum lu_status status);
gboolean            lu_error_is_error                   (enum lu_status status);
const char *        lu_strerror                         (struct lu_error *error);

Description

error.h includes declarations for allocating and manipulating lu_error structures. These structures hold error and status information passed between libuser, its modules, and applications.

A struct lu_error contains an error code and a human-readable, possibly translated error string. The error string uses the encoding specified by the LC_CTYPE locale category.

Details

struct lu_error

struct lu_error;

Error and status information.


lu_error_t

typedef struct lu_error lu_error_t;

Warning

lu_error_t has been deprecated since version 0.57.3 and should not be used in newly-written code. Use struct lu_error directly.

An alias for struct lu_error.


LU_ERROR_CHECK()

#define             LU_ERROR_CHECK(err_p_p)

Checks that the given pointer to a pointer to a struct does not already point to a valid lu_error structure, and calls abort() on failure. This macro is used by many internal functions to check that an error has not already occurred when they are invoked.

err_p_p :

A pointer to a struct lu_error * which will be checked.

lu_error_new ()

void                lu_error_new                        (struct lu_error **error,
                                                         enum lu_status code,
                                                         const char *fmt,
                                                         ...);

Creates a new lu_error structure.

error :

A pointer to a struct lu_error * which will hold the newly-created error structure. It must point to NULL before calling this function.

code :

An error code

fmt :

Format string describing the error. If NULL, a default string is used.

... :

Arguments for fmt, if necessary

lu_error_free ()

void                lu_error_free                       (struct lu_error **error);

Frees an lu_error structure.

error :

A pointer to a pointer to the structure to be freed. The pointer is set to NULL after the error is freed.

lu_error_is_success ()

gboolean            lu_error_is_success                 (enum lu_status status);

Check if the error code held by an error structure is a success code.

status :

An error code

Returns :

a gboolean indicating whether or not the error is a success code.

lu_error_is_warning ()

gboolean            lu_error_is_warning                 (enum lu_status status);

Check if the error code held by an error structure is a warning code.

status :

An error code

Returns :

a gboolean indicating whether or not the error is a warning code.

lu_error_is_error ()

gboolean            lu_error_is_error                   (enum lu_status status);

Check if the error code held by an error structure is an error code.

status :

An error code

Returns :

a gboolean indicating whether or not the error is an error code.

lu_strerror ()

const char *        lu_strerror                         (struct lu_error *error);

Converts an lu_error structure to a string describing the error. If the error->string is NULL, returns a text representation of error->code.

error :

An error

Returns :

An error string valid at least until error is freed.