Mercurial > hg > octave-lojdl > gnulib-hg
changeset 7251:db39032b0043
(iconv_string): No need to save and restore errno when iconv_alloc succeeded.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Tue, 05 Sep 2006 11:45:14 +0000 |
parents | b188d0ecb399 |
children | 86ec317a7b82 |
files | lib/iconvme.c |
diffstat | 1 files changed, 18 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/iconvme.c +++ b/lib/iconvme.c @@ -75,21 +75,24 @@ dest = iconv_alloc (cd, str); - { - int save_errno = errno; - - if (iconv_close (cd) < 0 && dest) - { - int save_errno2 = errno; - /* If we didn't have a real error before, make sure we restore - the iconv_close error below. */ - free (dest); - dest = NULL; - errno = save_errno2; - } - else - errno = save_errno; - } + if (dest == NULL) + { + int saved_errno = errno; + iconv_close (cd); + errno = saved_errno; + } + else + { + if (iconv_close (cd) < 0) + { + int saved_errno2 = errno; + /* If we didn't have a real error before, make sure we restore + the iconv_close error below. */ + free (dest); + dest = NULL; + errno = saved_errno2; + } + } #else errno = ENOSYS; #endif