Remove non-working __part_load_locale function and any related code
Add TODO markers in case somebody wants to pick this up again Signed-off by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
c402f0388f
commit
cf2cd696da
|
@ -4,15 +4,13 @@ AUTOMAKE_OPTIONS = cygnus
|
|||
|
||||
INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
|
||||
|
||||
GENERAL_SOURCES = timelocal.h ldpart.h locale.c lnumeric.h lmonetary.h lmessages.h
|
||||
GENERAL_SOURCES = setlocale.h
|
||||
|
||||
## The following interfaces are EL/IX level 2
|
||||
if ELIX_LEVEL_1
|
||||
ELIX_SOURCES =
|
||||
else
|
||||
ELIX_SOURCES = \
|
||||
fix_grouping.c \
|
||||
ldpart.c \
|
||||
lmessages.c \
|
||||
lnumeric.c \
|
||||
lmonetary.c \
|
||||
|
|
|
@ -73,9 +73,7 @@ ARFLAGS = cru
|
|||
lib_a_AR = $(AR) $(ARFLAGS)
|
||||
lib_a_LIBADD =
|
||||
am__objects_1 = lib_a-locale.$(OBJEXT)
|
||||
@ELIX_LEVEL_1_FALSE@am__objects_2 = lib_a-fix_grouping.$(OBJEXT) \
|
||||
@ELIX_LEVEL_1_FALSE@ lib_a-ldpart.$(OBJEXT) \
|
||||
@ELIX_LEVEL_1_FALSE@ lib_a-lmessages.$(OBJEXT) \
|
||||
@ELIX_LEVEL_1_FALSE@am__objects_2 = lib_a-lmessages.$(OBJEXT) \
|
||||
@ELIX_LEVEL_1_FALSE@ lib_a-lnumeric.$(OBJEXT) \
|
||||
@ELIX_LEVEL_1_FALSE@ lib_a-lmonetary.$(OBJEXT) \
|
||||
@ELIX_LEVEL_1_FALSE@ lib_a-nl_langinfo.$(OBJEXT) \
|
||||
|
@ -87,8 +85,7 @@ lib_a_OBJECTS = $(am_lib_a_OBJECTS)
|
|||
LTLIBRARIES = $(noinst_LTLIBRARIES)
|
||||
liblocale_la_LIBADD =
|
||||
am__objects_3 = locale.lo
|
||||
@ELIX_LEVEL_1_FALSE@am__objects_4 = fix_grouping.lo ldpart.lo \
|
||||
@ELIX_LEVEL_1_FALSE@ lmessages.lo lnumeric.lo lmonetary.lo \
|
||||
@ELIX_LEVEL_1_FALSE@am__objects_4 = lmessages.lo lnumeric.lo lmonetary.lo \
|
||||
@ELIX_LEVEL_1_FALSE@ nl_langinfo.lo timelocal.lo lctype.lo
|
||||
@USE_LIBTOOL_TRUE@am_liblocale_la_OBJECTS = $(am__objects_3) \
|
||||
@USE_LIBTOOL_TRUE@ $(am__objects_4)
|
||||
|
@ -264,10 +261,8 @@ top_builddir = @top_builddir@
|
|||
top_srcdir = @top_srcdir@
|
||||
AUTOMAKE_OPTIONS = cygnus
|
||||
INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
|
||||
GENERAL_SOURCES = timelocal.h ldpart.h locale.c lnumeric.h lmonetary.h lmessages.h
|
||||
GENERAL_SOURCES = setlocale.h
|
||||
@ELIX_LEVEL_1_FALSE@ELIX_SOURCES = \
|
||||
@ELIX_LEVEL_1_FALSE@ fix_grouping.c \
|
||||
@ELIX_LEVEL_1_FALSE@ ldpart.c \
|
||||
@ELIX_LEVEL_1_FALSE@ lmessages.c \
|
||||
@ELIX_LEVEL_1_FALSE@ lnumeric.c \
|
||||
@ELIX_LEVEL_1_FALSE@ lmonetary.c \
|
||||
|
@ -371,18 +366,6 @@ lib_a-locale.o: locale.c
|
|||
lib_a-locale.obj: locale.c
|
||||
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-locale.obj `if test -f 'locale.c'; then $(CYGPATH_W) 'locale.c'; else $(CYGPATH_W) '$(srcdir)/locale.c'; fi`
|
||||
|
||||
lib_a-fix_grouping.o: fix_grouping.c
|
||||
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fix_grouping.o `test -f 'fix_grouping.c' || echo '$(srcdir)/'`fix_grouping.c
|
||||
|
||||
lib_a-fix_grouping.obj: fix_grouping.c
|
||||
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fix_grouping.obj `if test -f 'fix_grouping.c'; then $(CYGPATH_W) 'fix_grouping.c'; else $(CYGPATH_W) '$(srcdir)/fix_grouping.c'; fi`
|
||||
|
||||
lib_a-ldpart.o: ldpart.c
|
||||
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ldpart.o `test -f 'ldpart.c' || echo '$(srcdir)/'`ldpart.c
|
||||
|
||||
lib_a-ldpart.obj: ldpart.c
|
||||
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ldpart.obj `if test -f 'ldpart.c'; then $(CYGPATH_W) 'ldpart.c'; else $(CYGPATH_W) '$(srcdir)/ldpart.c'; fi`
|
||||
|
||||
lib_a-lmessages.o: lmessages.c
|
||||
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-lmessages.o `test -f 'lmessages.c' || echo '$(srcdir)/'`lmessages.c
|
||||
|
||||
|
|
|
@ -1,82 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <limits.h>
|
||||
#include <stddef.h>
|
||||
|
||||
static const char nogrouping[] = { CHAR_MAX, '\0' };
|
||||
|
||||
/*
|
||||
* "3;3;-1" -> "\003\003\177"
|
||||
*/
|
||||
|
||||
const char *
|
||||
__fix_locale_grouping_str(const char *str) {
|
||||
|
||||
char *src, *dst;
|
||||
char n;
|
||||
|
||||
if (str == NULL || *str == '\0') {
|
||||
return nogrouping;
|
||||
}
|
||||
|
||||
for (src = (char*)str, dst = (char*)str; *src != '\0'; src++) {
|
||||
|
||||
/* input string examples: "3;3", "3;2;-1" */
|
||||
if (*src == ';')
|
||||
continue;
|
||||
|
||||
if (*src == '-' && *(src+1) == '1') {
|
||||
*dst++ = CHAR_MAX;
|
||||
src++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isdigit((unsigned char)*src)) {
|
||||
/* broken grouping string */
|
||||
return nogrouping;
|
||||
}
|
||||
|
||||
/* assume all numbers <= 99 */
|
||||
n = *src - '0';
|
||||
if (isdigit((unsigned char)*(src+1))) {
|
||||
src++;
|
||||
n *= 10;
|
||||
n += *src - '0';
|
||||
}
|
||||
|
||||
*dst = n;
|
||||
/* NOTE: assume all input started with "0" as 'no grouping' */
|
||||
if (*dst == '\0')
|
||||
return (dst == (char*)str) ? nogrouping : str;
|
||||
dst++;
|
||||
}
|
||||
*dst = '\0';
|
||||
return str;
|
||||
}
|
|
@ -21,7 +21,6 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ldpart.h"
|
||||
#include "setlocale.h"
|
||||
|
||||
#define LCCTYPE_SIZE (sizeof(struct lc_ctype_T) / sizeof(char *))
|
||||
|
@ -40,16 +39,6 @@ const struct lc_ctype_T _C_ctype_locale = {
|
|||
#endif
|
||||
};
|
||||
|
||||
static struct lc_ctype_T _ctype_locale;
|
||||
static int _ctype_using_locale;
|
||||
#ifdef __HAVE_LOCALE_INFO_EXTENDED__
|
||||
static char *_ctype_locale_buf;
|
||||
#else
|
||||
/* Max encoding_len + NUL byte + 1 byte mb_cur_max plus trailing NUL byte */
|
||||
#define _CTYPE_BUF_SIZE (ENCODING_LEN + 3)
|
||||
static char _ctype_locale_buf[_CTYPE_BUF_SIZE];
|
||||
#endif
|
||||
|
||||
/* NULL locale indicates global locale (called from setlocale) */
|
||||
int
|
||||
__ctype_load_locale (struct __locale_t *locale, const char *name,
|
||||
|
@ -91,39 +80,8 @@ __ctype_load_locale (struct __locale_t *locale, const char *name,
|
|||
}
|
||||
ret = 0;
|
||||
}
|
||||
#elif !defined (__HAVE_LOCALE_INFO_EXTENDED__)
|
||||
ret = 0;
|
||||
if (!strcmp (name, "C"))
|
||||
locale->lc_cat[LC_CTYPE].ptr = NULL;
|
||||
else
|
||||
{
|
||||
if (locale == __get_global_locale ())
|
||||
bufp = _ctype_locale_buf;
|
||||
else
|
||||
bufp = (char *) malloc (_CTYPE_BUF_SIZE);
|
||||
if (*bufp)
|
||||
{
|
||||
_ctype_locale.codeset = strcpy (bufp, charset);
|
||||
char *mbc = bufp + _CTYPE_BUF_SIZE - 2;
|
||||
mbc[0] = mb_cur_max;
|
||||
mbc[1] = '\0';
|
||||
_ctype_locale.mb_cur_max = mbc;
|
||||
if (locale->lc_cat[LC_CTYPE].buf
|
||||
&& locale->lc_cat[LC_CTYPE].buf != _ctype_locale_buf)
|
||||
free (locale->lc_cat[LC_CTYPE].buf);
|
||||
locale->lc_cat[LC_CTYPE].buf = bufp;
|
||||
}
|
||||
else
|
||||
ret = -1;
|
||||
}
|
||||
#else
|
||||
ret = __part_load_locale(name, &_ctype_using_locale,
|
||||
_ctype_locale_buf, "LC_CTYPE",
|
||||
LCCTYPE_SIZE, LCCTYPE_SIZE,
|
||||
(const char **)&_ctype_locale);
|
||||
if (ret == 0 && _ctype_using_locale)
|
||||
_ctype_locale.grouping =
|
||||
__fix_locale_grouping_str(_ctype_locale.grouping);
|
||||
/* TODO */
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -1,194 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2000, 2001 Alexey Zelkin <phantom@FreeBSD.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/syslimits.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "setlocale.h"
|
||||
#include "ldpart.h"
|
||||
|
||||
static int split_lines(char *, const char *);
|
||||
static void set_from_buf(const char *, int, const char **);
|
||||
|
||||
int
|
||||
__part_load_locale(const char *name,
|
||||
int *using_locale,
|
||||
char *locale_buf,
|
||||
const char *category_filename,
|
||||
int locale_buf_size_max,
|
||||
int locale_buf_size_min,
|
||||
const char **dst_localebuf) {
|
||||
|
||||
static char locale_buf_C[] = "C";
|
||||
static int num_lines;
|
||||
|
||||
int fd;
|
||||
char *lbuf;
|
||||
char *p;
|
||||
const char *plim;
|
||||
char filename[PATH_MAX];
|
||||
#ifdef __USE_INTERNAL_STAT64
|
||||
struct stat64 st;
|
||||
#else
|
||||
struct stat st;
|
||||
#endif
|
||||
size_t namesize;
|
||||
size_t bufsize;
|
||||
int save_using_locale;
|
||||
char *nptr;
|
||||
|
||||
save_using_locale = *using_locale;
|
||||
*using_locale = 0;
|
||||
|
||||
if (name == NULL)
|
||||
goto no_locale;
|
||||
|
||||
if (!strcmp(name, "C") || !strcmp(name, "POSIX"))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* If the locale name is the same as our cache, use the cache.
|
||||
*/
|
||||
lbuf = locale_buf;
|
||||
if (lbuf != NULL && strcmp(name, lbuf) == 0) {
|
||||
set_from_buf(lbuf, num_lines, dst_localebuf);
|
||||
*using_locale = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Slurp the locale file into the cache.
|
||||
*/
|
||||
namesize = strlen(name) + 1;
|
||||
|
||||
if (!_PathLocale)
|
||||
goto no_locale;
|
||||
/* Range checking not needed, 'name' size is limited */
|
||||
strcpy(filename, _PathLocale);
|
||||
strcat(filename, "/");
|
||||
strcat(filename, name);
|
||||
strcat(filename, "/");
|
||||
strcat(filename, category_filename);
|
||||
fd = open(filename, O_RDONLY);
|
||||
if (fd < 0)
|
||||
goto no_locale;
|
||||
#ifdef __USE_INTERNAL_STAT64
|
||||
if (fstat64(fd, &st) != 0)
|
||||
#else
|
||||
if (fstat(fd, &st) != 0)
|
||||
#endif
|
||||
goto bad_locale;
|
||||
if (st.st_size <= 0)
|
||||
goto bad_locale;
|
||||
bufsize = namesize + st.st_size + 1;
|
||||
locale_buf = NULL;
|
||||
|
||||
if (lbuf == NULL || lbuf == locale_buf_C)
|
||||
{
|
||||
lbuf = malloc(bufsize);
|
||||
}
|
||||
else
|
||||
{
|
||||
nptr = realloc(lbuf, bufsize);
|
||||
if (!nptr && lbuf)
|
||||
free (lbuf);
|
||||
lbuf = nptr;
|
||||
}
|
||||
|
||||
if (lbuf == NULL)
|
||||
goto bad_locale;
|
||||
(void) strcpy(lbuf, name);
|
||||
p = lbuf + namesize;
|
||||
plim = p + st.st_size;
|
||||
if (read(fd, p, (size_t) st.st_size) != st.st_size)
|
||||
goto bad_lbuf;
|
||||
if (close(fd) != 0)
|
||||
goto bad_lbuf;
|
||||
/*
|
||||
* Parse the locale file into localebuf.
|
||||
*/
|
||||
p[st.st_size] = '\0';
|
||||
if (plim[-1] != '\n')
|
||||
goto bad_lbuf;
|
||||
num_lines = split_lines(p, plim);
|
||||
if (num_lines >= locale_buf_size_max)
|
||||
num_lines = locale_buf_size_max;
|
||||
else if (num_lines >= locale_buf_size_min)
|
||||
num_lines = locale_buf_size_min;
|
||||
else
|
||||
goto reset_locale;
|
||||
set_from_buf(lbuf, num_lines, dst_localebuf);
|
||||
/*
|
||||
* Record the successful parse in the cache.
|
||||
*/
|
||||
locale_buf = lbuf;
|
||||
|
||||
*using_locale = 1;
|
||||
return 0;
|
||||
|
||||
reset_locale:
|
||||
locale_buf = locale_buf_C;
|
||||
save_using_locale = 0;
|
||||
bad_lbuf:
|
||||
free(lbuf);
|
||||
bad_locale:
|
||||
(void)close(fd);
|
||||
no_locale:
|
||||
*using_locale = save_using_locale;
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int
|
||||
split_lines(char *p, const char *plim) {
|
||||
|
||||
int i;
|
||||
|
||||
for (i = 0; p < plim; i++) {
|
||||
p = strchr(p, '\n');
|
||||
if (!p)
|
||||
break;
|
||||
*p++ = '\0';
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
static void
|
||||
set_from_buf(const char *p, int num_lines, const char **dst_localebuf) {
|
||||
|
||||
const char **ap;
|
||||
int i;
|
||||
|
||||
for (ap = dst_localebuf, i = 0; i < num_lines; ++ap, ++i)
|
||||
*ap = p += strlen(p) + 1;
|
||||
}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
/*-
|
||||
* Copyright (c) 2000, 2001 Alexey Zelkin <phantom@FreeBSD.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD: src/lib/libc/locale/ldpart.h,v 1.4 2001/12/20 18:28:52 phantom Exp $
|
||||
*/
|
||||
|
||||
#ifndef _LDPART_H_
|
||||
#define _LDPART_H_
|
||||
|
||||
int __part_load_locale(const char *, int*, char *, const char *,
|
||||
int, int, const char **);
|
||||
|
||||
#endif /* !_LDPART_H_ */
|
|
@ -27,9 +27,7 @@
|
|||
#include <sys/cdefs.h>
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include "setlocale.h"
|
||||
#include "ldpart.h"
|
||||
|
||||
#define LCMESSAGES_SIZE_FULL (sizeof(struct lc_messages_T) / sizeof(char *))
|
||||
#define LCMESSAGES_SIZE_MIN \
|
||||
|
@ -102,33 +100,7 @@ __messages_load_locale (struct __locale_t *locale, const char *name,
|
|||
ret = 0;
|
||||
}
|
||||
#else
|
||||
/*
|
||||
* Propose that we can have incomplete locale file (w/o "{yes,no}str").
|
||||
* Initialize them before loading. In case of complete locale, they'll
|
||||
* be initialized to loaded value, otherwise they'll not be touched.
|
||||
*/
|
||||
_messages_locale.yesstr = empty;
|
||||
_messages_locale.nostr = empty;
|
||||
|
||||
ret = __part_load_locale(name, &_messages_using_locale,
|
||||
_messages_locale_buf, "LC_MESSAGES",
|
||||
LCMESSAGES_SIZE_FULL, LCMESSAGES_SIZE_MIN,
|
||||
(const char **)&_messages_locale);
|
||||
/* TODO */
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef LOCALE_DEBUG
|
||||
void
|
||||
msgdebug() {
|
||||
printf( "yesexpr = %s\n"
|
||||
"noexpr = %s\n"
|
||||
"yesstr = %s\n"
|
||||
"nostr = %s\n",
|
||||
_messages_locale.yesexpr,
|
||||
_messages_locale.noexpr,
|
||||
_messages_locale.yesstr,
|
||||
_messages_locale.nostr
|
||||
);
|
||||
}
|
||||
#endif /* LOCALE_DEBUG */
|
||||
|
|
|
@ -29,9 +29,6 @@
|
|||
#include <limits.h>
|
||||
#include <stdlib.h>
|
||||
#include "setlocale.h"
|
||||
#include "ldpart.h"
|
||||
|
||||
extern const char * __fix_locale_grouping_str(const char *);
|
||||
|
||||
#define LCMONETARY_SIZE (sizeof(struct lc_monetary_T) / sizeof(char *))
|
||||
|
||||
|
@ -130,26 +127,7 @@ __monetary_load_locale (struct __locale_t *locale, const char *name ,
|
|||
ret = 0;
|
||||
}
|
||||
#else
|
||||
ret = __part_load_locale(name, &_monetary_using_locale,
|
||||
_monetary_locale_buf, "LC_MONETARY",
|
||||
LCMONETARY_SIZE, LCMONETARY_SIZE,
|
||||
(const char **)&_monetary_locale);
|
||||
if (ret == 0 && _monetary_using_locale) {
|
||||
_monetary_locale.mon_grouping =
|
||||
__fix_locale_grouping_str(_monetary_locale.mon_grouping);
|
||||
|
||||
#define M_ASSIGN_CHAR(NAME) (((char *)_monetary_locale.NAME)[0] = \
|
||||
cnv(_monetary_locale.NAME))
|
||||
|
||||
M_ASSIGN_CHAR(int_frac_digits);
|
||||
M_ASSIGN_CHAR(frac_digits);
|
||||
M_ASSIGN_CHAR(p_cs_precedes);
|
||||
M_ASSIGN_CHAR(p_sep_by_space);
|
||||
M_ASSIGN_CHAR(n_cs_precedes);
|
||||
M_ASSIGN_CHAR(n_sep_by_space);
|
||||
M_ASSIGN_CHAR(p_sign_posn);
|
||||
M_ASSIGN_CHAR(n_sign_posn);
|
||||
}
|
||||
/* TODO */
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -25,9 +25,6 @@
|
|||
*/
|
||||
|
||||
#include "setlocale.h"
|
||||
#include "ldpart.h"
|
||||
|
||||
extern const char *__fix_locale_grouping_str(const char *);
|
||||
|
||||
#define LCNUMERIC_SIZE (sizeof(struct lc_numeric_T) / sizeof(char *))
|
||||
|
||||
|
@ -44,12 +41,6 @@ const struct lc_numeric_T _C_numeric_locale = {
|
|||
#endif
|
||||
};
|
||||
|
||||
#ifndef __CYGWIN__
|
||||
static struct lc_numeric_T _numeric_locale;
|
||||
static int _numeric_using_locale;
|
||||
static char *_numeric_locale_buf;
|
||||
#endif
|
||||
|
||||
int
|
||||
__numeric_load_locale (struct __locale_t *locale, const char *name ,
|
||||
void *f_wctomb, const char *charset)
|
||||
|
@ -92,13 +83,7 @@ __numeric_load_locale (struct __locale_t *locale, const char *name ,
|
|||
ret = 0;
|
||||
}
|
||||
#else
|
||||
ret = __part_load_locale(name, &_numeric_using_locale,
|
||||
_numeric_locale_buf, "LC_NUMERIC",
|
||||
LCNUMERIC_SIZE, LCNUMERIC_SIZE,
|
||||
(const char **)&_numeric_locale);
|
||||
if (ret == 0 && _numeric_using_locale)
|
||||
_numeric_locale.grouping =
|
||||
__fix_locale_grouping_str(_numeric_locale.grouping);
|
||||
/* TODO */
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -302,8 +302,6 @@ extern void __set_charset_from_locale (const char *locale, char *charset);
|
|||
extern char *__set_locale_from_locale_alias (const char *, char *);
|
||||
#endif
|
||||
|
||||
extern char *_PathLocale;
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_SETLOCALE_H_ */
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
#include <sys/cdefs.h>
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include "ldpart.h"
|
||||
#include "setlocale.h"
|
||||
|
||||
#define LCTIME_SIZE (sizeof(struct lc_time_T) / sizeof(char *))
|
||||
|
@ -145,12 +143,6 @@ const struct lc_time_T _C_time_locale = {
|
|||
#endif
|
||||
};
|
||||
|
||||
#ifndef __CYGWIN__
|
||||
static struct lc_time_T _time_locale;
|
||||
static int _time_using_locale;
|
||||
static char *time_locale_buf;
|
||||
#endif
|
||||
|
||||
int
|
||||
__time_load_locale (struct __locale_t *locale, const char *name,
|
||||
void *f_wctomb, const char *charset)
|
||||
|
@ -192,10 +184,7 @@ __time_load_locale (struct __locale_t *locale, const char *name,
|
|||
ret = 0;
|
||||
}
|
||||
#else
|
||||
ret = __part_load_locale(name, &_time_using_locale,
|
||||
time_locale_buf, "LC_TIME",
|
||||
LCTIME_SIZE, LCTIME_SIZE,
|
||||
(const char **)&_time_locale);
|
||||
/* TODO */
|
||||
#endif
|
||||
return (ret);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue