サクラエディタ Ver.1.5.7.2
VisualStudio.NET2003(v.7.1.3091) で外部ツールにサクラエディタを登録し
ファイルを開こうとすると正常に開けません。
・設定
外部ツール
タイトル サクラエディタで開く
コマンド C:\Program Files\sakura\sakura.exe
引数 -Y=$(CurLine) $(ItemFileName)$(ItemExt)
初期ディレクトリ $(ItemDir)
と設定します。
そして実際に 「C:\aaa\xxx.cpp」をVC上からサクラエディタで開こうとすると
「C:\aaa\xxx.cp というファイルは存在しません。ファイルを保存したときに、ディスク上にこのファイルが作成されます。」
等のメッセージが表示され、ファイルを開く事ができませんでした。
(ファイル名の最後の文字が1~3文字なくなってるようです)
そこで少し調べたのですが、VC側が引数として与える文字列に原因がある?、
上記の設定で実際にサクラエディタ側に渡される引数は
-Y="50" "xxx.cpp
となっており、最後のダブルクォーテーションが抜けていました。
(引数は WinMain の lpCmdLine を表示しました)
そこでWinMainの引数をいじって
process = aFactory.Create( hInstance, lpCmdLine );
↓
char tmp[1024];
strcpy(tmp, lpCmdLine);
TCHAR *pTmp = NULL;
do {
pTmp = strchr(tmp, '"');
while (pTmp && *pTmp) {
*pTmp = *(pTmp+1);
pTmp++;
}
} while (pTmp);
process = aFactory.Create( hInstance, tmp );
ように変更し、ダブルクォーテーションをすべて除去したらファイルを正常に開けました。
サクラエディタのバグではないのかもしれませんが、何かの形で対応して頂けたら嬉しいです。
以上よろしくお願いします。