summaryrefslogtreecommitdiff
path: root/iconv
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-03-11 20:12:16 +0000
committerUlrich Drepper <drepper@redhat.com>2008-03-11 20:12:16 +0000
commit5484ff515e97e1be0ce77ca171b1476558e2521f (patch)
tree74350fff0886defbdf93761fdd1a59f0383f3307 /iconv
parentf3dc3415ec180297486e0962e6c41caa92f64333 (diff)
(charmap_conversion): Pass name of output file not stream for output file. Open output file here.
Diffstat (limited to 'iconv')
-rw-r--r--iconv/iconv_charmap.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/iconv/iconv_charmap.c b/iconv/iconv_charmap.c
index f679c64eb2..d128111912 100644
--- a/iconv/iconv_charmap.c
+++ b/iconv/iconv_charmap.c
@@ -1,5 +1,5 @@
/* Convert using charmaps and possibly iconv().
- Copyright (C) 2001, 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005, 2006, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
@@ -94,7 +94,8 @@ static int process_file (struct convtable *tbl, FILE *input, FILE *output);
int
charmap_conversion (const char *from_code, struct charmap_t *from_charmap,
const char *to_code, struct charmap_t *to_charmap,
- int argc, int remaining, char *argv[], FILE *output)
+ int argc, int remaining, char *argv[],
+ const char *output_file)
{
struct convtable *cvtbl;
int status = EXIT_SUCCESS;
@@ -132,6 +133,17 @@ charmap_conversion (const char *from_code, struct charmap_t *from_charmap,
if (cvtbl == NULL)
return EXIT_FAILURE;
+ /* Determine output file. */
+ FILE *output;
+ if (output_file != NULL && strcmp (output_file, "-") != 0)
+ {
+ output = fopen (output_file, "w");
+ if (output == NULL)
+ error (EXIT_FAILURE, errno, _("cannot open output file"));
+ }
+ else
+ output = stdout;
+
/* We can now start the conversion. */
if (remaining == argc)
{