summaryrefslogtreecommitdiff
path: root/locale/programs/ld-ctype.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-02-05 05:57:24 +0000
committerUlrich Drepper <drepper@redhat.com>2001-02-05 05:57:24 +0000
commit93693c4d820dac2f218e144f5126a5a761f1cfbf (patch)
tree7371d326f24a3c9d73fed75e7792133d0d654a50 /locale/programs/ld-ctype.c
parent377c725f8e2dba91af36af27206e6deb85cf6e6f (diff)
Update.
2001-02-04 Ulrich Drepper <drepper@redhat.com> * iconv/Makefile (iconv_prog-modules): Define. Add vpath to find files in locale/programs. Add CFLAGS definition to allow compiling localedef files. * iconv/dummy-repertoire.c: New file. * iconv/iconv_charmap.c: New file. * iconv/iconv_prog.h: New file. * iconv/iconv_prog.c: Make verbose and omit_invalid global. (main): If parameter for -f and -t contain slashes try first to resolve the strings as filenames of charmap files. Use them for conversion in this case. * iconvdata/run-iconv-test.sh: If charmaps exist also run tests with iconv getting charmap names as parameters. * locale/programs/linereader.c (lr_token): Take extra parameters verbose and pass it to get_string. (get_string): Take extra parameters verbose. * locale/programs/charmap.c (parse_charmap): Take extra parameters verbose and be_quiet. Change all callers of lr_token and parse_charmap. * locale/programs/charmap.h: Likewise. * locale/programs/ld-address.c: Likewise. * locale/programs/ld-collate.c: Likewise. * locale/programs/ld-ctype.c: Likewise. * locale/programs/ld-identification.c: Likewise. * locale/programs/ld-measurement.c: Likewise. * locale/programs/ld-messages.c: Likewise. * locale/programs/ld-monetary.c: Likewise. * locale/programs/ld-name.c: Likewise. * locale/programs/ld-numeric.c: Likewise. * locale/programs/ld-paper.c: Likewise. * locale/programs/ld-telephone.c: Likewise. * locale/programs/ld-time.c: Likewise. * locale/programs/linereader.c: Likewise. * locale/programs/linereader.h: Likewise. * locale/programs/localedef.c: Likewise. * locale/programs/locfile.c: Likewise. * locale/programs/locfile.h: Likewise. * locale/programs/repertoire.c: Likewise.
Diffstat (limited to 'locale/programs/ld-ctype.c')
-rw-r--r--locale/programs/ld-ctype.c85
1 files changed, 43 insertions, 42 deletions
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index fd427f162e..24a53919f2 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -1878,7 +1878,7 @@ read_translit_entry (struct linereader *ldfile, struct locale_ctype_t *ctype,
/* Next we have one or more transliterations. They are
separated by semicolons. */
- now = lr_token (ldfile, charmap, repertoire);
+ now = lr_token (ldfile, charmap, repertoire, verbose);
if (!first && (now->tok == tok_semicolon || now->tok == tok_eol))
{
@@ -1939,7 +1939,7 @@ read_translit_ignore_entry (struct linereader *ldfile,
single characters, possibly defining a range when an ellipsis is used. */
while (1)
{
- struct token *now = lr_token (ldfile, charmap, repertoire);
+ struct token *now = lr_token (ldfile, charmap, repertoire, verbose);
struct translit_ignore_t *newp;
uint32_t from;
@@ -1983,7 +1983,7 @@ read_translit_ignore_entry (struct linereader *ldfile,
/* Now we expect either a semicolon, an ellipsis, or the end of the
line. */
- now = lr_token (ldfile, charmap, repertoire);
+ now = lr_token (ldfile, charmap, repertoire, verbose);
if (now->tok == tok_ellipsis2 || now->tok == tok_ellipsis2_2)
{
@@ -1992,7 +1992,7 @@ read_translit_ignore_entry (struct linereader *ldfile,
uint32_t to;
int step = now->tok == tok_ellipsis2_2 ? 2 : 1;
- now = lr_token (ldfile, charmap, repertoire);
+ now = lr_token (ldfile, charmap, repertoire, verbose);
if (now->tok == tok_eol || now->tok == tok_eof)
{
@@ -2033,7 +2033,7 @@ to-value <U%0*X> of range is smaller than from-value <U%0*X>"),
}
/* And the next token. */
- now = lr_token (ldfile, charmap, repertoire);
+ now = lr_token (ldfile, charmap, repertoire, verbose);
}
if (now->tok == tok_eol || now->tok == tok_eof)
@@ -2084,7 +2084,7 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
do
{
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
nowtok = now->tok;
}
while (nowtok == tok_eol);
@@ -2092,18 +2092,19 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
/* If we see `copy' now we are almost done. */
if (nowtok == tok_copy)
{
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok != tok_string)
{
SYNTAX_ERROR (_("%s: syntax error"), "LC_CTYPE");
skip_category:
do
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
while (now->tok != tok_eof && now->tok != tok_end);
if (now->tok != tok_eof
- || (now = lr_token (ldfile, charmap, NULL), now->tok == tok_eof))
+ || (now = lr_token (ldfile, charmap, NULL, verbose),
+ now->tok == tok_eof))
lr_error (ldfile, _("%s: premature end of file"), "LC_CTYPE");
else if (now->tok != tok_lc_ctype)
{
@@ -2132,7 +2133,7 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
lr_ignore_rest (ldfile, 1);
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
nowtok = now->tok;
}
@@ -2157,7 +2158,7 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
/* Ingore empty lines. */
if (nowtok == tok_eol)
{
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
nowtok = now->tok;
continue;
}
@@ -2165,14 +2166,14 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
switch (nowtok)
{
case tok_charclass:
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
while (now->tok == tok_ident || now->tok == tok_string)
{
ctype_class_new (ldfile, ctype, now->val.str.startmb);
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok != tok_semicolon)
break;
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
}
if (now->tok != tok_eol)
SYNTAX_ERROR (_("\
@@ -2180,14 +2181,14 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
break;
case tok_charconv:
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
while (now->tok == tok_ident || now->tok == tok_string)
{
ctype_map_new (ldfile, ctype, now->val.str.startmb, charmap);
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok != tok_semicolon)
break;
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
}
if (now->tok != tok_eol)
SYNTAX_ERROR (_("\
@@ -2205,7 +2206,7 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
/* We simply forget the `class' keyword and use the following
operand to determine the bit. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok == tok_ident || now->tok == tok_string)
{
/* Must can be one of the predefined class names. */
@@ -2251,7 +2252,7 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
}
/* The next character must be a semicolon. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok != tok_semicolon)
goto err_label;
goto read_charclass;
@@ -2283,7 +2284,7 @@ ctype_read (struct linereader *ldfile, struct localedef_t *result,
last_token = tok_none;
ellipsis_token = tok_none;
step = 1;
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
while (now->tok != tok_eol && now->tok != tok_eof)
{
uint32_t wch;
@@ -2420,7 +2421,7 @@ with character code range values one must use the absolute ellipsis `...'"));
}
/* Next we expect a semicolon or the end of the line. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok == tok_eol || now->tok == tok_eof)
break;
@@ -2440,7 +2441,7 @@ with character code range values one must use the absolute ellipsis `...'"));
ellipsis_token = now->tok;
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
continue;
}
@@ -2448,7 +2449,7 @@ with character code range values one must use the absolute ellipsis `...'"));
goto err_label;
/* And get the next character. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
ellipsis_token = tok_none;
step = 1;
@@ -2523,7 +2524,7 @@ with character code range values one must use the absolute ellipsis `...'"));
/* We simply forget the `map' keyword and use the following
operand to determine the mapping. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok == tok_ident || now->tok == tok_string)
{
size_t cnt;
@@ -2545,7 +2546,7 @@ with character code range values one must use the absolute ellipsis `...'"));
else
mapidx = now->tok - tok_toupper;
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
/* This better should be a semicolon. */
if (now->tok != tok_semicolon)
goto err_label;
@@ -2561,7 +2562,7 @@ with character code range values one must use the absolute ellipsis `...'"));
}
ctype->tomap_done[mapidx] = 1;
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
while (now->tok != tok_eol && now->tok != tok_eof)
{
struct charseq *from_seq;
@@ -2574,24 +2575,24 @@ with character code range values one must use the absolute ellipsis `...'"));
goto err_label;
/* Next comes the from-value. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (get_character (now, charmap, repertoire, &from_seq,
&from_wch) != 0)
goto err_label;
/* The next is a comma. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok != tok_comma)
goto err_label;
/* And the other value. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (get_character (now, charmap, repertoire, &to_seq,
&to_wch) != 0)
goto err_label;
/* And the last thing is the closing brace. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok != tok_close_brace)
goto err_label;
@@ -2613,9 +2614,9 @@ with character code range values one must use the absolute ellipsis `...'"));
}
/* Now comes a semicolon or the end of the line/file. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok == tok_semicolon)
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
}
break;
@@ -2627,7 +2628,7 @@ with character code range values one must use the absolute ellipsis `...'"));
do
{
lr_ignore_rest (ldfile, 0);
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
}
while (now->tok != tok_translit_end && now->tok != tok_eof);
@@ -2650,7 +2651,7 @@ with character code range values one must use the absolute ellipsis `...'"));
ldfile->return_widestr = 1;
/* We proceed until we see the `translit_end' token. */
- while (now = lr_token (ldfile, charmap, repertoire),
+ while (now = lr_token (ldfile, charmap, repertoire, verbose),
now->tok != tok_translit_end && now->tok != tok_eof)
{
if (now->tok == tok_eol)
@@ -2664,7 +2665,7 @@ with character code range values one must use the absolute ellipsis `...'"));
const char *repertoire_name;
struct translit_include_t *include_stmt, **include_ptr;
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
/* This should be a string or an identifier. In any
case something to name a locale. */
if (now->tok != tok_string && now->tok != tok_ident)
@@ -2677,12 +2678,12 @@ with character code range values one must use the absolute ellipsis `...'"));
locale_name = now->val.str.startmb;
/* Next should be a semicolon. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok != tok_semicolon)
goto translit_syntax;
/* Now the repertoire name. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if ((now->tok != tok_string && now->tok != tok_ident)
|| now->val.str.startmb == NULL)
goto translit_syntax;
@@ -2716,7 +2717,7 @@ with character code range values one must use the absolute ellipsis `...'"));
{
/* We expect a single character or string as the
argument. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
wstr = read_widestring (ldfile, now, charmap,
repertoire);
@@ -2746,7 +2747,7 @@ previous definition was here"));
break;
/* Maybe there is another replacement we can use. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok == tok_eol || now->tok == tok_eof)
{
/* Nothing found. We tell the user. */
@@ -2837,7 +2838,7 @@ previous definition was here"));
case tok_end:
/* Next we assume `LC_CTYPE'. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
if (now->tok == tok_eof)
break;
if (now->tok == tok_eol)
@@ -2856,7 +2857,7 @@ previous definition was here"));
}
/* Prepare for the next round. */
- now = lr_token (ldfile, charmap, NULL);
+ now = lr_token (ldfile, charmap, NULL, verbose);
nowtok = now->tok;
}