DragonFly has decided to depend on char being signed, use it.
[dragonfly.git] / lib / libc / locale / _wctrans_local.h
1 /*      $NetBSD: src/lib/libc/locale/_wctrans_local.h,v 1.2 2003/04/06 18:33:23 tshiozak Exp $  */
2 /*      $DragonFly: src/lib/libc/locale/_wctrans_local.h,v 1.1 2005/03/16 06:54:41 joerg Exp $ */
3
4 /*-
5  * Copyright (c)2003 Citrus Project,
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27  * SUCH DAMAGE.
28  */
29
30 #ifndef _WCTRANS_LOCAL_H_
31 #define _WCTRANS_LOCAL_H_
32
33 wint_t  _towctrans_ext(wint_t, _WCTransEntry *);
34 void    _wctrans_init(_RuneLocale *);
35
36 static __inline wint_t
37 _towctrans(wint_t c, _WCTransEntry *te)
38 {
39         if (_RUNE_ISCACHED(c))
40                 return(te->te_cached[(__nbrune_t)c]);
41         else
42                 return(_towctrans_ext(c, te));
43 }
44
45 static __inline struct _WCTransEntry *
46 _wctrans_lower(_RuneLocale *rl)
47 {
48         if (rl->rl_wctrans[_WCTRANS_INDEX_LOWER].te_name == NULL)
49                 _wctrans_init(rl);
50         return(&rl->rl_wctrans[_WCTRANS_INDEX_LOWER]);
51 }
52
53 static __inline struct _WCTransEntry *
54 _wctrans_upper(_RuneLocale *rl)
55 {
56         if (rl->rl_wctrans[_WCTRANS_INDEX_UPPER].te_name == NULL)
57                 _wctrans_init(rl);
58         return(&rl->rl_wctrans[_WCTRANS_INDEX_UPPER]);
59 }
60
61 #endif