1 /* 2 * Transcoding definitions for CUPS. 3 * 4 * Copyright 2007-2011 by Apple Inc. 5 * Copyright 1997-2006 by Easy Software Products. 6 * 7 * Licensed under Apache License v2.0. See the file "LICENSE" for more information. 8 */ 9 10 #ifndef _CUPS_TRANSCODE_H_ 11 # define _CUPS_TRANSCODE_H_ 12 13 /* 14 * Include necessary headers... 15 */ 16 17 # include "language.h" 18 19 # ifdef __cplusplus 20 extern "C" { 21 # endif /* __cplusplus */ 22 23 24 /* 25 * Constants... 26 */ 27 28 # define CUPS_MAX_USTRING 8192 /* Max size of Unicode string */ 29 30 31 /* 32 * Types... 33 */ 34 35 typedef unsigned char cups_utf8_t; /* UTF-8 Unicode/ISO-10646 unit */ 36 typedef unsigned long cups_utf32_t; /* UTF-32 Unicode/ISO-10646 unit */ 37 typedef unsigned short cups_ucs2_t; /* UCS-2 Unicode/ISO-10646 unit */ 38 typedef unsigned long cups_ucs4_t; /* UCS-4 Unicode/ISO-10646 unit */ 39 typedef unsigned char cups_sbcs_t; /* SBCS Legacy 8-bit unit */ 40 typedef unsigned short cups_dbcs_t; /* DBCS Legacy 16-bit unit */ 41 typedef unsigned long cups_vbcs_t; /* VBCS Legacy 32-bit unit */ 42 /* EUC uses 8, 16, 24, 32-bit */ 43 44 45 /* 46 * Prototypes... 47 */ 48 49 extern int cupsCharsetToUTF8(cups_utf8_t *dest, 50 const char *src, 51 const int maxout, 52 const cups_encoding_t encoding) _CUPS_API_1_2; 53 extern int cupsUTF8ToCharset(char *dest, 54 const cups_utf8_t *src, 55 const int maxout, 56 const cups_encoding_t encoding) _CUPS_API_1_2; 57 extern int cupsUTF8ToUTF32(cups_utf32_t *dest, 58 const cups_utf8_t *src, 59 const int maxout) _CUPS_API_1_2; 60 extern int cupsUTF32ToUTF8(cups_utf8_t *dest, 61 const cups_utf32_t *src, 62 const int maxout) _CUPS_API_1_2; 63 64 # ifdef __cplusplus 65 } 66 # endif /* __cplusplus */ 67 68 #endif /* !_CUPS_TRANSCODE_H_ */ 69