Change copyright notice from GPLv2+ to GPLv3+.
[gnulib.git] / tests / test-iconvme.c
1 /* Recode strings between character sets, using iconv.
2    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
3    Written by Simon Josefsson.
4
5    This program is free software: you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
17
18 #include <stdlib.h>
19 #include <stdio.h>
20
21 #include "iconvme.h"
22
23 int main (int ac, char *av[])
24 {
25   char *in = NULL, *out = NULL;
26   char *to = NULL, *from = NULL;
27
28   if (ac > 1)
29     from = av[1];
30
31   if (ac > 2)
32     to = av[2];
33
34   if (ac > 3)
35     in = av[3];
36
37   if (!in)
38     {
39       size_t len = 0;
40       printf ("Enter string to convert:\n\t> ");
41       if (getline (&in, &len, stdin) < 0)
42         perror ("getline");
43       if (in[strlen (in) - 1] == '\n')
44         in[strlen (in) - 1] = '\0';
45     }
46
47   if (!to)
48     {
49       size_t len = 0;
50       printf ("Enter destination code set:\n\t> ");
51       if (getline (&to, &len, stdin) < 0)
52         perror ("getline");
53       if (to[strlen (to) - 1] == '\n')
54         to[strlen (to) - 1] = '\0';
55     }
56
57   if (!from)
58     {
59       size_t len = 0;
60       printf ("Enter source code set:\n\t> ");
61       if (getline (&from, &len, stdin) < 0)
62         perror ("getline");
63       if (from[strlen (from) - 1] == '\n')
64         from[strlen (from) - 1] = '\0';
65     }
66
67   printf (" Input string: `%s'\n"
68           "From code set: `%s'\n"
69           "  To code set: `%s'\n",
70           in, from, to);
71
72   out = iconv_string (in, from, to);
73
74   if (out == NULL)
75     perror ("iconv");
76   else
77     {
78       printf ("\nOutput: `%s'\n", out);
79       free (out);
80     }
81
82   return EXIT_SUCCESS;
83 }