summaryrefslogtreecommitdiffstats
path: root/src/rcciconv.h
blob: 0070696e57ea97e7daf5be83adbf3c47b5b39a2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef _RCC_ICONV_H
#define _RCC_ICONV_H

#include <iconv.h>

struct rcc_iconv_t {
    iconv_t icnv;
};
typedef struct rcc_iconv_t rcc_iconv_s;

size_t rccIConvInternal(rcc_context ctx, rcc_iconv icnv, const char *buf, size_t len);

/** 
  * Recodes chunk of data.
  *
  * @param icnv is recoding context
  * @param outbuf is preallocated output buffer
  * @param outsize is size of output buffer (striped string will be returned if buffer to small) 
  * @param buf is data for recoding
  * @param size is size of the data
  * @return number of recoded bytes in output buffer or -1 in the case of error
  */
size_t rccIConvRecode(rcc_iconv icnv, char *outbuf, size_t outsize, const char *buf, size_t size);

#endif /* _RCC_ICONV_H */