(get_sysdep_segment_value): Handle "I".
authordrepper <drepper>
Wed, 14 Jan 2004 05:35:56 +0000 (05:35 +0000)
committerdrepper <drepper>
Wed, 14 Jan 2004 05:35:56 +0000 (05:35 +0000)
(_nl_load_domain): Treat major revision 1 like major revision 0.

intl/loadmsgcat.c

index 7376758..d70d77e 100644 (file)
@@ -735,6 +735,18 @@ get_sysdep_segment_value (name)
            }
        }
     }
+  /* Test for a glibc specific printf() format directive flag.  */
+  if (name[0] == 'I' && name[1] == '\0')
+    {
+#if defined _LIBC || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+      /* The 'I' flag, in numeric format directives, replaces ASCII digits
+        with the 'outdigits' defined in the LC_CTYPE locale facet.  This is
+        used for Farsi (Persian) and maybe Arabic.  */
+      return "I";
+#else
+      return "";
+#endif
+    }
   /* Other system dependent strings are not valid.  */
   return NULL;
 }
@@ -1009,10 +1021,11 @@ _nl_load_domain (domain_file, domainbinding)
 
   /* Fill in the information about the available tables.  */
   revision = W (domain->must_swap, data->revision);
-  /* We support only the major revision 0.  */
+  /* We support only the major revisions 0 and 1.  */
   switch (revision >> 16)
     {
     case 0:
+    case 1:
       domain->nstrings = W (domain->must_swap, data->nstrings);
       domain->orig_tab = (const struct string_desc *)
        ((char *) data + W (domain->must_swap, data->orig_tab_offset));