Skip to content

Commit

Permalink
encoding指定が引用符で終わっていない場合に判定処理を行わないようにする
Browse files Browse the repository at this point in the history
::find_first_ofの戻り値がnposだった場合、MatchEncodingの第2引数が負数となってしまうため、
MatchEncodingでの判定処理が成功しなくなってしまう。
もしnposの場合は判定を省略し、指定がなかったものとして扱うようにする。

std::stringを使用していた箇所をstd::string_viewを使用するように変更する。
  • Loading branch information
Kohki Akikaze committed Oct 8, 2020
1 parent d3d8a4d commit 0ea3203
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions sakura_core/charset/CESI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -981,8 +981,12 @@ ECodeType CESI::AutoDetectByXML( const char* pBuf, int nSize )
}
quoteChar = pBuf[i];
i++;
std::string sBuf = pBuf;
return MatchEncoding( pBuf + i, sBuf.find_first_of( quoteChar, i ) - i );
std::string_view sBuf( pBuf, nSize );
auto nLen = sBuf.find_first_of( quoteChar, i );
if( nLen == std::string_view::npos ){
break;
}
return MatchEncoding( pBuf + i, nLen - i );
}else{
if( pBuf[i] == '<' || pBuf[i] == '>' ){
break;
Expand Down

0 comments on commit 0ea3203

Please sign in to comment.