summaryrefslogtreecommitdiff
path: root/gnu/dist/gettext/gettext-tools/src/msgconv.c
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2016-01-13 01:59:22 +0000
committerchristos <christos@NetBSD.org>2016-01-13 01:59:22 +0000
commitceb99fff3a910a1efe2f446026eaf8d0ed4086b2 (patch)
treedd0e396e41faf55eaed78cab2c289c172037a537 /gnu/dist/gettext/gettext-tools/src/msgconv.c
parent466ecc77ee315b281b3c0a350304f6f5d1bc8fa7 (diff)
gettext has moved.
Diffstat (limited to 'gnu/dist/gettext/gettext-tools/src/msgconv.c')
-rw-r--r--gnu/dist/gettext/gettext-tools/src/msgconv.c368
1 files changed, 0 insertions, 368 deletions
diff --git a/gnu/dist/gettext/gettext-tools/src/msgconv.c b/gnu/dist/gettext/gettext-tools/src/msgconv.c
deleted file mode 100644
index efcd09fda94..00000000000
--- a/gnu/dist/gettext/gettext-tools/src/msgconv.c
+++ /dev/null
@@ -1,368 +0,0 @@
-/* Converts a translation catalog to a different character encoding.
- Copyright (C) 2001-2005 Free Software Foundation, Inc.
- Written by Bruno Haible <haible@clisp.cons.org>, 2001.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <getopt.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <locale.h>
-
-#include "closeout.h"
-#include "dir-list.h"
-#include "error.h"
-#include "error-progname.h"
-#include "progname.h"
-#include "relocatable.h"
-#include "basename.h"
-#include "message.h"
-#include "read-po.h"
-#include "write-po.h"
-#include "msgl-iconv.h"
-#include "localcharset.h"
-#include "exit.h"
-#include "gettext.h"
-
-#define _(str) gettext (str)
-
-
-/* Force output of PO file even if empty. */
-static int force_po;
-
-/* Target encoding. */
-static const char *to_code;
-
-/* Long options. */
-static const struct option long_options[] =
-{
- { "add-location", no_argument, &line_comment, 1 },
- { "directory", required_argument, NULL, 'D' },
- { "escape", no_argument, NULL, 'E' },
- { "force-po", no_argument, &force_po, 1 },
- { "help", no_argument, NULL, 'h' },
- { "indent", no_argument, NULL, 'i' },
- { "no-escape", no_argument, NULL, 'e' },
- { "no-location", no_argument, &line_comment, 0 },
- { "no-wrap", no_argument, NULL, CHAR_MAX + 1 },
- { "output-file", required_argument, NULL, 'o' },
- { "properties-input", no_argument, NULL, 'P' },
- { "properties-output", no_argument, NULL, 'p' },
- { "sort-by-file", no_argument, NULL, 'F' },
- { "sort-output", no_argument, NULL, 's' },
- { "strict", no_argument, NULL, 'S' },
- { "stringtable-input", no_argument, NULL, CHAR_MAX + 2 },
- { "stringtable-output", no_argument, NULL, CHAR_MAX + 3 },
- { "to-code", required_argument, NULL, 't' },
- { "version", no_argument, NULL, 'V' },
- { "width", required_argument, NULL, 'w', },
- { NULL, 0, NULL, 0 }
-};
-
-
-/* Forward declaration of local functions. */
-static void usage (int status)
-#if defined __GNUC__ && ((__GNUC__ == 2 && __GNUC_MINOR__ >= 5) || __GNUC__ > 2)
- __attribute__ ((noreturn))
-#endif
-;
-
-
-int
-main (int argc, char **argv)
-{
- int opt;
- bool do_help;
- bool do_version;
- char *output_file;
- const char *input_file;
- msgdomain_list_ty *result;
- input_syntax_ty output_syntax = syntax_po;
- bool sort_by_filepos = false;
- bool sort_by_msgid = false;
-
- /* Set program name for messages. */
- set_program_name (argv[0]);
- error_print_progname = maybe_print_progname;
-
-#ifdef HAVE_SETLOCALE
- /* Set locale via LC_ALL. */
- setlocale (LC_ALL, "");
-#endif
-
- /* Set the text message domain. */
- bindtextdomain (PACKAGE, relocate (LOCALEDIR));
- textdomain (PACKAGE);
-
- /* Ensure that write errors on stdout are detected. */
- atexit (close_stdout);
-
- /* Set default values for variables. */
- do_help = false;
- do_version = false;
- output_file = NULL;
- input_file = NULL;
-
- while ((opt = getopt_long (argc, argv, "D:eEFhio:pPst:Vw:", long_options,
- NULL))
- != EOF)
- switch (opt)
- {
- case '\0': /* Long option. */
- break;
-
- case 'D':
- dir_list_append (optarg);
- break;
-
- case 'e':
- message_print_style_escape (false);
- break;
-
- case 'E':
- message_print_style_escape (true);
- break;
-
- case 'F':
- sort_by_filepos = true;
- break;
-
- case 'h':
- do_help = true;
- break;
-
- case 'i':
- message_print_style_indent ();
- break;
-
- case 'o':
- output_file = optarg;
- break;
-
- case 'p':
- message_print_syntax_properties ();
- output_syntax = syntax_properties;
- break;
-
- case 'P':
- input_syntax = syntax_properties;
- break;
-
- case 's':
- sort_by_msgid = true;
- break;
-
- case 'S':
- message_print_style_uniforum ();
- break;
-
- case 't':
- to_code = optarg;
- break;
-
- case 'V':
- do_version = true;
- break;
-
- case 'w':
- {
- int value;
- char *endp;
- value = strtol (optarg, &endp, 10);
- if (endp != optarg)
- message_page_width_set (value);
- }
- break;
-
- case CHAR_MAX + 1: /* --no-wrap */
- message_page_width_ignore ();
- break;
-
- case CHAR_MAX + 2: /* --stringtable-input */
- input_syntax = syntax_stringtable;
- break;
-
- case CHAR_MAX + 3: /* --stringtable-output */
- message_print_syntax_stringtable ();
- break;
-
- default:
- usage (EXIT_FAILURE);
- break;
- }
-
- /* Version information is requested. */
- if (do_version)
- {
- printf ("%s (GNU %s) %s\n", basename (program_name), PACKAGE, VERSION);
- /* xgettext: no-wrap */
- printf (_("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\
-"),
- "2001-2005");
- printf (_("Written by %s.\n"), "Bruno Haible");
- exit (EXIT_SUCCESS);
- }
-
- /* Help is requested. */
- if (do_help)
- usage (EXIT_SUCCESS);
-
- /* Test whether we have an .po file name as argument. */
- if (optind == argc)
- input_file = "-";
- else if (optind + 1 == argc)
- input_file = argv[optind];
- else
- {
- error (EXIT_SUCCESS, 0, _("at most one input file allowed"));
- usage (EXIT_FAILURE);
- }
-
- /* Verify selected options. */
- if (!line_comment && sort_by_filepos)
- error (EXIT_FAILURE, 0, _("%s and %s are mutually exclusive"),
- "--no-location", "--sort-by-file");
-
- if (sort_by_msgid && sort_by_filepos)
- error (EXIT_FAILURE, 0, _("%s and %s are mutually exclusive"),
- "--sort-output", "--sort-by-file");
-
- /* Default for target encoding is current locale's encoding. */
- if (to_code == NULL)
- to_code = locale_charset ();
-
- /* Read input file. */
- result = read_po_file (input_file);
-
- /* Convert if and only if the output syntax supports different encodings. */
- if (output_syntax != syntax_properties
- && output_syntax != syntax_stringtable)
- result = iconv_msgdomain_list (result, to_code, input_file);
-
- /* Sort the results. */
- if (sort_by_filepos)
- msgdomain_list_sort_by_filepos (result);
- else if (sort_by_msgid)
- msgdomain_list_sort_by_msgid (result);
-
- /* Write the merged message list out. */
- msgdomain_list_print (result, output_file, force_po, false);
-
- exit (EXIT_SUCCESS);
-}
-
-
-/* Display usage information and exit. */
-static void
-usage (int status)
-{
- if (status != EXIT_SUCCESS)
- fprintf (stderr, _("Try `%s --help' for more information.\n"),
- program_name);
- else
- {
- printf (_("\
-Usage: %s [OPTION] [INPUTFILE]\n\
-"), program_name);
- printf ("\n");
- printf (_("\
-Converts a translation catalog to a different character encoding.\n\
-"));
- printf ("\n");
- printf (_("\
-Mandatory arguments to long options are mandatory for short options too.\n"));
- printf ("\n");
- printf (_("\
-Input file location:\n"));
- printf (_("\
- INPUTFILE input PO file\n"));
- printf (_("\
- -D, --directory=DIRECTORY add DIRECTORY to list for input files search\n"));
- printf (_("\
-If no input file is given or if it is -, standard input is read.\n"));
- printf ("\n");
- printf (_("\
-Output file location:\n"));
- printf (_("\
- -o, --output-file=FILE write output to specified file\n"));
- printf (_("\
-The results are written to standard output if no output file is specified\n\
-or if it is -.\n"));
- printf ("\n");
- printf (_("\
-Conversion target:\n"));
- printf (_("\
- -t, --to-code=NAME encoding for output\n"));
- printf (_("\
-The default encoding is the current locale's encoding.\n"));
- printf ("\n");
- printf (_("\
-Input file syntax:\n"));
- printf (_("\
- -P, --properties-input input file is in Java .properties syntax\n"));
- printf (_("\
- --stringtable-input input file is in NeXTstep/GNUstep .strings syntax\n"));
- printf ("\n");
- printf (_("\
-Output details:\n"));
- printf (_("\
- -e, --no-escape do not use C escapes in output (default)\n"));
- printf (_("\
- -E, --escape use C escapes in output, no extended chars\n"));
- printf (_("\
- --force-po write PO file even if empty\n"));
- printf (_("\
- -i, --indent indented output style\n"));
- printf (_("\
- --no-location suppress '#: filename:line' lines\n"));
- printf (_("\
- --add-location preserve '#: filename:line' lines (default)\n"));
- printf (_("\
- --strict strict Uniforum output style\n"));
- printf (_("\
- -p, --properties-output write out a Java .properties file\n"));
- printf (_("\
- --stringtable-output write out a NeXTstep/GNUstep .strings file\n"));
- printf (_("\
- -w, --width=NUMBER set output page width\n"));
- printf (_("\
- --no-wrap do not break long message lines, longer than\n\
- the output page width, into several lines\n"));
- printf (_("\
- -s, --sort-output generate sorted output\n"));
- printf (_("\
- -F, --sort-by-file sort output by file location\n"));
- printf ("\n");
- printf (_("\
-Informative output:\n"));
- printf (_("\
- -h, --help display this help and exit\n"));
- printf (_("\
- -V, --version output version information and exit\n"));
- printf ("\n");
- fputs (_("Report bugs to <bug-gnu-gettext@gnu.org>.\n"),
- stdout);
- }
-
- exit (status);
-}