Merge branch 'work' into cherry-picks
予約枠を微調整
「予約枠を微調整」で予約枠を塗りつぶさないときのプロパティを元に戻す
Epgtimerの未使用22ファイルを撤去

未使用だった古い重複ファイルを削除した
2ch_EDCB/37/101 の21ファイル+抜けてる1ファイル
_CreateFile(2)の仕様を単純化

読み込みアクセスでもディレクトリを作成しようとするのは(必要な場合もあるが)よくないと思う
_CreateFile2はコメントが仕様と乖離していた
CreateEventのセキュリティ記述子を理由なく剥がさない
EpgDBManager.hを2013でビルドできるようにする

0fb148ac59cb9ff040882bac83c8343f541b4679 でunique_ptrを使用するようになったため
EDCBはstdafxをほとんど活用しない方針(Util.hで代用する感じ)のようなので、とりあえずこの位置に追記した
EpgDataCap3/Descriptorの記述子パーサを簡素化

全面的に境界チェックが甘いため修正したかったが数的に困難なのでDSL的な手法に書き直した
EpgDataCap3/Descriptorは撤去できる(資料性が高いので残しておく)
new[]<->delete[]の対応ミスを修正

332ffe5ae821d1f3611a17a0b9a4fcf3d03cebd1 でエンバグ。きっと何も変わりはしないが行儀悪いので
番組内容も検索対象にするときの文字列の連結方法がまずいのを修正

検索対象をセパレータなしに繋げるので、番組名「報道ジャパン」番組内容「工場労働者スト～」とかだと「パン工場」にマッチしてしまう
EPG検索についてConvertText.txtを廃止し大小文字区別の機能をつける

ただし仕様は従来とほぼ同じ。詳細はCEpgDBManager::ConvertSearchText()を参照
廃止理由は大小文字区別のためと、データ量に比してCParseSearchChgText::ChgText()の性能が悪すぎるため
検索キーワード語頭にC!{999}をつけると大小文字を区別する(UIはそのうち…)。従来通り全半角は区別しない
EPG取得チューナー数指定の挙動が期待に反するのを修正

関連コミットは d7761e40c07130487c7948ff8147736993a133ea , 2f42f5953919d6121d86223a5f7f99a9ec526b20
関連する話題は 2ch_EDCB/37/750 あたり
あるBonDriverについて{0<EPG取得チューナ数<全チューナ数}としたとき「実行抑止条件」の扱いが未定義なので、従来仕様と矛盾しないよう、
抑止条件をクリアしたチューナ数がEPG取得チューナ数を下回るようなBonDriverが1つでもあれば、実行抑止するものとした
スカパーSD特化部分についてCDescriptor::Decode()に与える引数が間違っているのを修正

332ffe5ae821d1f3611a17a0b9a4fcf3d03cebd1 でエンバグ。これはひどい
スカパーSD特化部分についてパーサの文法ミスを修正

332ffe5ae821d1f3611a17a0b9a4fcf3d03cebd1 でエンバグ
MULTI2復号なしかつ限定受信方式記述子にPID=0x1fffを含むときパディングストリームも出力されてしまうのを修正

(コミッタ注釈)
ソースは https://twitter.com/kzmogi/status/481411683143806976
関連する話題は 2ch_EDCB/37/911
番組名に改行が含まれる場合に対処

関連する話題は 2ch_EDCB/37/980 あたり
設定ファイル処理部分の整理と予約IDの永続化

【以下の問題に対応】
・EDCBの予約ファイル等は複数プロセスから利用されるが、競合時に再試行するしくみがないため最悪で全消去の危険がある
・各行を正しく書き込んだか検査していないため、予約に想定外の文字を含むとファイルが破損する
・予約IDは再読み込み時にリセットされるため追跡しづらかったり入れ替わりが発生する(特にWebからの予約)
【副作用】
・Reserve.txtにID=0で項目を直接追加できる機能(Readme_EpgTimer.txt参照)は廃止
・EpgDataCap_Bon.exeの「サービス」欄はChSet4.txtの記述順で表示する
・(Reserve|EpgAutoAdd|ManualAutoAdd).txtの最終行に「;;NextID=」がつく(削除可能)
EPG自動予約で意図的に改行をマッチさせたときに正しく予約できないのを修正
CTSBuffUtilの処理対象をデフォルトでPSIのみに限定し、PESの処理についてオーバランしうる部分を修正

PESを扱うのはWrite_AVIVOだけみたいなので
規格通りのパケットならstuffingされて問題ないはずの部分
2012年10月のMXのEPG取得不具合への対処を取り消し

revert "Document/121014_EPGデータ対~.txt"
同時期のTVTest等に問題はなかった点で本当にMXに非があったのか定かではないが
パッチ作者も言うようにかなりアドホックで、対処するにしてもMXに限定すべきだと思う