2008年5月 8日

[mew-dist 28391] Re: "&" -- mew-summary-thread-child()

白井です。

From: Kazu Yamamoto (山本和彦) <kazu@xxxxx> さん曰く
Subject: [mew-dist 28390] Re: "&" -- mew-summary-thread-child()
Message-ID: <20080508.185709.23867486.kazu@xxxxx>
Date: Thu, 08 May 2008 18:57:09 +0900 (JST)

> > | | それで、"&" なんですが、ときどき動作がおかしくありませんかね?

> > | | "^" で行ったのに、"&" で帰って来れないことがあるようです。
> > |
> > | そこまで使い込んでないのでわからないのですが
> > | smew -c は最初の1つだけを返すので
> > | ^ & で兄弟のところに行ってしまう可能性はあるとおもいます。
> >
> > あと考えられるのが、id.db が古くて
> > 親は登録されているが子が未登録だと & で戻ってこられない
> > ということになります。
>
> その子は DB に登録されているが、兄弟は DB に登録されてない状況だったよ
> うです。

(1) +inbox に 1, 2 というメッセージがあって、DB に登録してある。

(2) この状態で +inbox/1 の上で '^' すると +hoge/100 に飛んで、
+hoge/100 で '&' すると +inbox/1 に戻ってくる。正常な動作

(3) +inbox で(リアルな)ソートをして、1 => 2, 2 => 1 と順番が変わっ
た。その後 'ki' 実行。

(4) +inbox/2 で '^' ==> +hoge/100 に飛ぶ。
+hoge/100 で '&' ==> +inbox/1 に戻る。

ってなりませんかね。(3) の 'ki' で下の様にやるとうまくいくような
気がしますが、本当かどうかよくわかっていません。

def register(db, maildir, ignore_regex, target, last_mod)
....
elsif FileTest.file?(fpath) and fpath =~ /\/[0-9]+(\.mew)?$/
next if File.dirname(fpath) == skipdir
next if last_mod > File.ctime(fpath).tv_sec
m = Mail.new(fpath)
id = get_id(m)
parid = get_parid(m)
date = get_date(m)
path = get_path(fpath)
newpath = true
if last_mod > 0
get_entry.execute!(id) do |row|
past_path = row['path']
unless File.exist?(past_path)
del_entry.execute(id, past_path)
deleted = deleted + 1
end
『fpath と path_path が同じフォルダなら、path_path を消す処理追加。
もともと二つ以上あっても一つでいいだろう < 本当?』
newpath = false if path == past_path
end
end
if newpath == true
add_entry.execute('id' => id, 'path' => path, 'parid' => parid, 'date' => date)
registred = registred + 1
end
# next

--
白井秀行 (mailto:shirai@xxxxx)

投稿者 xml-rpc : 2008年5月 8日 19:16
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/72942
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。