improved TextInputStream
This commit is contained in:
parent
8d829b9690
commit
dd57965556
@ -59,6 +59,7 @@ namespace hgl
|
||||
|
||||
ByteOrderMask bom; ///<BOM头
|
||||
|
||||
ByteOrderMask default_bom; ///<缺省BOM,在没有BOM头时使用
|
||||
ParseCallback *callback; ///<回调函数
|
||||
|
||||
private:
|
||||
@ -75,6 +76,8 @@ namespace hgl
|
||||
SAFE_CLEAR_ARRAY(buffer);
|
||||
}
|
||||
|
||||
void SetDefaultBOM(const ByteOrderMask &bo){default_bom=bo;} ///<设置缺省BOM头}
|
||||
|
||||
/**
|
||||
* 运行并解晰文本
|
||||
* @param pc 解晰结果回调函数
|
||||
|
@ -15,6 +15,7 @@ namespace hgl
|
||||
stream_size=input_stream->Available();
|
||||
|
||||
bom=ByteOrderMask::NONE;
|
||||
default_bom=ByteOrderMask::UTF8;
|
||||
callback=nullptr;
|
||||
}
|
||||
|
||||
@ -37,14 +38,19 @@ namespace hgl
|
||||
else
|
||||
if(*p=='\r')
|
||||
{
|
||||
++p;
|
||||
if(*p=='\n')
|
||||
if(p[1]=='\n')
|
||||
{
|
||||
callback->OnLine(sp,p-sp-1,true);
|
||||
++line_count;
|
||||
++p;
|
||||
sp=p;
|
||||
callback->OnLine(sp,p-sp,true);
|
||||
p+=2;
|
||||
}
|
||||
else
|
||||
{
|
||||
callback->OnLine(sp,p-sp,true);
|
||||
++p;
|
||||
}
|
||||
|
||||
++line_count;
|
||||
sp=p;
|
||||
}
|
||||
else
|
||||
++p;
|
||||
@ -78,6 +84,10 @@ namespace hgl
|
||||
|
||||
p+=bfh->size;
|
||||
}
|
||||
else
|
||||
{
|
||||
bom=default_bom;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user