/*************************************************************************
*	"dcntool.c" : DOS コンソール用ツール
*************************************************************************/

int		_dcn_copy( char *dcn )
{
	int		ret;
	char	*fdl;
	char	*btn;
	int		srcDrv, dstDrv;
	char	srcDir[128], tmp[128], dstPn[128];

	srcDrv = FS_getdrv();	/* カレントドライブ・ディレクトリ保存	*/
	FS_getdir( srcDir );

	if ( (fdl = FDL_open(0)) == NULL )
		return (ERR);
	SYL_puts( C_HGREEN, "カレントディレクトリ上のファイルをすべて複写します。複写先に移動してください。");
	FDL_set_title( fdl, "FILE COPY : 複写先指定");
	FDL_set_wildcard( fdl, "*.*");

	ret = FDL_start(fdl);

	dstDrv = FDL_get_drv(fdl);
	strcpy( tmp, FDL_get_whare(fdl) );
	sprintf( dstPn, "%c:/%s", dstDrv + 'A', tmp );
	FDL_close(fdl);
	if ( ret != NORMAL )
		return	(DCNCMD_PROMPT);
	if ( srcDrv == dstDrv && FS_cmpfnam( srcDir, tmp) == 0 )
	{
		DLG_tmpMsgTime( DLGPOS_MOS_SET_CENTER, DLGPOS_MOS_SET_CENTER,
		    C_MBLACK, C_DLGBASE, COLMIX(C_ERROR,C_GRAY),
		    AplErrMsgTime, "  複写元と複写先が同じです。  ");
		return (DCNCMD_PROMPT);
	}
	btn = MNU_allocBtn( 2 );
	MNU_setBtn( btn, 0, '\r'  , KA_EXEC  , 1, "COPY : [実行]" );
	MNU_setBtn( btn, 1, '\x1B', KA_CANCEL, 2, "CANECEL : [取消]" );
	ret = MNU_selectBtn( DLGPOS_CENTER_OF_SCN, DLGPOS_CENTER_OF_SCN, 
	    C_MBLACK, C_DLGBASE, COLMIX(C_WARNNING,C_GRAY),
	    SELBTN_ATT_LEFT, 2, btn,
	    "複写元 : %c:/%s  \n複写先 : %s  \n        複写を行いますか？      ",
	    srcDrv + 'A', srcDir, dstPn );
	MNU_freeBtn( btn );
	if ( ret != 1 )
		return (DCNCMD_PROMPT);

	/* 複写開始	*/
	FS_chdrv( srcDrv );
	sprintf( tmp, "/%s", srcDir );
	FS_chdir( tmp );
	FM_fcopy( "*.*", 0x16, AFFCOPY_OVERWRITE_CHECK, dstPn, "" );

	return (DCNCMD_PROMPT);
}

int		_dcn_delete( char *dcn )
{
	int		i, ret;
	UINT	cf;
	char	*fn;
	char	*btn;
	char	*fdl;

	if ( (fdl = FDL_open((FDL_MODE_MULTI|FDL_MODE_BIT_DIRIGN|FDL_MODE_BIT_SIDEWORK))) == NULL )
		return (ERR);
	FDL_set_title( fdl, "FILE DELETE");
	FDL_set_wildcard( fdl, "*.*");
	SYL_puts(C_HGREEN,"削除するファイルを指定してください。");
	ret = FDL_start(fdl);
	if ( ret != NORMAL )
	{
		SYL_clear();
		FDL_close(fdl);
		return (DCNCMD_PROMPT);
	}
	SYL_clear();

	i = 0;
	while ( FDL_getMarkFile(fdl, i) != NULL )
		++i;

	if ( i == 0 )
	{
		FDL_close(fdl);
		DLG_tmpMsgTime( DLGPOS_MOS_SET_CENTER, DLGPOS_MOS_SET_CENTER,
		    C_MBLACK, C_DLGBASE, COLMIX(C_ERROR,C_GRAY),
		    AplErrMsgTime, "    ファイル名が指定されていません。  " );
		return (DCNCMD_PROMPT);
	}

	btn = MNU_allocBtn( 2 );
	MNU_setBtn( btn, 0, '\r'  , KA_EXEC  , 1, "DELETE : [実行]" );
	MNU_setBtn( btn, 1, '\x1B', KA_CANCEL, 2, "CANECEL : [取消]" );
	ret = MNU_selectBtn( DLGPOS_CENTER_OF_SCN, DLGPOS_CENTER_OF_SCN, 
		C_MBLACK, C_DLGBASE, COLMIX(C_WARNNING,C_GRAY), SELBTN_ATT_LEFT, 2, btn,
		"  %d 個のファイルが指定されています。  \n        削除しますか？      ",
		i );
	MNU_freeBtn( btn );
	if ( ret != 1 )
	{
		FDL_close(fdl);
		return (DCNCMD_PROMPT);
	}

	i = 0;
	while ( (fn = FDL_getMarkFile(fdl, i)) != NULL )
	{
		SYL_puts( C_HGREEN, "DELETE : %s", fn );
		FS_remove( fn );
		++i;
	}
	FDL_close(fdl);

	return (DCNCMD_PROMPT);
}
