///////////////////////////////////////////////////////////////
// ScriptRunner.c
// TaEditのプラグイン
// 任意のコマンドを実行する
///////////////////////////////////////////////////////////////

#include <stdlib.h>
#include <malloc.h>
#include "../TaEdit/PluginFuncID.h"

void ScriptRunner( PFT_GetAPIFunction GetAPIFunction )
{
	PFT_GetConfigValue GetConfigValue = (PFT_GetConfigValue)GetAPIFunction( PFID_GETCONFIGVALUE );
	PFT_GetFileName GetFileName = (PFT_GetFileName)GetAPIFunction( PFID_GETFILENAME );
	const wchar_t *pCommand;
	char *pBuf;
	size_t len;

	// 環境変数を設定
	setenv( "SCRRUN_FILE_NAME", GetFileName(), PFT_TRUE );

	// コマンドとして実行するべき文字列を取得
	pCommand = GetConfigValue( L"Command" );
	if ( NULL == pCommand ) return ;

	// 文字コードを変換
	len = wcslen( pCommand );
	pBuf = (char*)malloc( sizeof( wchar_t ) * len );
	if ( NULL == pBuf ) return ;
	wcstombs( pBuf, pCommand, len * sizeof( wchar_t ) );

	// 実行
	system( pBuf );

	free( pBuf );
}
