"送る"などで複数ファイルが指定されたときに、複数ファイルを開けるようになります。
■変更箇所
・CCommandLine::ParseCommandLine
複数ファイルを指定したときは、m_sFilesにファイル名を登録
・CNormalProcess::InitializeProcess
m_sFilesに登録されてるファイル名で、OpenNewEditor2を複数回呼び出す。
■仕様
・一度に指定できるファイルの数は、m_nDropFileNumMaxが上限
・オプション設定は複数ファイルに対しても有効
・フォルダ名/ファイル名に空白が含まれる場合、ダブルクォーテーションなしでファイルを検索するのは最初のファイル名のみ
trunk2_multifile_a.patch を試してみて、一点気付いたことがあります。
フルパスやカレントディレクトリにあるファイルを複数指定すると問題なく開けるのですが、相対パスで、例えば sakura.exe ..\..\sakura_core\CWaitCursor.h ..\..\sakura_core\CAppMode.h のように複数指定すると、2個目のファイルがちゃんと開けません。ウィンドウは開くのですが、パスがどうやら1個目のファイルがある場所基点で相対パスを解釈してしまうようです。(上の例だと、2個目のファイルは ..\..\sakura_core\..\..\sakura_core\CAppMode.h とみなされます)
ParseCommandLineの最後でResolvePathでパス変換している箇所があるのですが、
複数ファイルに対してこの処理が抜けていたようです。
手元で確認したら問題なさそうな感じですが、もう少し確認してみます。
CSakuraEnvironment::ResolvePath(szPath);
m_vFiles.push_back( szPath );
相対パスに対応したパッチを作成しました。
対応ありがとうございます。相対パスに対応していることを確認しました。
typoがあったので更新しました。
trunk2_multifile_c.patch
リビジョン2369でコミットしました。