>cmd /?
で読める引用符の取り扱い説明も大概難しくて、適当にうまくやってくれるのを期待して(そのためのルール群だろう)祈るだけにしてる。「コマンド セパレータ '&&' で区切られた複数のコマンドが引用符で囲まれている場合は、"文字列" として指定されます。また互換性の理由から /X と /E:ON、/Y と /E:OFF、および /R と /C は同じです。その他のスイッチは無視されます。 /C または /K が指定されている場合、スイッチの後の残りのコマンド ラインがコマンド ラインとして処理されます。次のルールが引用符 (") の処理に使われます: 1. 次のすべての条件に一致する場合、コマンド ラインの引用符が有効になります: - /S スイッチがない - 引用符が 1 組ある - 引用符の中に特殊文字がない (特殊文字は &<>()@^| です) - 引用符の中に 1 つ以上のスペースがある - 引用符の中の文字列が、実行可能ファイルの名前である 2.最初の文字が引用符であるにも関わらず上の条件に一致しない場合は、最初の引用符とコマンド ラインの最後の引用符が削除され、最後の引用符の後のテキストが有効になります。」2^3
通りの状態を表現できる)を使うというのは事態を実際以上に複雑に見せていないだろうか。もちろん単独の整数や enumを使ったところでそれをビットフラグにするなら同じことだけど、そうでない使い方も一般的なわけで。すべての bool変数を初期化するために3回の比較を行うのからして冗長では?「enum { DEFAULT, FORCECLEAR, SETLASTMARK, SETNOCHANGEMARK } ope = flag & 0x03;」とか?解除コードの重複を嫌うなら「enum { SETSELECTED, CLEAR,... 」にして初期化に選択状態を考慮してひと手間加えるとか。■フラグ2とフラグ3の違い。フラグ3は他のビュー・他のタブの影響を受けない。フラグ2は「次検索相当」という文言通り、次検索(F3)と同じように「次・前検索で他のビューでの検索条件変更を引き継ぐ」設定の影響を受けて、他のビュー・他のタブを含めて最後に行った検索結果がハイライトされたり、そうでなくそのビューで最後に行った検索結果がハイライトされたり(フラグ3相当)する。だよね? この比較的新しいオプションによってユーザーが自然だと考える検索条件の影響範囲が明らかにされているのだから、消すならフラグ3かな。強硬なフラグ3派(※実はこれが従来挙動の一部。検索条件は共有するがハイライトはビューに固有だというのが従来の仕様)が現れるかな。ややこしくてもいろいろ用意してヘルプドキュメントに期待かな。