mirror of
https://github.com/encounter/SDL.git
synced 2025-12-17 00:47:15 +00:00
os2: add port files for SDL2-2.0.4 from Andrey Vasilkin
only geniconv/iconv.h (was from LGPL libiconv) is replaced with a generic minimal iconv.h based on public knowledge.
This commit is contained in:
59
src/core/os2/geniconv/geniconv.h
Normal file
59
src/core/os2/geniconv/geniconv.h
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
Universal iconv implementation for OS/2.
|
||||
|
||||
Andrey Vasilkin, 2016.
|
||||
*/
|
||||
|
||||
#ifndef GENICONV_H
|
||||
#define GENICONV_H
|
||||
|
||||
#include <iconv.h>
|
||||
|
||||
#ifdef iconv_open
|
||||
#undef iconv_open
|
||||
#endif
|
||||
#define iconv_open libiconv_open
|
||||
|
||||
#ifdef iconv
|
||||
#undef iconv
|
||||
#endif
|
||||
#define iconv libiconv
|
||||
|
||||
#ifdef iconv_close
|
||||
#undef iconv_close
|
||||
#endif
|
||||
#define iconv_close libiconv_close
|
||||
|
||||
#define iconv_clean libiconv_clean
|
||||
|
||||
// Non-standard function for iconv to unload the used dynamic library.
|
||||
void libiconv_clean();
|
||||
|
||||
iconv_t libiconv_open(const char* tocode, const char* fromcode);
|
||||
size_t libiconv(iconv_t cd, char* * inbuf, size_t *inbytesleft,
|
||||
char* * outbuf, size_t *outbytesleft);
|
||||
int libiconv_close(iconv_t cd);
|
||||
|
||||
// System codepage <-> UTF-8.
|
||||
|
||||
// StrUTF8()
|
||||
// Coverts string from system cp. to UTF-8 (fToUTF8 is not 0) or from UTF-8 to
|
||||
// the system cp. (fToUTF8 is 0). Converted ASCIIZ string will be placed at the
|
||||
// buffer pcDst, up to cbDst - 1 (for sys->utf8) or 2 (for utf8->sys) bytes.
|
||||
// Returns the number of bytes written into pcDst, not counting the terminating
|
||||
// 0 byte(s) or -1 on error.
|
||||
int StrUTF8(int fToUTF8, char *pcDst, int cbDst, char *pcSrc, int cbSrc);
|
||||
|
||||
// StrUTF8New()
|
||||
// Coverts string from system cp. to UTF-8 (fToUTF8 is not 0) or from UTF-8 to
|
||||
// the system cp. (fToUTF8 is 0). Memory for the new string is obtained by
|
||||
// using libc malloc().
|
||||
// Returns converted string, terminating two bytes 0 is appended to the result.
|
||||
// Returns null on error.
|
||||
char *StrUTF8New(int fToUTF8, char *pcStr, int cbStr);
|
||||
|
||||
// StrUTF8Free()
|
||||
// Deallocates the memory block located by StrUTF8New() (just libc free()).
|
||||
void StrUTF8Free(char *pszStr);
|
||||
|
||||
#endif // GENICONV_H
|
||||
Reference in New Issue
Block a user