2006-04-12 [長年日記]
alps.rbのバグ(2)
さらに続き。
結論としては、alps.rbの43行目が問題だと思う。
i = (@mode == 'append') ? (ary.length - 1) : 0
追記した場合に追記部分だけ検索するための処理だと思うのだけど、これだと2セクション以上追記した場合に、最後のセクション以外は検索しないというバグも潜在的にある。これは意図した動作ではないだろう。
追記したセクションのみ取り出すことができるのであれば、それでいいのだけど、編集モードの場合はすべてのセクションを走査しているので、追記モードの場合でも単純にすべてのセクションを走査すればいいのではないだろうか。
+ i = (@mode == 'append') ? (ary.length - 1) : 0 - i = 0
パッチとしてはこんな感じ。whileをary.eachにしてもいいかな。