diff options
Diffstat (limited to 'iconv')
-rw-r--r-- | iconv/Makefile | 3 | ||||
-rw-r--r-- | iconv/gconv_db.c | 10 | ||||
-rw-r--r-- | iconv/iconv_prog.c | 6 |
3 files changed, 12 insertions, 7 deletions
diff --git a/iconv/Makefile b/iconv/Makefile index 8b4f605e5b..431100d7da 100644 --- a/iconv/Makefile +++ b/iconv/Makefile @@ -37,12 +37,11 @@ endif distribute = gconv_builtin.h gconv_int.h loop.c skeleton.c others = iconv_prog +install-others = $(inst_bindir)/iconv CFLAGS-gconv_conf.c = -DGCONV_PATH='"$(gconvdir)"' include ../Rules -subdir_install: $(inst_bindir)/iconv - $(inst_bindir)/iconv: $(objpfx)iconv_prog $(+force) $(do-install-program) diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c index 11914547c7..e6253b8380 100644 --- a/iconv/gconv_db.c +++ b/iconv/gconv_db.c @@ -294,7 +294,10 @@ find_derivation (const char *toset, const char *toset_expand, result = derivation_lookup (fromset_expand ?: fromset, toset_expand ?: toset, handle, nsteps); if (result == GCONV_OK) - return result; + { + __libc_lock_unlock (lock); + return result; + } /* ### TODO For now we use a simple algorithm with quadratic runtime behaviour. @@ -527,7 +530,10 @@ __gconv_find_transform (const char *toset, const char *fromset, /* If we don't have a module database return with an error. */ if (__gconv_modules_db == NULL) - return GCONV_NOCONV; + { + __libc_lock_unlock (lock); + return GCONV_NOCONV; + } /* See whether the names are aliases. */ if (__gconv_alias_db != NULL) diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c index 7dd0f3422c..8f05d57a18 100644 --- a/iconv/iconv_prog.c +++ b/iconv/iconv_prog.c @@ -1,5 +1,5 @@ /* Convert text in given files from the specified from-set to the to-set. - Copyright (C) 1998 Free Software Foundation, Inc. + Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. @@ -295,7 +295,7 @@ print_version (FILE *stream, struct argp_state *state) Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "1998"); +"), "1999"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } @@ -319,7 +319,7 @@ process_block (iconv_t cd, const char *addr, size_t len, FILE *output) if (outptr != outbuf) { /* We have something to write out. */ - if (fwrite (outbuf, 1, outptr - outbuf, output) < outptr - outbuf + if (fwrite (outbuf, 1, outptr - outbuf, output) < outptr - outbuf || ferror (output)) { /* Error occurred while printing the result. */ |