OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [newlib-1.17.0/] [newlib/] [libc/] [locale/] [timelocal.c] - Blame information for rev 148

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 148 jeremybenn
/*-
2
 * Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
3
 * Copyright (c) 1997 FreeBSD Inc.
4
 * All rights reserved.
5
 *
6
 * Redistribution and use in source and binary forms, with or without
7
 * modification, are permitted provided that the following conditions
8
 * are met:
9
 * 1. Redistributions of source code must retain the above copyright
10
 *    notice, this list of conditions and the following disclaimer.
11
 * 2. Redistributions in binary form must reproduce the above copyright
12
 *    notice, this list of conditions and the following disclaimer in the
13
 *    documentation and/or other materials provided with the distribution.
14
 *
15
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25
 * SUCH DAMAGE.
26
 */
27
 
28
#include <sys/cdefs.h>
29
 
30
#include <stddef.h>
31
 
32
#include "ldpart.h"
33
#include "timelocal.h"
34
 
35
static struct lc_time_T _time_locale;
36
static int _time_using_locale;
37
static char *time_locale_buf;
38
 
39
#define LCTIME_SIZE (sizeof(struct lc_time_T) / sizeof(char *))
40
 
41
static const struct lc_time_T   _C_time_locale = {
42
        {
43
                "Jan", "Feb", "Mar", "Apr", "May", "Jun",
44
                "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
45
        }, {
46
                "January", "February", "March", "April", "May", "June",
47
                "July", "August", "September", "October", "November", "December"
48
        }, {
49
                "Sun", "Mon", "Tue", "Wed",
50
                "Thu", "Fri", "Sat"
51
        }, {
52
                "Sunday", "Monday", "Tuesday", "Wednesday",
53
                "Thursday", "Friday", "Saturday"
54
        },
55
 
56
        /* X_fmt */
57
        "%H:%M:%S",
58
 
59
        /*
60
         * x_fmt
61
         * Since the C language standard calls for
62
         * "date, using locale's date format," anything goes.
63
         * Using just numbers (as here) makes Quakers happier;
64
         * it's also compatible with SVR4.
65
         */
66
        "%m/%d/%y",
67
 
68
        /*
69
         * c_fmt
70
         */
71
        "%a %b %e %H:%M:%S %Y",
72
 
73
        /* am */
74
        "AM",
75
 
76
        /* pm */
77
        "PM",
78
 
79
        /* date_fmt */
80
        "%a %b %e %H:%M:%S %Z %Y",
81
 
82
        /* alt_month
83
         * Standalone months forms for %OB
84
         */
85
        {
86
                "January", "February", "March", "April", "May", "June",
87
                "July", "August", "September", "October", "November", "December"
88
        },
89
 
90
        /* md_order
91
         * Month / day order in dates
92
         */
93
        "md",
94
 
95
        /* ampm_fmt
96
         * To determine 12-hour clock format time (empty, if N/A)
97
         */
98
        "%I:%M:%S %p"
99
};
100
 
101
struct lc_time_T *
102
__get_current_time_locale(void) {
103
        return (_time_using_locale
104
                ? &_time_locale
105
                : (struct lc_time_T *)&_C_time_locale);
106
}
107
 
108
int
109
__time_load_locale(const char *name) {
110
 
111
        int     ret;
112
 
113
        ret = __part_load_locale(name, &_time_using_locale,
114
                        time_locale_buf, "LC_TIME",
115
                        LCTIME_SIZE, LCTIME_SIZE,
116
                        (const char **)&_time_locale);
117
 
118
        return (ret);
119
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.