|
いつもお世話になっております、でるもんた・いいじまです。
さて、今ごろになって気付いたのですが、hidemaru.exe の起動時に渡す
ファイル名に「パスの途中にダブルクォートが混入している場合」の挙動が、
cmd.exe の組込コマンドやリダイレクトの扱いと違っています。
☆ ☆ ☆
具体的には、まずは cmd.exe の場合、
cd /d c:\
dir \prog
ここまで打って Tab を押すと当然、
dir "\Program Files"
と補完されます。そのまま下記のように書き足します。
dir "\Program Files"\hidemaru ←円記号以降がダブルクォートの外側
ここで Enter を押せばきちんとファイル一覧が出ますし、さらに
dir "\Program Files"\hidemaru\def
まで書き足して再度 Tab を打つと、当然のように
dir "\Program Files\Hidemaru\DEFAULT.KEY" ←ダブルクォートは末尾
となります。
☆ ☆ ☆
ところが、コマンドプロンプトから
"\Program Files\hidemaru\hidemaru.exe" "\Program Files"\hidemaru\newfile.txt
と打ち込んでEnterを押すと、秀丸が2つ立ち上がって、
・片方は、\Program Files\hidemaru\ からファイルを開くダイアログ
・もう一方は、\newfile.txt を新規作成する編集画面
が出てきます。
もちろん、コマンドプロンプトからフルパスで秀丸を起動することは少ない
でしょうが、PATHに秀丸のインストールパスを入れている人は結構いると
思いますし、あるいは
start hidemaru "\Program Files"\hidemaru\newfile.txt
と打つことも当然ありえます。
さらに、UNIX系のシェルでも、ダブルクォート・シングルクォートを
上記のような構文で使ってそのまま通ります。
☆ ☆ ☆
というわけで、何とかして上記のような構文を認識できるように
ならないでしょうか?
ルールとしては、「ファイル名が来るべき場面において、閉じ側の
ダブルクォートの直後の文字が空白類や\0でない場合、1回に限って
ダブルクォートを無視する」で行けそうな気がしますが、どうでしょう?
よろしくご検討ください。
|
|