トップ | バージョン2 最新版 | バージョン3 β版

チケット #12 (closed 不具合: 対応済)

登録: 12 年

最終更新: 12 年

(旧B0457)対応文字列機能が設定通りに動作しない。<TITLE>に対し</TITLE>が何度も入力されるなど

報告者: daisuke 担当者: daisuke
優先度: 普通 マイルストーン: 2.1.9b3
コンポーネント: アプリケーション バージョン: 2.1.9b2
キーワード: 関係者:

説明 (最終更新者: daisuke) (diff)

(旧バグリストB0457より移行)

開始文字列1:<link 終了文字列1:>
開始文字列2:<li 終了文字列2:</li>
開始文字列3:<title 終了文字列3:</title>

という設定で、<li>の後でコマンド+Jを入力すると、
何回も</li>が入力される。

チケットの履歴

更新者: daisuke (12 年 前)

  • 概要(B0457) 対応文字列機能が設定通りに動作しない から 対応文字列機能が設定通りに動作しない に変更されました。

更新者: daisuke (12 年 前)

  • 説明 が変更されました (diff)

更新者: daisuke (12 年 前)

  • ステータスnew から accepted に変更されました。

複数の終了文字列に後方一致するものが存在するときに問題が発生する。

更新者: daisuke (12 年 前)

  • 概要対応文字列機能が設定通りに動作しない から 対応文字列機能が設定通りに動作しない。<TITLE>に対し</TITLE>が何度も入力されるなど に変更されました。

更新者: daisuke (12 年 前)

  • 説明 が変更されました (diff)

更新者: daisuke (12 年 前)

【修正前のアルゴリズム】
キャレット位置から前方向に向かって、終了文字列1、開始文字列1、終了文字列2、開始文字列2、・・・の順に、
一致するかどうかを調べ、一致した時点でその文字列分だけ前に移動する。一致しなければ一文字分だけ前に移動する。
各組ごとにレベル値を持ち、終了文字列で+1、開始文字列で-1する。レベルがマイナスになったら終了し、
その終了文字列を挿入することに決定する。

【問題点】
説明例では、終了文字列1:>に一致してしまうと、それが</li>の一部であっても、そこで一致検索が終了し、
終了文字列2:</li>との比較は行われず、位置は</liの直後に移動してしまう。

【修正後のアルゴリズム】
前処理として、終了文字列の長さ降順にソートする処理を加える。

B0443が再発しないことを確認済み。
自動テスト項目追加済み。

更新者: daisuke (12 年 前)

  • ステータスaccepted から closed に変更されました。
  • 解決方法対応済 に設定されました。

関連:#11も同時対策。

更新者: daisuke (12 年 前)

  • 概要対応文字列機能が設定通りに動作しない。<TITLE>に対し</TITLE>が何度も入力されるなど から (旧B0457)対応文字列機能が設定通りに動作しない。<TITLE>に対し</TITLE>が何度も入力されるなど に変更されました。
Note: チケットについてのヘルプは TracTickets を参照 して下さい。