|
秀丸担当様
saveas の関連で、不適切と思われる動作があるので、報告します。
以下のような2つのマクロを作成します。
ここから macro1.mac >>>>
saveas "c:\\hoge:gege.txt";
endmacro;
<<<< ここまで
ここから macro2.mac >>>>
saveas "c:/tmp/hoge hoge:gege.txt";
endmacro;
<<<< ここまで
c:/tmp を作成しておきます。
macro2.mac では、ディレクトリ区切り子に、"\" ではなく、"/" を用いています。
ここで保存しようとしているファイル名には、どちらにも ":" が入っているので、
不正なファイル名だと思います。
以下の件は、「saveas で保存しようとするファイル名が不正だと気付かずに、これ
と同等の処理をしてしまった場合」に、特に問題だと思います。
・空の秀丸になにか適当に文字列を入れ、macro1.mac を実行します。
・別の空の秀丸になにか適当に文字列を入れ、macro2.mac を実行します。
すると、手元では以下のようになります。
(1)
私は、秀丸のタイトルバーに、フルパスのパス名を表示させています。
この表示が、不正なはずのファイル名
(macro1.mac) "c:\hoge:gege.txt"
(macro2.mac) "c:\tmp\hoge hoge:gege.txt"
になります。
つまり、表示上は、不正なファイル名で正しく保存されたように見えています。
(2)
しかし実際のファイルの保存状況は、以下だと思います。
(macro1.mac) c:\ には、それらしいファイルが作成されていない。
(macro2.mac) c:\tmp に、"hoge hoge" という、サイズ 0 のファイルが作成される。
これらの秀丸で [編集] メニュー [再読み込み] を実行すると、「そのファイルはな
い」というメッセージが出ます。
(3)
(2)では、どちらも実際にはファイルの内容は保存されていません。
ところが(1)に書いたように、表示上は作成・保存されたように見えます。
つまり、(1)の表示を見て、不正なファイル名だと気づかずに、「ファイルが保存さ
れた」と思い込み、秀丸を閉じてしまうと、その内容は失われてしまいます。
なお、ファイルに使えないこの他の文字、\ / * ? < > | (これらだけでしょうか?
よく分かりません。)でも同様の状況なのかも知れませんが、確認していません。
手元では、マクロで、こうしたファイル名では保存しないように修正したので特に問
題ではありません。
しかし一般的に問題のある動作ではと思うので、ご報告しました。
|
|