This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Several fixes for localedef


Hi,

here are several patches against locale/programs/ld-collate.c to fix
bugs or propose enhancements to localedef.  They have to be applied
sequentially; I will provide modified patches if only some of them
are applied.  All these patches apply against ld-collate.c and thus
are about LC_COLLATE section of locale data files.
They have been tested as best as I could for several weeks now, and
should not produce any regression.

  * patch-1-keywords_ordering.diff  [BZ #690]
    Localedef is currently very strict on its keyword ordering.
    As a result, one can not add new scripts (am_ET uses an ugly hack so
    that state != 2 after 'copy'), collating-element and collating-symbol
    are accepted after 'copy' but not symbol-equivalence, etc. which
    sometimes prevent tailoring of iso14651_t1.
    This patch is also needed for the following one:
  * patch-2-toggles.diff [BZ #686]
    Toggle switches are defined in locale/programs/locfile-kw.h
    but not implemented.  Here is a patch to let localedef handle
    'define', 'undef', 'ifdef', 'else' and 'endif' keywords.
    This is very useful e.g. for locales which sort uppercase before
    lowercase letters, or do not want backward direction in level 2.
    Iso14651_t1 can then be customized like
      ifdef LATIN_FORWARD
      order_start <LATIN>;forward;forward;forward;forward,position
      else
      order_start <LATIN>;forward;backward;forward;forward,position
      endif
    so that these locales can define specific keywords and then
    'copy "iso14651_t1"' instead of copying its contents.  
  * patch-3-fix_rules.diff [BZ #645]
    Localedef does not respect rules definition (after order_start
    keyword), as is explained in depth in #645.  This breaks French
    collation, but also potentially any locale which has a rule
    different from forward;forward;forward;forward.
  * patch-4-fix_complex_collation.diff [BZ #368]
    With many collation elements, localedef enters an endless loop
    because it tries to add an element to a full table and never fails.
    The table size was artificially limited to 257 elements, but this
    limitation can be removed.  This fix is needed for the Dzongkha
    language.

2005-02-24  Denis Barbier  <barbier@debian.org>

	[BZ #690]
	* locale/programs/ld-collate.c (collate_read): Relax checks on
	keywords ordering.

	[BZ #686]
	* locale/programs/ld-collate.c (collate_read): Implement keywords
	for toggles which were already defined in locfile-kw.h.

	[BZ #645]
	* locale/programs/ld-collate.c (collate_finish): Fix handling of
	section rules.
	* locale/programs/ld-collate.c (collate_read): Likewise.

	[BZ #368]
	* locale/programs/ld-collate.c (collate_output): elem_size does
	not need to be truncated at 257.

Denis

Attachment: patch-1-keywords_ordering.diff
Description: Text document

Attachment: patch-2-toggles.diff
Description: Text document

Attachment: patch-3-fix_rules.diff
Description: Text document

Attachment: patch-4-fix_complex_collation.diff
Description: Text document

Attachment: signature.asc
Description: Digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]