Exemplo n.º 1
0
Arquivo: code.c Projeto: Pakrik/libdb
int
main(int argc, char *argv[])
{
	int ch;
	char *cfile, *hfile;

	/* Initialize globals. */
	if ((progname = strrchr(argv[0], '/')) == NULL)
		progname = argv[0];
	else
		++progname;

	/* Initialize arguments. */
	cfile = "csv_local.c";		/* Default header/source files */
	hfile = "csv_local.h";

	/* Process arguments. */
	while ((ch = getopt(argc, argv, "c:f:h:v")) != EOF)
		switch (ch) {
		case 'c':
			cfile = optarg;
			break;
		case 'f':
			if (freopen(optarg, "r", stdin) == NULL) {
				fprintf(stderr,
				    "%s: %s\n", optarg, strerror(errno));
				return (EXIT_FAILURE);
			}
			break;
		case 'h':
			hfile = optarg;
			break;
		case 'v':
			++verbose;
			break;
		case '?':
		default:
			return (usage());
		}
	argc -= optind;
	argv += optind;

	if (*argv != NULL)
		return (usage());

	/* Load records from the input file. */
	if (desc_load())
		return (EXIT_FAILURE);

	/* Dump records for debugging. */
	if (verbose && desc_dump())
		return (EXIT_FAILURE);

	/* Open output files. */
	if ((cfp = fopen(cfile, "w")) == NULL) {
		fprintf(stderr,
		    "%s: %s: %s\n", progname, cfile, strerror(errno));
		return (EXIT_FAILURE);
	}
	if ((hfp = fopen(hfile, "w")) == NULL) {
		fprintf(stderr,
		    "%s: %s: %s\n", progname, hfile, strerror(errno));
		return (EXIT_FAILURE);
	}

	/* Build the source and header files. */
	if (code_header())
		return (EXIT_FAILURE);
	if (code_source())
		return (EXIT_FAILURE);

	return (EXIT_SUCCESS);
}
Exemplo n.º 2
0
int
main(int argc, char *argv[])
{
	int ch;

	/* Initialize globals. */
	if ((progname = strrchr(argv[0], '/')) == NULL)
		progname = argv[0];
	else
		++progname;

	/* Initialize arguments. */
    verbose = 0;

    if (argc < 2)
        return(usage());

	/* Process arguments. */
	while ((ch = getopt(argc, argv, "c:f:h:v")) != EOF){
		switch (ch) {
		case 'c':
			cfile = optarg;
			break;
		case 'f':
			if (freopen(optarg, "r", stdin) == NULL) {
				fprintf(stderr,
				    "%s: %s\n", optarg, strerror(errno));
				return (EXIT_FAILURE);
			}
			break;
		case 'h':
			hfile = optarg;
			break;
        case 'v':
			++verbose;
			break;
		case '?':
		default:
			return (usage());
        }
    }

	argc -= optind;
	argv += optind;

	if (*argv != NULL)
		return (usage());

    /* Open header file. Some lines will be copied directly to header
       file while loading the description file.*/
    if ((hfp = fopen(hfile, "w")) == NULL) {
		fprintf(stderr,
		    "%s: %s: %s\n", progname, hfile, strerror(errno));
		return (EXIT_FAILURE);
	}

    if (code_header_start())
        return(EXIT_FAILURE);

	/* Load records from the input file. */
	if (sp_desc_load())
		return (EXIT_FAILURE);

	/* Dump records for debugging. */
	if (verbose && sp_desc_dump())
		return (EXIT_FAILURE);

	/* Open source file. */
	if ((cfp = fopen(cfile, "w")) == NULL) {
		fprintf(stderr,
		    "%s: %s: %s\n", progname, cfile, strerror(errno));
		return (EXIT_FAILURE);
	}
		/* Build the source and header files. */
	if (code_header())
		return (EXIT_FAILURE);
	if (code_source())
		return (EXIT_FAILURE);

    fclose(hfp);
    fclose(cfp);

    if((trhfp = fopen(tr_hfile, "w")) == NULL){
        fprintf(stderr,
		    "%s: %s: %s\n", progname, tr_hfile, strerror(errno));
		return (EXIT_FAILURE);
    }

    if((trcfp = fopen(tr_cfile, "w")) == NULL){
        fprintf(stderr,
		    "%s: %s: %s\n", progname, tr_cfile, strerror(errno));
		return (EXIT_FAILURE);
	}

    if (tr_code_header())
        return(EXIT_FAILURE);
    if (tr_code_source())
        return(EXIT_FAILURE);

    fclose(trhfp);
    fclose(trcfp);
    
    //for(f = fields; field_cnt > 0; --field_cnt, ++f)
    //    free_subfields(f);

    //free(sp_fields);

	return (EXIT_SUCCESS);
}