1 --- cvsspam.rb (working copy)
2 +++ cvsspam.rb 2009-03-05 01:48:46.419779119 +0200
4 addInfixSize = line.length - (prefixLen+suffixLen)
5 oversize_change = deleteInfixSize*100/@lineJustDeleted.length>33 || addInfixSize*100/line.length>33
7 - if prefixLen==1 && suffixLen==0 || deleteInfixSize<=0 || oversize_change
8 + # avoid doing 'within-a-line highlighting' if a multibyte encoding
9 + # is suspected, as all the suffix/prefix stuff above is byte, not
11 + if multibyte_encoding? || prefixLen==1 && suffixLen==0 || deleteInfixSize<=0 || oversize_change
12 print(htmlEncode(@lineJustDeleted))
14 print(htmlEncode(@lineJustDeleted[0,prefixLen]))
16 @lineJustDeleted = nil
19 - if prefixLen==1 && suffixLen==0 || addInfixSize<=0 || oversize_change
20 + if multibyte_encoding? || prefixLen==1 && suffixLen==0 || addInfixSize<=0 || oversize_change
21 encoded = htmlEncode(line)
23 encoded = htmlEncode(line[0,prefixLen]) +
24 @@ -1297,6 +1300,11 @@
28 +# guess if the users selected encoding is multibyte, since some CVSspam code
29 +# isn't multibyte-safe, and needs to be disabled.
30 +def multibyte_encoding?
31 + $charset && ["utf-8", "utf-16"].include?($charset.downcase)
34 cvsroot_dir = "#{ENV['CVSROOT']}/CVSROOT"
35 $config = "#{cvsroot_dir}/cvsspam.conf"