◀Unicode版開発トップへ
  • 292 Commit報告:(Fix) ファイル書込時バグ修正
    • 299 Re:Commit報告:(Fix) ファイル書込時バグ修正
      • 300 Re2:Commit報告:(Fix) ファイル書込時バグ修正
        • 304 Re3:Commit報告:(Fix) ファイル書込時バグ修正
        • 306 Re3:Commit報告:(Fix) ファイル書込時バグ修正
  • [292] Commit報告:(Fix) ファイル書込時バグ修正 kobake 2008年04月20日 05:56

    リビジョン:
     rev1286

    変更種別:
     バグ修正。

    内容:
     ・上書き禁止のファイルを開き、その文書を名前を付けて保存したとき、
      「上書き禁止」の状態が残ってしまう問題を修正しました。
     ・書込を行えないファイルに対して保存を行ったとき、
      ファイル保存失敗するにも関わらず、
      その後の処理(ロック試行やキャプション変更など)が
      行われてしまう問題を修正しました。

    結果的に、以下のバグが解決しました。
    > 1) 他のプログラムの排他制御で上書き禁止になっているファイルをオープンすると、
    > 【上書き禁止】モードになり、そのファイルを『名前をつけて保存』で保存しても【上書き禁止】モードのままになっている。
    > 3) 『読み取り専用』にチェックが付いているファイルをオープンしすると、
    > 【上書き禁止】モード(ビューモード)になり、のファイルを『名前をつけて保存』で保存しても【上書き禁止】モードのままになっている。
    > 4) すでに開いているファイルを他のプログラムが「排他」で使用したときに、『上書き保存』した場合、
    > ファイルを保存できません。
    > パスが存在しないか、他のアプリケーションで使用されている可能性があります。
    > でOKすると、バックアップは作成され、ファイルの書込みは行われず、『上書き保存』のアイコンはdesableになる。
    > 問題点は、書込みされていないのに内部的に書込みがなされているようになっていることです。
    • [299] Re:Commit報告:(Fix) ファイル書込時バグ修正 Uchi 2008年04月20日 13:18

      ▼ kobakeさん
      > リビジョン:
      >  rev1286
      >
      > 変更種別:
      >  バグ修正。
      >
      > 内容:
      >  ・上書き禁止のファイルを開き、その文書を名前を付けて保存したとき、
      >   「上書き禁止」の状態が残ってしまう問題を修正しました。
      >  ・書込を行えないファイルに対して保存を行ったとき、
      >   ファイル保存失敗するにも関わらず、
      >   その後の処理(ロック試行やキャプション変更など)が
      >   行われてしまう問題を修正しました。
      >
      > 結果的に、以下のバグが解決しました。
      > > 1) 他のプログラムの排他制御で上書き禁止になっているファイルをオープンすると、
      > > 【上書き禁止】モードになり、そのファイルを『名前をつけて保存』で保存しても【上書き禁止】モードのままになっている。
      > > 3) 『読み取り専用』にチェックが付いているファイルをオープンしすると、
      > > 【上書き禁止】モード(ビューモード)になり、のファイルを『名前をつけて保存』で保存しても【上書き禁止】モードのままになっている。
      > > 4) すでに開いているファイルを他のプログラムが「排他」で使用したときに、『上書き保存』した場合、
      > > ファイルを保存できません。
      > > パスが存在しないか、他のアプリケーションで使用されている可能性があります。
      > > でOKすると、バックアップは作成され、ファイルの書込みは行われず、『上書き保存』のアイコンはdesableになる。
      > > 問題点は、書込みされていないのに内部的に書込みがなされているようになっていることです。
      確認報告をさせていただきます。
      上記3点修正されていることを確認しました。

      ところで上記3点と同時に報告した、
      2) 『ファイルの排他制御』で『更新の監視』をつけていてる場合で、
      他のプログラムの排他制御で上書き禁止になっているファイルをオープンすると、【上書き禁止】モードになる。
      次に排他制御を行っているプログラムを終了し、ファイルが書込み可能になっても【上書き禁止】モードのままになっている。
      は、更新のチェックを行っているところで、排他の監視を行うことで解決できると思うのですが、いかがでしょうか?
      • [300] Re2:Commit報告:(Fix) ファイル書込時バグ修正 kobake 2008年04月20日 13:31

        ご確認ありがとうございます。

        ▼ Uchiさん
        > ところで上記3点と同時に報告した、
        > 2) 『ファイルの排他制御』で『更新の監視』をつけていてる場合で、
        > 他のプログラムの排他制御で上書き禁止になっているファイルをオープンすると、【上書き禁止】モードになる。
        > 次に排他制御を行っているプログラムを終了し、ファイルが書込み可能になっても【上書き禁止】モードのままになっている。
        > は、更新のチェックを行っているところで、排他の監視を行うことで解決できると思うのですが、いかがでしょうか?

        「更新の監視」に関しては、いまいちどういう動作が正なのか
        よくわかってないので、保留してました。

        そもそもファイルの排他制御をオフにすると、
        本家ANSI版では、「上書き禁止」モード自体にならなないんですよね…。
        だから、更新の監視によって「上書き禁止」モードが変化することも無い、と。

        根本的な思想として、
        「更新の監視」が何を監視する意図の機能なのかも、
        よくわかっていません。


        要するに、「仕様がよくわからないから、なんか手を付けにくい」という状況です(汗)。
        • [304] Re3:Commit報告:(Fix) ファイル書込時バグ修正 Uchi 2008年04月20日 17:09

          ▼ kobakeさん
          >
          > 「更新の監視」に関しては、いまいちどういう動作が正なのか
          > よくわかってないので、保留してました。
          >
          私は、いつもは「更新の監視」をONにして使用しています。
          ソースを追っているわけではないので、表面的な話になりますが、
          画面が非アクティブからアクティブになった時に、
          オープンしているファイルが他のアプリケーションにより変更されているかをチェックし、
          変更されていれば、ダイアログを表示し、再読み込みを行うかを選択する。
          というのがANSI版での仕様だと思います。

          エディタ単独では、必要の無い機能です。
          他のアプリケーションとの組み合わせで使用するものでしょう。
          >
          > そもそもファイルの排他制御をオフにすると、
          > 本家ANSI版では、「上書き禁止」モード自体にならなないんですよね…。
          > だから、更新の監視によって「上書き禁止」モードが変化することも無い、と。
          >
          ANSI版では排他で『書込み禁止』のファイルをオープンしても、エディタのモードとしては、
          普通のオープンモードなので、書き込み時に『書込み禁止』になっていなければ、書き込み可能です。
          また、書き込み時に排他で『書込み禁止』になっていても、エディタ自体のモードは変更されないので、
          次回の書き込みが可能です。

          現在のUnicode版ではオープン時、排他で『書込み禁止』ならば、『上書き禁止』モードになる様に変更されています。
          また、書き込み時に排他で『書込み禁止』になっていれば、『上書き禁止』モードに変更されます。

          これは、問題の無い(より良い)実装だと思います。
          がしかし、書き込みできないから『上書き禁止』にしたならば、書き込みできるようになったならば、『上書き禁止』を解除できなければ片手落ちでしょう。
          『上書き禁止』モードへの移行は「書き込み」というタイミングが取れますが、解除は基本的にエディタの操作ができない『上書き禁止』モードでは『更新の監視』のタイミングあたりが妥当だと思います。
        • [306] Re3:Commit報告:(Fix) ファイル書込時バグ修正 anonymous 2008年04月20日 19:17

          ▼ kobakeさん
          「更新の監視」が何を監視する意図の機能

          例:
          デバッグ等でログファイルを開いて閲覧するときに使う。
          ログファイルなのでエディタでロックしてはだめ。