lensfun  0.2.5
Macros | Typedefs | Enumerations | Functions
Auxiliary definitions and functions

These functions will help handling basic structures of the library. More...

Macros

#define LF_EXPORT
 This macro expands to an appropiate symbol visibility declaration.
 
#define cbool   int
 C-compatible bool type; don't bother to define Yet Another Boolean Type.
 

Typedefs

typedef char * lfMLstr
 The storage of "multi-language" strings is simple yet flexible, handy and effective. More...
 

Enumerations

enum  lfError { LF_NO_ERROR = 0, LF_WRONG_FORMAT }
 liblensdb error codes: negative codes are -errno, positive are here More...
 

Functions

void lf_free (void *data)
 The basics of memory allocation: never free objects allocated by the library yourselves, instead use this function. More...
 
const char * lf_mlstr_get (const lfMLstr str)
 Get a string corresponding to current locale from a multi-language string. More...
 
lfMLstr lf_mlstr_add (lfMLstr str, const char *lang, const char *trstr)
 Add a new translated string to a multi-language string. More...
 
lfMLstr lf_mlstr_dup (const lfMLstr str)
 Create a complete copy of a multi-language string. More...
 

Detailed Description

These functions will help handling basic structures of the library.

Typedef Documentation

typedef char* lfMLstr

The storage of "multi-language" strings is simple yet flexible, handy and effective.

The first (default) string comes first, terminated by \0 as usual, after that a language code follows, then \0 again, then the translated value and so on. The list terminates as soon as a \0 is encountered instead of next string, e.g. last string in list is terminated with two null characters.

Enumeration Type Documentation

enum lfError

liblensdb error codes: negative codes are -errno, positive are here

Enumerator
LF_NO_ERROR 

No error occured.

LF_WRONG_FORMAT 

Wrong XML data format.

Function Documentation

void lf_free ( void *  data)

The basics of memory allocation: never free objects allocated by the library yourselves, instead use this function.

It is a direct equivalent of standard C free(), however you should not use free() in the event that the library uses a separate heap.

Parameters
dataA pointer to memory to be freed.
Examples:
tfun.cpp, and tmod.cpp.
lfMLstr lf_mlstr_add ( lfMLstr  str,
const char *  lang,
const char *  trstr 
)

Add a new translated string to a multi-language string.

This uses realloc() so returned value may differ from input.

Parameters
strThe string to append to. Can be NULL.
langThe language for the new added string. If NULL, the default string is replaced (the first one in list, without a language designator).
trstrThe translated string
Returns
The reallocated multi-language string. To free a multi-language string, use lf_free().
lfMLstr lf_mlstr_dup ( const lfMLstr  str)

Create a complete copy of a multi-language string.

Parameters
strThe string to create a copy of
Returns
A new allocated multi-language string
const char* lf_mlstr_get ( const lfMLstr  str)

Get a string corresponding to current locale from a multi-language string.

Current locale is determined from LC_MESSAGES category at the time of the call, e.g. if you change LC_MESSAGES at runtime, next calls to lf_mlstr_get() will return the string for the new locale.

Examples:
example.c, and tfun.cpp.