Details
Description
To test the locales, the run_locale_utils.sh script is used, residing in the etc/config subdirectory of the source directory.
During this process, the source file in the etc/nls subdirectory is first transformed into a locale database using the localedef utility, then is converted back to a source file using the locale utility. This process is repeated twice more, with each following stage relying on the source file from the previous itteration. The test then concludes by checking that the source files produced in the second and third stage are identical.
On some platforms, including my local box, this process fails for most locales when the localedef utility in the second stage is unable to process the output of the source file generated by the locale utility in the first stage of the process. Output from running the en_US.ISO-8859-1.sh (wrapper) script with the '-d' flag on my box is attached as en_US.ISO-8859-1.sh.out. The failure message from the localedef utility in this case is as follows:
Error 399: decimal value in the range [0, 255) expected: \d383
When I search for the string '\d383' in the source file being parsed (attached as out.1), I find it in the LC_COLLATE section. It appears to me that either the output from the locale utility doesn't use the correct range, or that the valid range for the parser in localedef is incorrect.