Initial revision
This commit is contained in:
		
							
								
								
									
										88
									
								
								Bonus/scanhist.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								Bonus/scanhist.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,88 @@ | ||||
| #!/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 "<html><head><title>w3m patch configuration\n</title></head><body>\n" | ||||
| print "<pre>\n" | ||||
| for sub in archive.keys.sort | ||||
|   a = archive[sub] | ||||
|   if a[1] then | ||||
|     if patched[sub] then | ||||
|       print "[<a href=\"#{histfile}\##{histline[sub]}\">+</a>]" | ||||
|     else | ||||
|       print "[-]" | ||||
|     end | ||||
|     print "<a href=\"#{a[2]}\">" | ||||
|     print "<b>",html_quote(a[0]),"</b></a>\n" | ||||
|   else | ||||
|     if patched[sub] then | ||||
|       print "[<a href=\"#{histfile}\##{histline[sub]}\">o</a>]" | ||||
|     else | ||||
|       print "   " | ||||
|     end | ||||
|     print "<a href=\"#{a[2]}\">" | ||||
|     print "<b>",html_quote(a[0]),"</b></a>\n" | ||||
|   end | ||||
| end | ||||
| print "</pre></body></html>\n" | ||||
		Reference in New Issue
	
	Block a user