-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
XML宣言を用いた文字コード判別処理を強化する #1422
Merged
Merged
XML宣言を用いた文字コード判別処理を強化する #1422
Changes from 1 commit
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
9efb280
[patchunicode#1050] エンコーディング名による文字コードの設定の修正
c14cd38
memicmpを_memicmpに置換
463d262
追加したエイリアスを認識できていなかった問題を修正
8686e07
変更漏れと思わしき箇所に対応を行った
88ebecc
追加したif文の判定結果が常に偽となる可能性を排除する
a9524d1
認識可能なエイリアスを拡充する
57bf7ae
文字コードの定義で重複しているものを一つにまとめた
d4a1777
コード上のコメントを更新
79e7307
GetEncofing_metaでのif文の判定回数を減らす
7d0d297
エンコーディング名の定義にマクロを導入する
64fe1e0
日付の入ったコメントが残っていたので除去する
39159b0
追加した変数が状況次第で使われない可能性に対応
e821b7c
文字数のチェックにループを使わないようにする
d3d8a4d
AutoDetect系関数における判定処理を統一する
0ea3203
encoding指定が引用符で終わっていない場合に判定処理を行わないようにする
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
文字数のチェックにループを使わないようにする
- Loading branch information
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
このまま進めるみたいなので、スマホから失礼します。
ケチ臭い指摘で大変恐縮ですが、string_viewのほうが例外安全でスケールもしやすいと思います。
string_viewはC++17からでVC2017も対応済みです。
sBufのコンストラクタ引数のpBufは見た感じNUL終端文字列ではないかもしれません。長さも指定するのがおすすめです。
std::string::find_first_ofはstd::find_first_ofと違って、見つからないときに、npos(-1)を返します。npos-iが少し健康的ではない気がします。
(実際の動作上は問題ないですけど、MatchEncodingの長さの引数がマイナス値になります)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ありがとうございます。
確かにNULL終端がないように見えますね。呼び出し元から渡された長さ情報(
nSize
)を使って、std::string_view
で構築するようにしておきます。また、
MatchEncoding
の第2引数が負数だと判定は成功しないはずなので、これを呼ぶ必要はたぶんないです。encoding指定が引用符で括られていないときは判定を省略しているようなので、
find_first_of
でnpos
が返ってきたら指定が閉じられていないものと判断し、同様に取り扱うようにします。There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NUL終端は、付けたらいいと思います。
文字列として扱うバイト配列をNUL終端せずに使うことが不自然です。
この辺で確保量を +1 してやればよいはず。
sakura/sakura_core/charset/CCodeMediator.cpp
Lines 69 to 70 in 455a7ff
呼出元は他にもあるので、対応するなら網羅する必要ありです。
ここの関数はC++で普通に書いたほうが(≒正規表現で書いたほうが)分かりやすいと思います。
もちろん書換は別件で構わないです。