diff options
| author | christos <christos@NetBSD.org> | 2016-01-13 01:59:22 +0000 |
|---|---|---|
| committer | christos <christos@NetBSD.org> | 2016-01-13 01:59:22 +0000 |
| commit | ceb99fff3a910a1efe2f446026eaf8d0ed4086b2 (patch) | |
| tree | dd0e396e41faf55eaed78cab2c289c172037a537 /gnu/dist/gettext/gettext-tools/src/msgconv.c | |
| parent | 466ecc77ee315b281b3c0a350304f6f5d1bc8fa7 (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.c | 368 |
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); -} |
