Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech> Reviewed-on: https://git.avroid.tech/Conan/conan_build/pulls/9
51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
#include <stddef.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h> //for EXIT_FAILURE
|
|
#include <locale.h>
|
|
|
|
#if _MSC_VER && _MSC_VER < 1600
|
|
typedef unsigned __int32 uint32_t;
|
|
#else
|
|
#include <stdint.h>
|
|
#endif
|
|
|
|
#include "iconv.h"
|
|
#include "libcharset.h"
|
|
|
|
int main()
|
|
{
|
|
// Test libiconv
|
|
char in_bytes[4] = {'c', 'i', 'a', 'o'};
|
|
char *in_buffer = (char *)&in_bytes;
|
|
size_t in_bytes_left = sizeof(char) * 4;
|
|
uint32_t ou_bytes[4] = {(uint32_t)-1, (uint32_t)-1, (uint32_t)-1, (uint32_t)-1};
|
|
size_t ou_bytes_left = sizeof(uint32_t) * 4;
|
|
char *ou_buffer = (char *)&ou_bytes;
|
|
iconv_t context;
|
|
size_t rv;
|
|
|
|
context = iconv_open("UCS-4-INTERNAL", "US-ASCII");
|
|
if ((iconv_t)(-1) == context)
|
|
{
|
|
fprintf(stderr, "iconv_open failed\n");
|
|
return EXIT_FAILURE;
|
|
}
|
|
|
|
rv = iconv(context, &in_buffer, &in_bytes_left, &ou_buffer, &ou_bytes_left);
|
|
if ((size_t)(-1) == rv)
|
|
{
|
|
fprintf(stderr, "icon failed\n");
|
|
return EXIT_FAILURE;
|
|
}
|
|
|
|
printf("retval libiconv: %lu %u %u %u %u\n", rv, ou_bytes[0], ou_bytes[1], ou_bytes[2], ou_bytes[3]);
|
|
|
|
iconv_close(context);
|
|
|
|
// Test libcharset
|
|
setlocale(LC_ALL, "");
|
|
printf("retval libcharset: %s\n", locale_charset());
|
|
|
|
return EXIT_SUCCESS;
|
|
}
|