Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / locale.h @ 14

History | View | Annotate | Download (3.91 KB)

1
/*        $NetBSD: locale.h,v 1.24 2013/05/17 14:11:55 joerg Exp $        */
2

    
3
/*
4
 * Copyright (c) 1991, 1993
5
 *        The Regents of the University of California.  All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that the following conditions
9
 * are met:
10
 * 1. Redistributions of source code must retain the above copyright
11
 *    notice, this list of conditions and the following disclaimer.
12
 * 2. Redistributions in binary form must reproduce the above copyright
13
 *    notice, this list of conditions and the following disclaimer in the
14
 *    documentation and/or other materials provided with the distribution.
15
 * 3. Neither the name of the University nor the names of its contributors
16
 *    may be used to endorse or promote products derived from this software
17
 *    without specific prior written permission.
18
 *
19
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29
 * SUCH DAMAGE.
30
 *
31
 *        @(#)locale.h        8.1 (Berkeley) 6/2/93
32
 */
33

    
34
#ifndef _LOCALE_H_
35
#define _LOCALE_H_
36

    
37
#include <sys/featuretest.h>
38

    
39
struct lconv {
40
        char        *decimal_point;
41
        char        *thousands_sep;
42
        char        *grouping;
43
        char        *int_curr_symbol;
44
        char        *currency_symbol;
45
        char        *mon_decimal_point;
46
        char        *mon_thousands_sep;
47
        char        *mon_grouping;
48
        char        *positive_sign;
49
        char        *negative_sign;
50
        char        int_frac_digits;
51
        char        frac_digits;
52
        char        p_cs_precedes;
53
        char        p_sep_by_space;
54
        char        n_cs_precedes;
55
        char        n_sep_by_space;
56
        char        p_sign_posn;
57
        char        n_sign_posn;
58
        char        int_p_cs_precedes;
59
        char        int_n_cs_precedes;
60
        char        int_p_sep_by_space;
61
        char        int_n_sep_by_space;
62
        char        int_p_sign_posn;
63
        char        int_n_sign_posn;
64
};
65

    
66
#include <sys/null.h>
67

    
68
#define        LC_ALL                0
69
#define        LC_COLLATE        1
70
#define        LC_CTYPE        2
71
#define        LC_MONETARY        3
72
#define        LC_NUMERIC        4
73
#define        LC_TIME                5
74
#define LC_MESSAGES        6
75

    
76
#define        _LC_LAST        7                /* marks end */
77

    
78
#include <sys/cdefs.h>
79

    
80
#if (_POSIX_C_SOURCE - 0) >= 200809L || defined(_NETBSD_SOURCE) || \
81
    defined(__SETLOCALE_SOURCE__)
82
#  ifndef __LOCALE_T_DECLARED
83
typedef struct _locale                *locale_t;
84
#  define __LOCALE_T_DECLARED
85
#  endif
86
#endif
87

    
88
__BEGIN_DECLS
89
struct lconv *localeconv(void);
90
char *setlocale(int, const char *) __RENAME(__setlocale50);
91

    
92
#if (_POSIX_C_SOURCE - 0) >= 200809L || defined(_NETBSD_SOURCE)
93
#  ifndef __LOCALE_T_DECLARED
94
typedef struct _locale                *locale_t;
95
#  define __LOCALE_T_DECLARED
96
#  endif
97
#define        LC_ALL_MASK                ((int)~0)
98
#define        LC_COLLATE_MASK                ((int)(1 << LC_COLLATE))
99
#define        LC_CTYPE_MASK                ((int)(1 << LC_CTYPE))
100
#define        LC_MONETARY_MASK        ((int)(1 << LC_MONETARY))
101
#define        LC_NUMERIC_MASK                ((int)(1 << LC_NUMERIC))
102
#define        LC_TIME_MASK                ((int)(1 << LC_TIME))
103
#define        LC_MESSAGES_MASK        ((int)(1 << LC_MESSAGES))
104
locale_t        duplocale(locale_t);
105
void                freelocale(locale_t);
106
struct lconv        *localeconv_l(locale_t);
107
locale_t        newlocale(int, const char *, locale_t);
108

    
109
#ifndef _LIBC
110
extern struct _locale        _lc_global_locale;
111
#else
112
extern __dso_protected struct _locale        _lc_global_locale;
113
#endif
114
#define LC_GLOBAL_LOCALE        (&_lc_global_locale)
115
#endif /* _POSIX_SOURCE >= 200809 || _NETBSD_SOURCE */
116

    
117
#if defined(_NETBSD_SOURCE)
118
#  ifndef _LIBC
119
extern const struct _locale _lc_C_locale;
120
#  else
121
extern __dso_protected const struct _locale _lc_C_locale;
122
#  endif
123
#define LC_C_LOCALE                ((locale_t)__UNCONST(&_lc_C_locale))
124
#endif
125
__END_DECLS
126

    
127
#endif /* _LOCALE_H_ */