/*

MercuryInstaller スタートアップルーチン

*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<jstring.h>

#include"mercury.h"
/*-----------------------------オプションの解析------------------------------*/
static	void	option(char *s)
{
	switch	(s[1])
	{
	case 'D':
	case 'd':
		Drive = s[2];
		break;
	case 'C':
	case 'c':
		Flag_noignore = 1;
		break;
	case 'E':
	case 'e':
		Flag_isfmesc = (s[2]=='F' || s[2]=='f');
		break;
	case 'h':
	case 'H':
	case '?':
		printf(	"書式:MERCURY [オプション] [インデックスファイル名]\n"
			"\n"
			"オプション : \n"
			"     -D[ドライブ名]   データドライブの指定\n"
			"     -C               インデックスファイルの検査を厳密に行う\n"
			"     -EF              FMシリーズ用エスケープシーケンスを使用\n");
		exit(0);
	default:
		printf("不正なオプションです : %s\n",s);
		exit(1);
	}
}
/*-----------------------------スタートアップ--------------------------------*/
extern	int	main(int argc,char **argv)
{
	char	*p = argv[0];
	char	buf[128];

	diet_init();

	printf(	"MercuryInstaller Version " VERSION " for MS-DOS\n"
		"Copyright (c) 1994-95 Delmonta\n\n");
	
	fclose(stdaux);
	fclose(stdprn);
	freopen("/dev/con","r",stdin);
	freopen("/dev/con","w",stdout);

	while	(argv++,--argc)
	{
		if	(*argv[0]=='-')
			option(argv[0]);
		else
		{
			char	c = Drive;
			readidxfile(argv[0]);
			if	(c!='\0')
				Drive = c;
			goto end;
		}
	}

	/* コマンドラインでファイル名が指定されなかった場合 */
	if	(p!=NULL)
	{
		strcpy(buf,p);
		strcpy(jstrrchr(buf,'\\')+1,DEFAULT_IDXFILENAME);
		p = buf;
	}
	else
		p = DEFAULT_IDXFILENAME;

	readidxfile(p);

end:

	menu();
}
/*-----------------------------End of start.c--------------------------------*/
