テキスト保存で文書末尾の空行が勝手に削No.05753
mizutori さん 04/07/05 15:29
 
■テキスト保存で文書末尾の空行が勝手に削除される
使用版:   秀丸 4.10 beta35
動作環境: Windows 2000 SP4

不具合の症状を説明します。

■不具合
テキスト(エンコードUTF-8で改行CR)を保存すると、
文書末尾の空行が勝手に削除されて保存されます。

※他のエンコードや改行では、不具合はないようです。

[ ]
RE:05753 テキスト保存で文書末尾の空行がNo.05755
秀まるお さん 04/07/05 16:13
 
 「設定・ファイルタイプ別の設定...」の「保存・読み込み」ページの「保存
する時の変換・保存するときに行末の空白を除去する」がONになってるせいだと
思います。

 たぶん、何か特定のファイルタイプ別設定の時に限ってそこがONになっている
んだと思います。その辺確認してみて欲しいです。

-------
 上記オプションをOFFにした上で、UTF-8文字コードで改行CRにして普通に「名
前を付けて保存」した場合には、行末の空白が除去されずにうまく保存されるこ
とたけ確認しました。

[ ]
RE:05755 テキスト保存で文書末尾の空行がNo.05766
mizutori さん 04/07/05 19:09
 
> 「設定・ファイルタイプ別の設定...」の「保存・読み込み」ページの「保存
>する時の変換・保存するときに行末の空白を除去する」がONになってるせいだと
>思います。
>
> たぶん、何か特定のファイルタイプ別設定の時に限ってそこがONになっている
>んだと思います。その辺確認してみて欲しいです。
>
>-------

「ファイルタイプ別の設定(.txt)」では、
  [ ] 保存するときに行末の空白を除去する
  [ ] 保存するときにEOF制御文字を付ける
という設定にしています。

同じテキストファイル「a.txt」を
(1) エンコードUTF-8、改行CR で保存すると、文書末尾の空行が削除される
(2) エンコードEUCやShift_JIS、改行CR+LFやLFで保存すると、正しく保存される
という症状です。

何か、他の設定が影響しているのでしょうか。

[ ]
RE:05755 テキスト保存で文書末尾の空行がNo.05767
mizutori さん 04/07/05 19:15
 
> 「設定・ファイルタイプ別の設定...」の「保存・読み込み」ページの「保存
>する時の変換・保存するときに行末の空白を除去する」がONになってるせいだと
>思います。
>
> たぶん、何か特定のファイルタイプ別設定の時に限ってそこがONになっている
>んだと思います。その辺確認してみて欲しいです。
>
>-------
> 上記オプションをOFFにした上で、UTF-8文字コードで改行CRにして普通に「名
>前を付けて保存」した場合には、行末の空白が除去されずにうまく保存されるこ
>とたけ確認しました。

ここで問題にしているのは、「行末の空白」ではなくて、「文書末の空行」です。
文書末に、複数個の空行がある場合、UTF-8とCRの組み合わせで保存すると、
空行が勝手に削除されて保存されてしまいます。

[ ]
RE:05766 テキスト保存で文書末尾の空行がNo.05768
Iranoan さん 04/07/05 19:26
 
 秀まるおさん今日は、Iranoan です。
>   [ ] 保存するときに行末の空白を除去する
 この設定に関係なく再現しました。
 再現マクロを末尾に記載しますが、上記のオプションが関係するとしても、
ウィンドウを一旦閉じて再度開かないと、空白が除去されないはずですよね。
しかし、mizutori さんの報告だと「保存した時点でファイルの最後の改行が
削除される」ということだと思います。                   ^^^^^^^^~~~~
 また改行コードが CR のみでなければ、再現しません。
openfile "/fs " + "a.txt";
selectall;
insert "あ\n";
saveas "a.txt", utf8, cr;

[ ]
RE:05768 テキスト保存で文書末尾の空行がNo.05770
秀まるお さん 04/07/06 11:08
 
 お手数かけてすみません。意味をよく理解してませんでした。

 Iranoanさんから教えてもらったマクロで現象がうまく再現できました。ただ、
「ファイル・名前を付けて保存...」で試した限りはうまく再現しないようです。

 とりあえずIranoanさんのマクロを使っていろいろ調査させていただきます。

[ ]
RE:05767 テキスト保存で文書末尾の空行がNo.05772
秀まるお さん 04/07/06 12:28
 
 Iranoanさんから教えてもらった再現手順にて、一応問題を把握できました。

 問題は、保存の処理じゃなくて、ファイルを読み込む処理の方にありました。
「名前を付けて保存...」をした時になぜかファイルを込み込み直す処理が働い
てまして、その読み込みの時に、ファイル末尾の改行が1個無視されてしまって
ました。それはそれで修正できました。

 一応、画面上では改行が1つ減ってはいますが、保存された先のファイル上で
は改行がちゃんと付いているようです。例えば秀丸以外の何かのソフトで読み込
ませてみると、ちゃんと改行が出てきます。

 次のβ版は、秀丸担当が帰国する14日以降となります。それまでしばらくお
待ちの程お願いします。

[ ]