
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include <egb.h>
#include <mos.h>
#include <guidbg.h>
#include <mtl.h>
#include <eintm.h>
#include <mtlein.h>
#include "eindd.h"

int		EINDD_analysisCount( POOLDATA *ptr , int *select , int *mosPos )
{
	char	mosFlag ;
	int		ret , sel , retPol ;
	size_t	size, len ;
	uchar	*rec, *work ;
	ushort	tag ;

	ret = NOTEXISTEIN ;		// EIN(TM) プールデータがない場合

	// マウス座標取得をするかどうか
	mosFlag = 0 ;
	if ( mosPos != NULL )	mosFlag = 1 ;

	sel = 0 ;

	if ( ptr->Kind & POOL_REAL )
	{
		// テキストブロックの先頭アドレスを探す
		retPol = POL_cbSearchBlock( ( uchar *)ptr->dPtr , PCBF_TEXT , 1 ,
					&rec , &size ) ;
		if ( retPol > 0 )
		{
			work = POL_cbGetRecSize( rec , &len ) ;
			do
			{
				tag = *(ushort *)work ;
				work = POL_cbGetRecSize( work , &len ) ;

				// テキストファイル名カウント
				if ( ( tag & 0xff ) == PCBF_EINTEXTFILE )
				{
					sel++ ;
					ret = NOERR ;
				}
				// マウス位置データ
				else if ( ( ( tag & 0xff ) == PCBF_EINMOSPOSDATA ) && mosFlag )
				{
					memcpy( mosPos , work , 4 ) ;
					ret = NOERR ;
				}

				work += len ;

			} while( ( tag & 0xff ) != 0x1f ) ;	// データレコード終了
		}
	}

	*select = sel ;

	return ret ;
}

