1 /*
2  * This file has been modified for the cdrkit suite.
3  *
4  * The behaviour and appearence of the program code below can differ to a major
5  * extent from the version distributed by the original author(s).
6  *
7  * For details, see Changelog file distributed with the cdrkit package. If you
8  * received this file from another source then ask the distributing person for
9  * a log of modifications.
10  *
11  */
12 
13 /* @(#)unls.h	1.6 05/04/21 Copyright 2000-2005 J. Schilling */
14 /*
15  *	Definitions fur users of libunls
16  *
17  *	Copyright (c) 2000-2005 J. Schilling
18  */
19 /*
20  * This program is free software; you can redistribute it and/or modify
21  * it under the terms of the GNU General Public License version 2
22  * as published by the Free Software Foundation.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License along with
30  * this program; see the file COPYING.  If not, write to the Free Software
31  * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
32  */
33 
34 #ifndef _UNLS_H
35 #define	_UNLS_H
36 
37 #ifndef _MCONFIG_H
38 #include <mconfig.h>
39 #endif
40 #ifndef _PROTOTYP_H
41 #include <prototyp.h>
42 #endif
43 
44 #ifdef USE_ICONV
45 #include <iconv.h>
46 #endif
47 
48 #ifdef	__cplusplus
49 extern "C" {
50 #endif
51 
52 struct unls_unicode {
53 	unsigned char	unls_low;		/* Low Byte */
54 	unsigned char	unls_high;		/* High Byte */
55 };
56 
57 struct unls_table {
58 	char		*unls_name;		/* UNLS charset name	*/
59 	unsigned char 	**unls_uni2cs;		/* Unicode -> Charset	*/
60 	struct unls_unicode *unls_cs2uni;	/* Charset -> Unicode	*/
61 	struct unls_table *unls_next;		/* Next table		*/
62 #ifdef USE_ICONV
63     iconv_t iconv_d;
64 #endif
65 };
66 
67 extern int		init_unls(void);
68 extern int		register_unls(struct unls_table *);
69 extern int		unregister_unls(struct unls_table *);
70 extern struct unls_table *find_unls(char *);
71 extern void		list_unls(void);
72 extern struct unls_table *load_unls(char *);
73 extern void 		unload_unls(struct unls_table *);
74 extern struct unls_table *load_unls_default(void);
75 extern int		init_unls_file(char * name);
76 
77 #ifdef USE_ICONV
78 extern int             init_nls_iconv(char * name);
79 #endif
80 
81 #ifdef	__cplusplus
82 }
83 #endif
84 
85 #endif	/* _UNLS_H */
86