summary refs log tree commit diff
path: root/locale/programs/ld-identification.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-12-10 01:37:56 +0000
committerUlrich Drepper <drepper@redhat.com>2001-12-10 01:37:56 +0000
commit47e8b4439dda245845e85dfbb054693a9b132635 (patch)
treeef27110e00f1a9f726c74c2f8473499ccf3dd0de /locale/programs/ld-identification.c
parenta352ab4ca56142647227c3d2943adfa455679ada (diff)
downloadglibc-47e8b4439dda245845e85dfbb054693a9b132635.tar.gz
glibc-47e8b4439dda245845e85dfbb054693a9b132635.tar.xz
glibc-47e8b4439dda245845e85dfbb054693a9b132635.zip
Update.
2001-12-09  Ulrich Drepper  <drepper@redhat.com>

	Implement transliteration of characters in strings of the locale
	definitions.
	* locale/programs/linereader.c: Adjust for additional parameter to
	lr_token.
	(get_string): If character <Uxxxx> is not found try to transliterate
	it.
	* locale/programs/ld-ctype.c: Adjust for additional parameter to
	lr_token.  Add const to charmap parameter of all functions.
	(find_translit, find_translit2): New functions.
	* locale/programs/charmap.c: Adjust for additional parameter to
	lr_token.
	* locale/programs/repertoire.c: Likewise.
	* locale/programs/linereader.h: Likewise.
	* locale/programs/ld-address.c: Likewise.  Add const to charmap
	parameter of all functions.
	* locale/programs/ld-collate.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-paper.c: Likewise.
	* locale/programs/ld-telephone.c: Likewise.
	* locale/programs/ld-time.c: Likewise.
	* locale/programs/locfile.c: Likewise.
	* locale/programs/localedef.c: Likewise.
	* locale/programs/localedef.h: Likewise.
	* locale/programs/locfile.h: Likewise.  Add declaration for
	find_translit.
	* locale/programs/simple-hash.c: Add const to first parameter of
	find_entry, iterate_table, and lookup.
	* locale/programs/simple-hash.h: Likewise.
	* locale/localeinfo.h: Don't define __LC_LAST here.  Include <locale.h>
	instead.
	* include/locale.h: Define __LC_LAST.
	* iconv/Makefile (CFLAGS-linereader.c): Define to -DNO_TRANSLITERATION.
Diffstat (limited to 'locale/programs/ld-identification.c')
-rw-r--r--locale/programs/ld-identification.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/locale/programs/ld-identification.c b/locale/programs/ld-identification.c
index a64fe63d1b..74420fcde2 100644
--- a/locale/programs/ld-identification.c
+++ b/locale/programs/ld-identification.c
@@ -95,7 +95,8 @@ identification_startup (struct linereader *lr, struct localedef_t *locale,
 
 
 void
-identification_finish (struct localedef_t *locale, struct charmap_t *charmap)
+identification_finish (struct localedef_t *locale,
+		       const struct charmap_t *charmap)
 {
   struct locale_identification_t *identification
     = locale->categories[LC_IDENTIFICATION].identification;
@@ -174,7 +175,8 @@ identification_finish (struct localedef_t *locale, struct charmap_t *charmap)
 
 
 void
-identification_output (struct localedef_t *locale, struct charmap_t *charmap,
+identification_output (struct localedef_t *locale,
+		       const struct charmap_t *charmap,
 		       const char *output_path)
 {
   struct locale_identification_t *identification
@@ -294,7 +296,7 @@ identification_output (struct localedef_t *locale, struct charmap_t *charmap,
 /* The parser for the LC_IDENTIFICATION section of the locale definition.  */
 void
 identification_read (struct linereader *ldfile, struct localedef_t *result,
-	       struct charmap_t *charmap, const char *repertoire_name,
+	       const struct charmap_t *charmap, const char *repertoire_name,
 	       int ignore_content)
 {
   struct locale_identification_t *identification;
@@ -309,7 +311,7 @@ identification_read (struct linereader *ldfile, struct localedef_t *result,
 
   do
     {
-      now = lr_token (ldfile, charmap, NULL, verbose);
+      now = lr_token (ldfile, charmap, result, NULL, verbose);
       nowtok = now->tok;
     }
   while (nowtok == tok_eol);
@@ -336,7 +338,7 @@ identification_read (struct linereader *ldfile, struct localedef_t *result,
       /* Ignore empty lines.  */
       if (nowtok == tok_eol)
 	{
-	  now = lr_token (ldfile, charmap, NULL, verbose);
+	  now = lr_token (ldfile, charmap, result, NULL, verbose);
 	  nowtok = now->tok;
 	  continue;
 	}
@@ -353,7 +355,7 @@ identification_read (struct linereader *ldfile, struct localedef_t *result,
 	      break;							      \
 	    }								      \
 									      \
-	  arg = lr_token (ldfile, charmap, NULL, verbose);		      \
+	  arg = lr_token (ldfile, charmap, result, NULL, verbose);	      \
 	  if (arg->tok != tok_string)					      \
 	    goto err_label;						      \
 	  if (identification->cat != NULL)				      \
@@ -394,15 +396,15 @@ identification_read (struct linereader *ldfile, struct localedef_t *result,
 	    }
 
 	  /* We expect two operands.  */
-	  arg = lr_token (ldfile, charmap, NULL, verbose);
+	  arg = lr_token (ldfile, charmap, result, NULL, verbose);
 	  if (arg->tok != tok_string && arg->tok != tok_ident)
 	    goto err_label;
 	  /* Next is a semicolon.  */
-	  cattok = lr_token (ldfile, charmap, NULL, verbose);
+	  cattok = lr_token (ldfile, charmap, result, NULL, verbose);
 	  if (cattok->tok != tok_semicolon)
 	    goto err_label;
 	  /* Now a LC_xxx identifier.  */
-	  cattok = lr_token (ldfile, charmap, NULL, verbose);
+	  cattok = lr_token (ldfile, charmap, result, NULL, verbose);
 	  switch (cattok->tok)
 	    {
 #define CATEGORY(lname, uname) \
@@ -438,7 +440,7 @@ identification_read (struct linereader *ldfile, struct localedef_t *result,
 
 	case tok_end:
 	  /* Next we assume `LC_IDENTIFICATION'.  */
-	  arg = lr_token (ldfile, charmap, NULL, verbose);
+	  arg = lr_token (ldfile, charmap, result, NULL, verbose);
 	  if (arg->tok == tok_eof)
 	    break;
 	  if (arg->tok == tok_eol)
@@ -456,7 +458,7 @@ identification_read (struct linereader *ldfile, struct localedef_t *result,
 	}
 
       /* Prepare for the next round.  */
-      now = lr_token (ldfile, charmap, NULL, verbose);
+      now = lr_token (ldfile, charmap, result, NULL, verbose);
       nowtok = now->tok;
     }