• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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