/* convertm.c */
#include <stdio.h>

/*
 * CVT - convert Amig*-format loadfiles to GEMDOS.
 *
 * THIS PROGRAM IS (C)1985 LANDON M. DYER AND MAY BE
 * DISTRIBUTED ONLY IF THE FOLLOWING CONDITIONS ARE MET:
 * 	1. YOU DO NOT MAKE A PROFIT ON IT.
 * 	2. IF YOU HAVE THE SOURCE CODE, YOU GIVE THAT AWAY, TOO.
 *	3. YOU INCLUDE THIS NOTICE IN THE SOURCE AND OBJECT CODE.
 *
 *----
 * 25-Nov-1985 lmd	Hacked it up (from earlier file-dump hacks).
 *
 */
char *version = "0.50";
char *date = "25-Nov-1985";

#define	STRINGSIZ	256
#define	READ		0
#define	WRITE		1

int debug = 0;
int printing = 0;


/*
 * Handle commandline
 */
main(argc, argv)
int argc;
char **argv;
{
    int argno;
    int fd, ofd;
    char *s, ofn[STRINGSIZ], ifn[STRINGSIZ];

    /*
     * No instructions:
     * print info about use and
     * exit with bad return code.
     */
    if (argc <= 1)
    {
	s = "-----------------------------------------------------------------\n";
	fprintf(stderr, s);
	fprintf(stderr, "CVT version %s                                      %s\n", version, date);
	fprintf(stderr, "THIS  PROGRAM IS  (C)1985  LANDON M. DYER  AND MAY BE DISTRIBUTED\n");
	fprintf(stderr, "ONLY IF THE FOLLOWING CONDITIONS ARE MET:\n");
	fprintf(stderr, "\t1. YOU DO NOT MAKE A PROFIT ON IT.\n");
	fprintf(stderr, "\t2. IF YOU HAVE THE SOURCE CODE, YOU GIVE THAT AWAY, TOO.\n");
	fprintf(stderr, "\t3. YOU INCLUDE THIS NOTICE IN THE SOURCE AND OBJECT CODE.\n");
	fprintf(stderr, s);
	fprintf(stderr, "Usage:\n");
	fprintf(stderr, "CVT [-d] [-p] inputfile[.LN] [inputfile...]\n");
	fprintf(stderr, "        ==> file.PRG output files.\n");
	exit(1);
    }


    for (argno = 1; argno < argc; ++argno)
        if (*argv[argno] == '-')
	    for (s = &argv[argno][1]; *s; ++s)
		switch(*s)
		{
		    case 'p':
		    case 'P':
			printing = 1;
			printf("CVT version %s %s\n", version, date);
			break;

		    case 'd':
		    case 'D':
			debug = 1;
			fprintf(stderr, "~ Debugging ON\n");
			break;

		    default:
			fprintf(stderr, "Unknown option: %s\n", argv[argno]);
			exit(1);
		}
	else {
	    strcpy(ifn, argv[argno]);		/* file[.LN] (soft ext.) */
	    fext(ifn, ".ln", 0);
	    strcpy(ofn, argv[argno]);		/* file[.PRG] (hard ext.) */
	    fext(ofn, ".prg", 1);

	    fd = ebinopen(ifn, READ);
	    ofd = ebinopen(ofn, WRITE);

	    if (printing)
		printf("%s ==> %s\n", ifn, ofn);

	    convert(fd, ofd);			/* convert, then close */
	    close(fd);
	    close(ofd);
	}
}


/*
 * Panic and give up.
 */
panic(s)
char *s;
{
    fprintf(stderr, "Panic: %s\n", s);
    exit(1);
}
