/************************************************************************
*		エディタファイル操作処理	(AWFE_E.PLP)		*
*************************************************************************/
var OLDFILE[60];
var NEWFILE[60];
var MEMOno[1];

/*  MEMO を ｸﾛｰｽﾞ する	*/
%CloseAllMemo{
	case	(@mlast!=0 && @mcheck==0,{Yes},{mopen(@mlast)});
	case	(@mcheck!=0,{Yes},
		{loop	({mclose(2);  im(@mcheck!=0);});
		});
	};

%DELAllMemo{
	case	(@mlast > 0,
		{Yes},
		{
		MEMOno:=0;
		CloseAllMemo;
		loop	({mopen(@mlast);
			mclose(3);
			im(@mlast > 0);
			});
		});
	};

/* パラメタで指定されたディレクトリへ移動する(｢A:\｣と｢A:｣の両方が可能) */
%setcdir2{
	[dir]
	%dir2	@case(@nochar(dir),2,{im(dir|{\})},,{im(dir)});
	setcdir(dir2)
	};

/*	ﾌｧｲﾙ名に含まれる ﾜｲﾙﾄﾞｶｰﾄﾞ(*,?) をﾁｪｯｸする	*/
%WILD	{
	[file1]
	case	(@nochar(file1)==0,
		{Yes},{im({No})},
		{No},
		{
		case	(@getchar(file1,1,1),
			{*},{im({Yes})},
			{?},{im({Yes})},
			,{im(@WILD(@getchar(file1,2)))}
			);
		});
	};

/*	入力ファイル選択（ワイルドカード不可）	*/
%FILEsel0{
	[MSG,TYP]
	footnote(MSG);
	case	(TYP={},
		{Yes},{OLDFILE:=@filesel},
		{No},{OLDFILE:=@filesel(TYP)}
		);
	case	(OLDFILE={},
		{Yes},
		{im({})},
		{No},
		{
		case	(@WILD(OLDFILE),
			{Yes},
			{
			display({ワイルドカード指定はだめよン♪\n});
			FILEsel0(MSG,TYP);
			},
			{No},
			{
			case	(@nochar(@getcdir)==3,
				{Yes},{OLDFILE:=@getcdir|OLDFILE},
				{No},{OLDFILE:=@getcdir|{\}|OLDFILE});
			case	(@filechk(OLDFILE),
				{No},
				{
				display(OLDFILE|{がないわヨ☆\n});
				FILEsel0(MSG,TYP);
				},
				{Yes},
				{im(OLDFILE)}
				);
			});
		});
	};

/*	入力ファイル選択（ワイルドカード可）	*/
%FILEsel1{
	[MSG,TYP]
	footnote(MSG);
	case	(TYP={},
		{Yes},{OLDFILE:=@filesel},
		{No},{OLDFILE:=@filesel(TYP)});
	case	(OLDFILE={},
		{Yes},
		{im({})},
		{No},
		{
		case	(@WILD(OLDFILE),
			{Yes},
			{
			case	(@nochar(@getcdir)==3,
				{Yes},{OLDFILE:=@getcdir|OLDFILE},
				{No},{OLDFILE:=@getcdir|{\}|OLDFILE});
			im(OLDFILE);
			},
			{No},
			{
			case	(@nochar(@getcdir)==3,
				{Yes},{OLDFILE:=@getcdir|OLDFILE},
				{No},{OLDFILE:=@getcdir|{\}|OLDFILE});
			case	(@filechk(OLDFILE),
				{No},
				{
				display(OLDFILE|{がないわヨ☆\n});
				FILEsel1(MSG,TYP);
				},
				{Yes},
				{im(OLDFILE)}
				);
			});
		});
	};

/*	ファイルの内容表示･編集／保存･更新　処理	*/
%FEDIT	{
	setcdir(OLDDIR);
	%FILEsel2{
		[MSG,TYP]
		footnote(MSG);
		case	(TYP={},
			{Yes},{NEWFILE:=@filesel},
			{No},{NEWFILE:=@filesel(TYP)}
			);
		case	(NEWFILE={},
			{Yes},	{im({})},
			{No},
			{
			case	(@WILD(NEWFILE),
				{Yes},
				{
				case	(@nochar(@getcdir)==3,
					{Yes},{OLDFILE:=@getcdir|OLDFILE},
					{No},{OLDFILE:=@getcdir|{\}|OLDFILE});
				im(OLDFILE);
				display({ワイルドカードはだめヨ☆♪\n});
				FILEsel2(MSG,TYP);
				},
				{No},
				{
				case	(@nochar(@getcdir)==3,
					{Yes},{NEWFILE:=@getcdir|NEWFILE},
					{No},{NEWFILE:=@getcdir|{\}|NEWFILE});
				im(NEWFILE);
				});
			});
		};

	%save	{
		%file	@FILEsel2({保存ファイル名を指定してネ☆♪},);
		case	(file <> {},
			{Yes},
			{footnote(file|{ を保存処理中,,,♪});
			mclose(1);
			mwrite(file,MEMOno);
			mopen(MEMOno);
			mclose(3);
			im({No});
			},
			{No},{im({Yes})}
			);
		};

	%update{
		footnote(OLDFILE|{を更新処理中,,,♪});
		CloseAllMemo;
		dispoff({Yes});
		command({del }|OLDFILE);
		dispoff({No});
		mwrite(OLDFILE,MEMOno);
		mopen(MEMOno);
		mclose(3);
		im({No});
		};

	%cancel	{
		footnote({文書編集内容をクリアするわヨ☆♪});
		select({編集を中止する？(する / しない)},
			999,{footnote({});im({Yes})},
			{  す  る  },
			{
			footnote({文書編集の取消処理中,,,♪});
			CloseAllMemo;
			dispoff({Yes});
			dispoff({No});
			DELAllMemo;
			im({No});
			},
			{  しない  },{im({Yes})}
			);
		};

	%MEMONO	@mlast;
	case	(MEMONO==9,
		{Yes},
		{
		footnote({メモ９で編集処理中,,,♪});
		select	({メモ９でファイル編集する？},
			999,{MEMOno:=0},
			{  す る   },{MEMOno:=9},
			{　しない　},{MEMOno:=0}
			);
		},
		{No},{MEMOno:=MEMONO+1}
		);
	case	(MEMOno	> 0,
		{Yes},
		{
		CloseAllMemo;
		case	(@FILEsel0({[ﾌｧｲﾙ編集 (EDITER)] 編集ﾌｧｲﾙを選択してネ！♪}|{(右ｸﾘｯｸ で新規作成)},)<>{},
			{Yes},
			{mclear(MEMOno);
			mread(OLDFILE,MEMOno);
			mopen(MEMOno,0,21,639,417,{w});
			loop	({
			display({\n}|OLDFILE|{を編集中ですン♪});
                        footnote({更新    取消},{b});
			waitx();
			case	(@xtype,
				101,update,	201,update,
				103,cancel,	203,cancel,
				,	{im({Yes})}
				);
				});
			display({\n});
                        im({Yes});
			},
			{No},	/*	新規ファイルの編集 	*/
			{
			CloseAllMemo;
			madd(MEMOno,{\n});
			mclear(MEMOno);
			mopen(MEMOno,0,21,639,417,{w});
			loop	({
	                display({\n新規作成だよん♪});
                        footnote({保存    取消},{b});
			waitx();
			case	(@xtype,
				101,save,	201,save,
				103,cancel,	203,cancel,
				,	{im({No})});
				});
		        	display({\n});
                                im({No});
			});
		},
		{No},{}
		);
	};
FEDIT;
