]> git.ipfire.org Git - thirdparty/glibc.git/blame - locale/programs/charset.h
Update.
[thirdparty/glibc.git] / locale / programs / charset.h
CommitLineData
c84142e8 1/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
6d52618b 2 This file is part of the GNU C Library.
c84142e8 3 Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
19bc17a9 4
6d52618b
UD
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public License as
7 published by the Free Software Foundation; either version 2 of the
8 License, or (at your option) any later version.
19bc17a9 9
6d52618b
UD
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
19bc17a9 14
6d52618b
UD
15 You should have received a copy of the GNU Library General Public
16 License along with the GNU C Library; see the file COPYING.LIB. If not,
17 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. */
19bc17a9
RM
19
20#ifndef _CHARSET_H
21#define _CHARSET_H
22
23#include <obstack.h>
24
25#include "simple-hash.h"
26#include "linereader.h"
27
28
75cd5204
RM
29struct width_rule
30{
31 unsigned int from;
32 unsigned int to;
33 unsigned int width;
34};
35
36
19bc17a9
RM
37struct charset_t
38{
39 const char *code_set_name;
40 int mb_cur_min;
41 int mb_cur_max;
75cd5204
RM
42
43 struct width_rule *width_rules;
44 size_t nwidth_rules;
45 size_t nwidth_rules_max;
ba1ffaa1 46 unsigned int width_default;
19bc17a9
RM
47
48 struct obstack mem_pool;
49 hash_table char_table;
50};
51
52
53/* We need one value to mark the error case. Let's use 0xffffffff.
54 I.e., it is placed in the last page of ISO 10646. For now only the
55 first is used and we have plenty of room. */
7a12c6bb 56#define ILLEGAL_CHAR_VALUE ((wchar_t) 0xffffffffu)
19bc17a9
RM
57
58
c84142e8
UD
59/* Declared in localedef.c. */
60extern int be_quiet;
61
19bc17a9
RM
62/* Prototypes for charmap handling functions. */
63struct charset_t *charmap_read (const char *filename);
64
6d52618b 65/* Prototypes for function to insert new character. */
19bc17a9
RM
66void charset_new_char (struct linereader *lr, struct charset_t *cs, int bytes,
67 unsigned int value, const char *from, const char *to);
68
69void charset_new_unicode (struct linereader *lr, struct charset_t *cs,
70 int bytes, unsigned int value, const char *from,
71 const char *to);
72
73unsigned int charset_find_value (const struct charset_t *__cs,
74 const char *__name, size_t __len);
75
76#endif /* charset.h */