• Paul Eggert's avatar
    Improve robustness of new string-collation code. · 110d87a1
    Paul Eggert authored
    * configure.ac (newlocale): Check for this, not for uselocale.
    * src/sysdep.c (LC_COLLATE, LC_COLLATE_MASK, freelocale, locale_t)
    (newlocale, wcscoll_l): Define substitutes for platforms that
    lack them, so as to simplify the mainline code.
    (str_collate): Simplify the code by assuming the above definitions.
    Use wcscoll_l, not uselocale, as uselocale is too fragile.  For
    example, the old version left the Emacs in the wrong locale if
    wcscoll reported an error.  Use 'int', not ptrdiff_t, for the int
    result.  Report an error if newlocale fails.
    
    Fixes: debbugs:18051
    110d87a1
ChangeLog 518 KB