diff options
-rw-r--r-- | iconv/iconv_prog.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c index 8776192e37..3c7851f7a5 100644 --- a/iconv/iconv_prog.c +++ b/iconv/iconv_prog.c @@ -19,11 +19,13 @@ Boston, MA 02111-1307, USA. */ #include <argp.h> +#include <assert.h> #include <ctype.h> #include <errno.h> #include <error.h> #include <fcntl.h> #include <iconv.h> +#include <langinfo.h> #include <locale.h> #include <search.h> #include <stdio.h> @@ -131,16 +133,20 @@ main (int argc, char *argv[]) print_known_names (); exit (EXIT_SUCCESS); } - - /* If either the from- or to-code is not specified this is an error - since we do not know what to do. */ - if (from_code == NULL && to_code == NULL) - error (EXIT_FAILURE, 0, - _("neither original nor target encoding specified")); if (from_code == NULL) - error (EXIT_FAILURE, 0, _("original encoding not specified using `-f'")); + { + /* The Unix standard says that in this case the charset of the current + locale is used. */ + from_code = nl_langinfo (CODESET); + assert (from_code != NULL); + } if (to_code == NULL) - error (EXIT_FAILURE, 0, _("target encoding not specified using `-t'")); + { + /* The Unix standard says that in this case the charset of the current + locale is used. */ + to_code = nl_langinfo (CODESET); + assert (to_code != NULL); + } /* If we have to ignore errors make sure we use the appropriate name for the to-character-set. */ |