1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

errno saving in display_string

* libguile/print.c (display_string): Fix a case in which perhaps `errno'
  could have been stompled.
This commit is contained in:
Andy Wingo 2011-02-24 13:10:16 +01:00
parent a964aa62c2
commit b2548e2344

View file

@ -862,6 +862,8 @@ display_string (const void *str, int narrow_p,
if (SCM_UNLIKELY (done == (size_t) -1))
{
int errno_save = errno;
/* Reset the `iconv' state. */
iconv (pt->output_cd, NULL, NULL, NULL, NULL);
@ -873,7 +875,7 @@ display_string (const void *str, int narrow_p,
codepoints_read = offsets[input - utf8_buf] - printed;
printed += codepoints_read;
if (errno == EILSEQ &&
if (errno_save == EILSEQ &&
strategy != SCM_FAILED_CONVERSION_ERROR)
{
/* Conversion failed somewhere in INPUT and we want to