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