aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/replxx/src/conversion.hxx
blob: 1cb2d450d99961c6940c9fb9a574dba754b6f9ab (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 REPLXX_CONVERSION_HXX_INCLUDED
#define REPLXX_CONVERSION_HXX_INCLUDED 1

namespace replxx {

typedef unsigned char char8_t;

typedef enum {
	conversionOK,    /* conversion successful */
	sourceExhausted, /* partial character in source, but hit end */
	targetExhausted, /* insuff. room in target for conversion */
	sourceIllegal    /* source sequence is illegal/malformed */
} ConversionResult;

ConversionResult copyString8to32( char32_t* dst, int dstSize, int& dstCount, char const* src );
ConversionResult copyString8to32( char32_t* dst, int dstSize, int& dstCount, char8_t const* src );
void copyString32to8( char* dst, int dstSize, char32_t const* src, int srcSize, int* dstCount = nullptr );

namespace locale {
extern bool is8BitEncoding;
}

}

#endif