lib/fold: Catch error case from mbrtowc()
authorSam Mendoza-Jonas <sam@mendozajonas.com>
Thu, 3 Mar 2016 02:31:18 +0000 (13:31 +1100)
committerSam Mendoza-Jonas <sam@mendozajonas.com>
Tue, 15 Mar 2016 03:34:41 +0000 (14:34 +1100)
commit5c3c324cc42f179fb41ca825fbce06bc445c730b
treebfa7723daed73c8c82f0083ab108feb5df608c56
parent0a10130b9d66a6f3f94094400871c9410b340674
lib/fold: Catch error case from mbrtowc()

The assert() statement in fold_text() only evaluates in a debug build.
If mbrtowc() encounters an error return the portion of the string that
has been parsed and stop.

This avoids an issue with glibc 2.22 where previous calls to
setlocale() failed and set an unsuitable locale. Since the error was not
caught this resulted in an infinite loop when trying to access the
Language screen.

Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
lib/fold/fold.c