[スレッド全体]

2016/7/31 (日) 02:35:12 もか 返信 削除
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
[2374] Re:ファイル保存時の改行コード統一は仕様?
▼ ばぼさん
> .\sakura_core\CSaveAgent.cpp(105):
> //改行コード統一
> CDocVisitor(pcDoc).SetAllEol(sSaveInfo.cEol);

分かりにくいと思いますがSetAllEol内部で統一するかの判断をしており、
CDocVisitor.cpp(31):
  //改行コードを統一する
  if(cEol.IsValid()){

cEol.IsValid() != falseのときだけ改行コードが統一されます。
通常保存で無変換の時は、改行コード指定のcEolがEOL_NONEになっていて、
EOL_NONEのときIsValidはfalseを返すので、2.xでも改行コードは統一されません。
CViewCommander::Command_FILESAVE
sakura_core\cmd\CViewCommander_File.cpp(185):
  sSaveInfo.cEol = EOL_NONE; //改行コード無変換
保存ダイアログ表示の場合は、改行コードコンボボックスの一番上が無変換indexが0==EOL_NONEです。

2016/7/31 (日) 09:45:55 ばぼ 返信 削除
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
[2375] Re2:【解決】ファイル保存時の改行コード統一は指定時のみ。
回答ありがとうございます。
見事に勘違いしました。


CDocVisitor(pcDoc).SetAllEol(sSaveInfo.cEol);

この書き方でCDocVisitorが非visitorとか。
デザインパターンと一致する用語で関係ない概念なのは紛らわしい気がしました。

▼ もかさん
> 分かりにくいと思いますがSetAllEol内部で統一するかの判断をしており、

分かりづらいですね...
出力時の行末記号変更だったら「出力前処理」より、
出力処理そのものに組み込んだ方が直観的な気がしないでもないです。

野良版できたらまたネタ提供させていただきます。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.000][st:0.000]