#!/usr/local/bin/ruby # scan history def usage STDERR.print "usage: scanhist -h HISTORY ML-archive1 ML-archive2 ...\n" exit 1 end def html_quote(s) s.gsub!(/&/,"&") s.gsub!(/,"<") s.gsub!(/>/,">") s end if ARGV.size == 0 then usage end histfile = nil while ARGV[0] =~ /^-/ case ARGV.shift when "-h" histfile = ARGV.shift else usage end end if histfile.nil? then usage end patched = {} histline = {} f = open(histfile) while f.gets if /Subject: (\[w3m-dev.*\])/ then patched[$1] = true histline[$1] = $. end end f.close archive = {} subject = nil for fn in ARGV f = open(fn) while f.gets if /^From / then # beginning of a mail subject = nil elsif subject.nil? and /^Subject: / then $_ =~ /Subject: (\[w3m-dev.*\])/ subject = $1 archive[subject] = [$_.chop.sub(/^Subject:\s*/,""),false,fn+"#"+($.).to_s] elsif /^\+\+\+/ or /\*\*\*/ or /filename=.*(patch|diff).*/ or /^begin \d\d\d/ archive[subject][1] = true end end f.close end print "
\n" for sub in archive.keys.sort a = archive[sub] if a[1] then if patched[sub] then print "[+]" else print "[-]" end print "" print "",html_quote(a[0]),"\n" else if patched[sub] then print "[o]" else print " " end print "" print "",html_quote(a[0]),"\n" end end print "\n"