◀ANSI版開発トップへ
  • 2981 BOMオプション追加
    • 2984 Re:BOMオプション追加
      • 2985 Re2:BOMオプション追加
        • 2986 Re3:BOMオプション追加
          • 2987 Re4:BOMオプション追加
            • 2988 Re5:BOMオプション追加
              • 2999 BOM取り込みました
  • [2981] BOMオプション追加 ryoji 2003年07月26日 16:24

    開発掲示板には初投稿です。よろしくお願いします。

    Unicode/UnicodeBE/UTF-8 で保存時に、
    保存ダイアログでBOMの有無を指定するオプションを追加してみました。
    Ver 1.4.1.0からの差分
    http://www.egroups.co.jp/files/sakura-editor/Developer/Source/BOM_2003-07-21.diff
    どなたかがやられている最中かもしれないので、まぁ添削していただければ...
    という軽い気持ちでUPしてます。(^^;

    デフォルトの設定は次のとおりになっています。
    ・新規作成や文字コード変更では従来通り
    (Uni/UniBEではBOM付き、UTF-8ではBOM無し)
    ・既存ファイルでは読み込み時のBOMの有無がデフォルト選択される
    (上書き時は変更しない)

    あと、一般掲示板に投稿した、
    <3087>Re2: 改行記号の表示が欠ける
    の修正も勝手に入れちゃってます。
    ご感想でもいただければ、と思います。
    • [2984] Re:BOMオプション追加 ryoji 2003年07月28日 11:59

      > Unicode/UnicodeBE/UTF-8 で保存時に、
      > 保存ダイアログでBOMの有無を指定するオプションを追加してみました。
      > Ver 1.4.1.0からの差分
      > http://www.egroups.co.jp/files/sakura-editor/Developer/Source/BOM_2003-07-21.diff

      diff差分で一時ファイル作成時の処理に漏れがあったので訂正して再UPしました。
      http://www.egroups.co.jp/files/sakura-editor/Developer/Source/BOM_2003-7-21.ZIP

      ※前のでは未編集時と編集中とで先頭行の比較結果が違ってしまっていた

      > どなたかがやられている最中かもしれないので、まぁ添削していただければ...

      もか さんが途中だったのですね...
      なんだか差し出がましいことをしてしまったみたいで申し訳ありません。m(__)m
      • [2985] Re2:BOMオプション追加 もか 2003年07月28日 16:09

        >もか さんが途中だったのですね...
        呼ばれたようなので、経緯を書いておきます。
        実は、HDDが壊れてパッチを丸ごと紛失したので、振り出しに戻っていました。
        その後、手をつけていなかったので、大変助かります。(*^-^*)
        早速ですが、気になる点を報告します。

        1. CEditDoc::FileRead()
        実際にはファイルは無いが、MRUに登録されているファイルを開く場合とか、BOMの指定が変になるかもしれません。

        2. CEditDoc::ReloadCurrentFile()
        ファイルが存在しないときの、BOMの考慮がほしいです。

        3. CDocLineMgr::ReadFile()
        BOMを設定した(FileOpen成功)後に、キャンセルorエラーになった場合のBOMは、元に戻さなくていいんでしょうか?
        • [2986] Re3:BOMオプション追加 ryoji 2003年07月28日 21:46

          ▼ もかさん
          > 早速ですが、気になる点を報告します。
          >
          > 1. CEditDoc::FileRead()
          > 実際にはファイルは無いが、MRUに登録されているファイルを開く場合とか、BOMの指定が変になるかもしれません。

          あぁ、確かに、コマンドライン指定されたファイルが実際には無く、
          MRUに登録されていると変になっちゃいました。(^^;

          ファイルを開く(新規・既存)の直前にBOMの推奨値を設定、
          エラー時にも推奨値に戻す方法に訂正しました。
          これで、既存ファイルが開けた場合のみ、そのファイルのBOMを引き継ぐ
          ことができると思います。

          >
          > 2. CEditDoc::ReloadCurrentFile()
          > ファイルが存在しないときの、BOMの考慮がほしいです。

          内部で1.のCEditDoc::FileRead()を呼び出しているので、
          1.の対策で大丈夫だと思います。

          >
          > 3. CDocLineMgr::ReadFile()
          > BOMを設定した(FileOpen成功)後に、キャンセルorエラーになった場合のBOMは、元に戻さなくていいんでしょうか?

          これも、CEditDoc::FileRead()からしか呼ばれていないようなので、
          1.の対策で大丈夫だと思います。
          FILETIMEもエラー時に返してしまっているようですし...
          今のところは上位が対策してますが、あとで見直しが必要になるかもしれないですね。

          上記対策版をUPしておきました。
          http://www.egroups.co.jp/files/sakura-editor/Developer/Source/BOM_2003-07-21.ZIP

          自分なりにいろいろテストしなおしたつもりですが、
          理解不足のための見落としがあるかもしれません。
          問題等あれば、引き続きよろしくお願いします。
          • [2987] Re4:BOMオプション追加 ryoji 2003年07月29日 10:05

            > > 2. CEditDoc::ReloadCurrentFile()
            > > ファイルが存在しないときの、BOMの考慮がほしいです。
            >
            > 内部で1.のCEditDoc::FileRead()を呼び出しているので、
            > 1.の対策で大丈夫だと思います。

            これ、だめですね。また修正して出直します。(^^;;;
            他に無いか、現状の版でチェックして指摘していただければと思います。
            • [2988] Re5:BOMオプション追加 ryoji 2003年07月29日 19:48

              > > > 2. CEditDoc::ReloadCurrentFile()
              > > > ファイルが存在しないときの、BOMの考慮がほしいです。

              修正しました。
              http://www.egroups.co.jp/files/sakura-editor/Developer/Source/BOM_2003-07-21_4.zip

              あと、
              ・CEditDoc::Init()での初期化対処
              ・CMacro::HandleCommand()へのF_FILESAVEAS対処
              を追加してあります。

              マクロでは、元ファイルと同じ文字コードが指定された場合だけBOMを引き継ぐようにしています。
              別の文字コードが指定された場合は推奨BOM。
              マクロでのBOMオプションパラメータ指定については、やってません。
              とりあえず、ここまで。
              • [2999] BOM取り込みました げんた 2003年08月12日 00:26

                次版取り込み予定.
                昨日リリースしてまた今日というのも何なのでとりあえずソースだけ.
                http://sakura-editor.sourceforge.net/snapshot/ssrc_2003-08-11.tar.bz2

                さらに変更を入れる方はこれをベースにお願いします.

                もうちょっともかさんの追加分とか入れてからリリースしたい,なんて言っているとまた何もしないで2週間経過しそう...