#include "gnu_msgfmt.h"
static char *cmd;
int fuzzy_flag = 0;
int verbose_flag = 0;
int strict_flag = 0;
int po_error = 0;
char *inputdir = NULL;
char *outfile = NULL;
char **po_names;
static void
usage(void)
{
(void) fprintf(stderr,
gettext(ERR_USAGE), cmd);
exit(1);
}
int
main(int argc, char **argv)
{
int i, ret;
static struct flags flag;
(void) setlocale(LC_ALL, "");
#if !defined(TEXT_DOMAIN)
#define TEXT_DOMAIN "SYS_TEST"
#endif
(void) textdomain(TEXT_DOMAIN);
if (cmd = strrchr(argv[0], '/'))
++cmd;
else
cmd = argv[0];
ret = parse_option(&argc, &argv, &flag);
if (ret == -1) {
usage();
}
if (flag.idir) {
inputdir = flag.idir;
}
if (flag.ofile) {
outfile = flag.ofile;
catalog_init(outfile);
}
if (flag.fuzzy) {
fuzzy_flag = 1;
}
if (flag.sun_p) {
error(gettext(ERR_SUN_ON_GNU), cmd);
}
if (flag.verbose) {
verbose_flag = 1;
}
if (flag.strict) {
strict_flag = 1;
}
po_names = (char **)Xmalloc(argc * sizeof (char *));
while (argc-- > 0) {
if (verbose_flag) {
diag(gettext(DIAG_START_PROC), *argv);
}
po_init(*argv);
(void) yyparse();
po_fini();
argv++;
}
for (i = 0; i < cur_po_index; i++) {
free(po_names[i]);
}
free(po_names);
if (po_error) {
error(gettext(ERR_ERROR_FOUND), po_error);
}
output_all_gnu_mo_files();
return (0);
}