예제 #1
0
static void utf16big_start(txtEncodeParser *thiz, int startoffset)
{
	__u8 *buff;
	int len;

	buff  = thiz->bufferTxt + BufferLenght;							//缓冲区指针

	if( startoffset <= 2 )
	{
		thiz->bof			=	EPDK_TRUE;
		thiz->start			=	2;
		eLIBs_fseek(thiz->fd, thiz->start , ELIBS_SEEK_SET);		//待定--------------
		return;
	}
	
	thiz->bof				=	EPDK_FALSE;
	
	startoffset = (startoffset%2)?(startoffset+1):(startoffset);
		
	eLIBs_fseek(thiz->fd, startoffset , ELIBS_SEEK_SET);
	len = eLIBs_fread(buff, sizeof(char), BufferLenght, thiz->fd);
	
	if( len != BufferLenght)
	{
		thiz->eof	= EPDK_TRUE;
	}
	
	thiz->eof = EPDK_FALSE;
	thiz->start = startoffset;
	return;	
}
예제 #2
0
static void utf16big_next(txtEncodeParser *thiz, int current_start)
{
	int len, end;
	
	thiz->start 		 = current_start;
	thiz->bof			 = (current_start < 2)?EPDK_TRUE : EPDK_FALSE;
	thiz->bufferTxtlen 	 = 0;										//文件数据缓冲清0
	
	eLIBs_fseek( thiz->fd, thiz->start, ELIBS_SEEK_SET);					
	len = eLIBs_fread(thiz->bufferTxt, sizeof(char), BufferLenght, thiz->fd);	

    if (len != BufferLenght) 									//已读到了文章的尾部
	{ 			
        thiz->eof = EPDK_TRUE;									//置文件尾部标志位       
		thiz->bufferTxtlen = len;	
		
		__inf("%s %d len = %d \n", __FUNCTION__, __LINE__, len);
        return;
    }
	
    thiz->eof = EPDK_FALSE;										//删除缓冲区中最后一个回车以后的字符
    end = (len%2)?(len+1):len;
    		
	thiz->bufferTxtlen = end;	
	__inf("%s %d len = %d \n", __FUNCTION__, __LINE__, end);
	return;	
}
예제 #3
0
static void utf16big_prev(txtEncodeParser *thiz, int current_start)
{
	int start;
	int len;
	//__u8 *b;

	start 		= current_start - BufferLenght;
	thiz->bof 	= EPDK_FALSE;

	//b 			= thiz->bufferTxt + BufferLenght;

	if(start < 0)
	{
		start = 2;
		thiz->bof = EPDK_TRUE;

		eLIBs_fseek( thiz->fd, start, ELIBS_SEEK_SET);
		len = eLIBs_fread(thiz->bufferTxt, sizeof(char), current_start, thiz->fd);
		
		thiz->bufferTxtlen = current_start;
		thiz->start = 0;
		return;
	}	
	
	start = (start%2)?(start+1):start;
	
	thiz->start = start;
	
	__inf(" %s %d start = %d end =  %d \n", __FUNCTION__, __LINE__, start, current_start);
	eLIBs_fseek( thiz->fd, start, ELIBS_SEEK_SET);
	len = eLIBs_fread(thiz->bufferTxt, sizeof(char), BufferLenght, thiz->fd);
	
	__inf(" %s %d len = %d \n", __FUNCTION__, __LINE__, len);
	if (len != BufferLenght) 									//已读到了文章的尾部
	{ 			
        thiz->eof = EPDK_TRUE;								//置文件尾部标志位  
    }

	thiz->bufferTxtlen = len;	
}
예제 #4
0
size_t fread(void *ptr,size_t size, size_t nmemb, FILE *fp)
{
#if	0
	ES_FILE * edebug;
	edebug = eLIBs_fopen("e:\\fp_fread_output.txt", "w+");
	eLIBs_fseek(edebug, 0, 2);
	fprintf(fp, "%x, %x, %x, %x, %x, %x, %x", ptr, size, nmemb, fp, &__stdin, &__stdout, &__stderr);
	eLIBs_fclose(edebug);
#endif
	if (fp == (FILE *)&__stdin || fp == (FILE *)&__stdout || fp == (FILE *)&__stderr)
		return size;				// 待实现
	return eLIBs_fread(ptr,size,nmemb, (ES_FILE *)fp);
}
예제 #5
0
파일: home.c 프로젝트: shuntianxia/86Box
static H_LYR StandyWndCreate(const char *file_path)
{
	H_LYR hLyr;
	int rotation;
	FB frameBuf;

	ES_FILE *file = NULL;
	void *file_data = NULL;
	bmp_file_head_t *f_head= NULL;
	__layerwincreate_para_t layerWinCreate;
	__disp_layer_para_t lyrPara;
	__u32 lenth;

	file = eLIBs_fopen(file_path,"rb");
	if(file == NULL){
		__msg("file open fail\n");
		//return NULL;
		goto end;
	}
	f_head = eLIBs_malloc(sizeof(bmp_file_head_t));
	if(f_head==NULL){
  		__msg("file malloc fail\n");
		goto end;
	}
	eLIBs_fread(f_head,1,sizeof(bmp_file_head_t),file);
	if(f_head->bfType[0]!='B'||f_head->bfType[1]!='M'){
		__msg("file isnot bmp\n");
		goto end;
	}
	file_data = eLIBs_malloc(f_head->bfSize);
	eLIBs_fseek(file,0,SEEK_SET);
	lenth = eLIBs_fread(file_data,1,f_head->bfSize,file);
	__msg("lenth==%d\n",lenth);
	rotation = GUI_GetScnDir();
	MwLayerParaInit(&layerWinCreate, &frameBuf, &lyrPara, "Layer", rotation, 1, 320, 240);
	MwFillSize(&frameBuf.size, 320 , 240);
	MwFillRect(&lyrPara.src_win, 0, 0, 320, 240);
	hLyr = GUI_LyrWinCreate(&layerWinCreate);
	if (NULL == hLyr) {
		__msg("Create layer (%s) failed", layerWinCreate.name);
		goto end;
	}
	GUI_LyrWinSel(hLyr); 
	GUI_BMP_Draw(file_data, 0, 0);
	GUI_LyrWinSetSta(hLyr,GUI_LYRWIN_STA_ON);
	eLIBs_fclose(file);
	eLIBs_free(f_head);
	eLIBs_free(file_data);
	return hLyr;
end:
	if(file){
       eLIBs_fclose(file);
	}
	if(f_head){
		eLIBs_free(f_head);
	}
	if(file_data){
		eLIBs_free(file_data);
	}
	return NULL;
}