「名前を付けて保存」の時、改行記号(自動No.04066
mizutori さん 04/02/14 01:10
 
■「名前を付けて保存」の時、改行記号(自動指定)が勝手に変化する
使用版:   秀丸 4.10 beta13
動作環境: Windows 2000 SP4

不具合の症状を説明します。ただし「そういう仕様」なのか不明ですが。

■手順1:
編集画面を新規に作成して、適当に二〜三行文字を書き込みます。
または、既存のテキストファイルを開きます。

■手順2:
「ファイル」メニューの「名前を付けて保存」コマンドで、例えば、
abc.txt というファイル名を指定して保存します。この時[改行=自動] にしても、
エンコードの種類を変えると、それにあわせて改行記号が変化してしまいます。

(1) [日本語(Shift_JIS)] [改行=自動] --> CR+LFで保存される
(2) [日本語(EUC)] [改行=自動] --> LFで保存される
(3) [日本語(JIS)] [改行=自動] --> LFで保存される
(4) [Unicode(UTF-8)] [改行=自動] --> CR+LFで保存される
(5) [欧文(UTF-8)] [改行=自動] --> CR+LFで保存される
(6) [Macintosh] [改行=自動] --> CR+LFで保存される

■不具合 (あるいは、そういう仕様なのか?)

[改行=自動]を指定した場合、「現在の改行記号を変えないで保存する」と
理解していたのですが、実際はほぼ強制的に「CR+LF」になってしまいます。

UnixではEUCが標準なので、「自動」という意味はLFだろうと解釈できますが、
しかしMacintoshはCRにならないし、UnicodeがCR+LFなのも納得がいきません。

「現在の改行記号を変えないで保存する」機能を復活していただけると
ありがたいのですが。



[ ]
RE:04066 「名前を付けて保存」の時、改行No.04067
アルビレオ さん 04/02/14 02:04
 
秀丸ユーザーのアルビレオです。

>「現在の改行記号を変えないで保存する」機能を復活していただけると
>ありがたいのですが。

復活も何も、改行コードに「自動」が入ったときから「エンコードによって改行
コードが切り替わる」という仕様だったと記憶しています。
(4.06もそうなっています)

>UnicodeがCR+LFなのも納得がいきません。

改行コードは処理系に依存する部分なので、Unicodeには改行コードを強制する
ような規定はありません。
秀丸はWindows環境で動くのだからCR+LFとすることは不当ではないと思います。
まあ私としてはUnicodeの場合は新規ファイルならCR+LF、すでに改行コードが決
まっていれば変化させない方がいいと思いますが。

>(6) [Macintosh] [改行=自動] --> CR+LFで保存される

これはたぶんミスでしょうね。

[ ]
RE:04066 「名前を付けて保存」の時、改行No.04068
mizutori さん 04/02/14 11:52
 
不具合の前提条件を修整して、少し限定させていただきます。

>■手順1:
>編集画面を新規に作成して、適当に二〜三行文字を書き込みます。
>または、既存のテキストファイルを開きます。

「新規作成」の場合の保存、の部分については取り消します。
(エンコーディングの種類によって改行記号が対応して変化する、でOK)

「既存のテキストファイル」を開いて「名前をつけて保存する」場合には、
「現在の改行記号を変えないで保存する」機能を実現してほしいです。

不具合、というか要望かはわかりませんが、よろしくお願いいたします。

[ ]
RE:04068 「名前を付けて保存」の時、改行No.04069
秀丸担当 さん 04/02/16 18:47
 

>「新規作成」の場合の保存、の部分については取り消します。
>(エンコーディングの種類によって改行記号が対応して変化する、でOK)
>
>「既存のテキストファイル」を開いて「名前をつけて保存する」場合には、
>「現在の改行記号を変えないで保存する」機能を実現してほしいです。

エンコードの種類も何も変えずに、別名で保存した場合は、そのほうがいいと思
います。
エンコードの種類を変えた場合は、勝手に変わったほうがいいかと思います。

何はともあれ、「改行=自動」のとき、どのような改行コードで保存されようと
しているのか視覚的に見えないのがまずいと思うので、「改行=自動(CR+
LF)」などというように、具体的に見えるようにしようかと思います。

エンコードの種類を変えたときと変えないときで動作を変えるというのは、どう
でしょうか?

[ ]
RE:04067 「名前を付けて保存」の時、改行No.04070
秀丸担当 さん 04/02/16 18:57
 

>>UnicodeがCR+LFなのも納得がいきません。
>
>改行コードは処理系に依存する部分なので、Unicodeには改行コードを強制する
>ような規定はありません。
>秀丸はWindows環境で動くのだからCR+LFとすることは不当ではないと思います。
>まあ私としてはUnicodeの場合は新規ファイルならCR+LF、すでに改行コードが決
>まっていれば変化させない方がいいと思いますが。

フォローありがとうございます。
名前を付けて保存で、Shift-JIS(CR+LF)のファイルをUnicodeで保存するように
変更するときや、EUC(LF)のファイルをUnicodeで保存するように変更するときは、
改行コードを維持するべきでしょうか。

Shift-JIS(CR+LF)をEUCにするときは、自動でLFにしたいというのもあると思い
ます。
そういうことも考えると、だんだん話しがややこしくなってきます。

>>(6) [Macintosh] [改行=自動] --> CR+LFで保存される
>
>これはたぶんミスでしょうね。

エンコードの種類にあるMacintoshは、Windowsのフォントの文字セットの種類の
1つであるMacintoshに相当するものです。
Shift-JISで改行=CRという意味のMacintoshとは違うものです。

エンコードの種類でMacintoshを選択して開くと、Shift-JISのフォントが選ばれ
るわけではなく、フォントの文字セットにMacintoshとして適合するものが選ば
れています。
自分の環境では、「OCRB」というフォントしか文字セットのMacintoshに適合す
るものはなく、実際のところ意味が無い状況です。
エンコードとしての意味も無いので、無くしてしまってもいいかもしれません。

[ ]
RE:04070 「名前を付けて保存」の時、改行No.04071
アルビレオ さん 04/02/16 23:51
 
アルビレオです。

>名前を付けて保存で、Shift-JIS(CR+LF)のファイルをUnicodeで保存するように
>変更するときや、EUC(LF)のファイルをUnicodeで保存するように変更するときは、
>改行コードを維持するべきでしょうか。

「すべき」とまで思っているわけではないですが、Shift-JISやEUCのように改行
コードを仮定できない場合は元の改行コードを維持する方が便利だとは思います。

>Shift-JIS(CR+LF)をEUCにするときは、自動でLFにしたいというのもあると思い
>ます。

これはその通りだと思います。

私が考えているのは「改行コードを仮定できる場合はそのコードに変更、それ以
外は元の改行コードを維持」という方針です。
・Shif-JIS(新規/変更):CR+LF
・EUC(新規/変更):LF
・JIS(新規/変更):LF
・Macintosh(新規/変更):CR
・Unicode系/日本語以外(新規):CR+LF
・Unicode系/日本語以外(変更):元の改行コードを維持

あくまで案なので、難しいようなら現状のままでいいと思います。

>>>(6) [Macintosh] [改行=自動] --> CR+LFで保存される
>>
>>これはたぶんミスでしょうね。
>
>エンコードの種類にあるMacintoshは、Windowsのフォントの文字セットの種類の
>1つであるMacintoshに相当するものです。
>Shift-JISで改行=CRという意味のMacintoshとは違うものです。

日本語文字が変換できないので不思議に思ってましたが、日本語ではなくネイ
ティブなMacintoshのコードでしたか。

>エンコードの種類でMacintoshを選択して開くと、Shift-JISのフォントが選ばれ
>るわけではなく、フォントの文字セットにMacintoshとして適合するものが選ば
>れています。
>自分の環境では、「OCRB」というフォントしか文字セットのMacintoshに適合す
>るものはなく、実際のところ意味が無い状況です。
>エンコードとしての意味も無いので、無くしてしまってもいいかもしれません。

なくしても異論はありませんが、もし残すのならやはり改行コードはCRにしてお
いた方がいいのではないでしょうか。
Macintosh用のエンコードを用意しておいて、そのデフォルトがCR+LFなのは妙だ
と思うのですが。

[ ]
RE:04071 「名前を付けて保存」の時、改行No.04072
秀丸担当 さん 04/02/17 18:47
 

>私が考えているのは「改行コードを仮定できる場合はそのコードに変更、それ以
>外は元の改行コードを維持」という方針です。
>・Shif-JIS(新規/変更):CR+LF
>・EUC(新規/変更):LF
>・JIS(新規/変更):LF
>・Macintosh(新規/変更):CR
>・Unicode系/日本語以外(新規):CR+LF
>・Unicode系/日本語以外(変更):元の改行コードを維持
>
>あくまで案なので、難しいようなら現状のままでいいと思います。

ありがとうございます。これも1つの案だと思います。
さらに、エンコードの種類を変更せずに名前を付けて保存した場合も、元の改行
コードを維持するとなると、ややこしいことになりそうです。
検討させていただきます。

>なくしても異論はありませんが、もし残すのならやはり改行コードはCRにしてお
>いた方がいいのではないでしょうか。
>Macintosh用のエンコードを用意しておいて、そのデフォルトがCR+LFなのは妙だ
>と思うのですが。

とりあえずCRにさせていただきます。
無くすかもしれません。

[ ]