Package: ruby-rchardet
Version: 1.3-1
Severity: important
Tags: patch
Hi there,
Trying to use ruby-rchardet using ruby1.9.1 gives syntax errors when
loading the module. See the following output:
bram@debian:~$ irb1.9.1 -rrchardet
<internal:lib/rubygems/custom_require>:29:in `require':
/usr/lib/ruby/vendor_ruby/rchardet/chardistribution.rb:60: syntax error,
unexpected ':', expecting keyword_then or ';' or '\n' (SyntaxError)
/usr/lib/ruby/vendor_ruby/rchardet/chardistribution.rb:61: syntax error,
unexpected ':', expecting keyword_then or ';' or '\n'
/usr/lib/ruby/vendor_ruby/rchardet/chardistribution.rb:75: syntax error,
unexpected ':', expecting keyword_then or ';' or '\n'
/usr/lib/ruby/vendor_ruby/rchardet/chardistribution.rb:84: syntax error,
unexpected keyword_end, expecting $end
from <internal:lib/rubygems/custom_require>:29:in `require'
from /usr/lib/ruby/vendor_ruby/rchardet.rb:25:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /usr/lib/ruby/1.9.1/irb/init.rb:281:in `block in load_modules'
from /usr/lib/ruby/1.9.1/irb/init.rb:279:in `each'
from /usr/lib/ruby/1.9.1/irb/init.rb:279:in `load_modules'
from /usr/lib/ruby/1.9.1/irb/init.rb:20:in `setup'
from /usr/lib/ruby/1.9.1/irb.rb:53:in `start'
from /usr/bin/irb1.9.1:12:in `<main>'
This is because a number of "if" and "for" statements end with a colon,
which was apparently valid in ruby1.8, but is not valid in ruby1.9.1.
Attached is a patch that removes these colons, so that ruby-rchardet
loads without syntax errors.
Cheers,
Bram Senders
[email protected]
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 3.0.0-1-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages ruby-rchardet depends on:
ii ruby 4.8 ii ruby1.8
[ruby-interpreter] 1.8.7.352-2
ii ruby1.9.1 [ruby-interpreter] 1.9.2.290-2
ruby-rchardet recommends no packages.
ruby-rchardet suggests no packages.
-- no debconf information
--- rchardet/chardistribution.rb.orig 2011-09-29 14:49:18.504002350 +0200
+++ rchardet/chardistribution.rb 2011-09-29 14:49:40.715993001 +0200
@@ -57,8 +57,8 @@
if order >= 0
@_mTotalChars += 1
# order is valid
- if order < @_mTableSize:
- if 512 > @_mCharToFreqOrder[order]:
+ if order < @_mTableSize
+ if 512 > @_mCharToFreqOrder[order]
@_mFreqChars += 1
end
end
@@ -72,7 +72,7 @@
return SURE_NO
end
- if @_mTotalChars != @_mFreqChars:
+ if @_mTotalChars != @_mFreqChars
r = @_mFreqChars / ((@_mTotalChars - @_mFreqChars) * @_mTypicalDistributionRatio)
if r < SURE_YES
return r
@@ -227,7 +227,7 @@
# first byte range: 0xa0 -- 0xfe
# second byte range: 0xa1 -- 0xfe
# no validation needed here. State machine has done that
- if aStr[0..0] >= "\xA0":
+ if aStr[0..0] >= "\xA0"
return 94 * (aStr[0] - 0xA1) + aStr[1] - 0xa1
else
return -1
--- rchardet/charsetgroupprober.rb.orig 2011-09-29 14:50:19.704001646 +0200
+++ rchardet/charsetgroupprober.rb 2011-09-29 14:51:26.724007530 +0200
@@ -40,7 +40,7 @@
super
@_mActiveNum = 0
- for prober in @_mProbers:
+ for prober in @_mProbers
if prober
prober.reset()
prober.active = true
--- rchardet/escprober.rb.orig 2011-09-29 14:51:47.431989041 +0200
+++ rchardet/escprober.rb 2011-09-29 14:52:01.616000777 +0200
@@ -41,7 +41,7 @@
def reset
super()
- for codingSM in @_mCodingSM:
+ for codingSM in @_mCodingSM
next if not codingSM
codingSM.active = true
codingSM.reset()
--- rchardet/eucjpprober.rb.orig 2011-09-29 14:52:23.071997248 +0200
+++ rchardet/eucjpprober.rb 2011-09-29 14:52:35.936003051 +0200
@@ -56,7 +56,7 @@
elsif codingState == EItsMe
@_mState = EFoundIt
break
- elsif codingState == EStart:
+ elsif codingState == EStart
charLen = @_mCodingSM.get_current_charlen()
if i == 0
@_mLastChar[1] = aBuf[0..0]
--- rchardet/jpcntx.rb.orig 2011-09-29 14:53:02.935989236 +0200
+++ rchardet/jpcntx.rb 2011-09-29 14:53:26.824001825 +0200
@@ -150,9 +150,9 @@
@_mNeedToSkipCharNum = i - aLen
@_mLastCharOrder = -1
else
- if (order != -1) and (@_mLastCharOrder != -1):
+ if (order != -1) and (@_mLastCharOrder != -1)
@_mTotalRel += 1
- if @_mTotalRel > MAX_REL_THRESHOLD:
+ if @_mTotalRel > MAX_REL_THRESHOLD
@_mDone = true
break
end
@@ -169,7 +169,7 @@
def get_confidence
# This is just one way to calculate confidence. It works well for me.
- if @_mTotalRel > MINIMUM_DATA_THRESHOLD:
+ if @_mTotalRel > MINIMUM_DATA_THRESHOLD
return (@_mTotalRel - @_mRelSample[0]) / @_mTotalRel
else
return DONT_KNOW
@@ -208,7 +208,7 @@
return -1, 1 unless aStr
# find out current char's byte length
aStr = aStr[0..1].join if aStr.class == Array
- if (aStr[0..0] == "\x8E") or ((aStr[0..0] >= "\xA1") and (aStr[0..0] <= "\xFE")):
+ if (aStr[0..0] == "\x8E") or ((aStr[0..0] >= "\xA1") and (aStr[0..0] <= "\xFE"))
charLen = 2
elsif aStr[0..0] == "\x8F"
charLen = 3
--- rchardet/sjisprober.rb.orig 2011-09-29 14:53:36.076010091 +0200
+++ rchardet/sjisprober.rb 2011-09-29 14:53:46.235996348 +0200
@@ -71,7 +71,7 @@
@_mLastChar[0] = aBuf[aLen - 1.. aLen-1]
- if get_state() == EDetecting:
+ if get_state() == EDetecting
if @_mContextAnalyzer.got_enough_data() and (get_confidence() > SHORTCUT_THRESHOLD)
@_mState = EFoundIt
end
--- rchardet/universaldetector.rb.orig 2011-09-29 14:54:15.824011206 +0200
+++ rchardet/universaldetector.rb 2011-09-29 14:54:28.324002819 +0200
@@ -91,11 +91,11 @@
end
@_mGotData = true
- if @result['encoding'] and (@result['confidence'] > 0.0):
+ if @result['encoding'] and (@result['confidence'] > 0.0)
@done = true
return
end
- if @_mInputState == EPureAscii:
+ if @_mInputState == EPureAscii
if @_highBitDetector =~ (aBuf)
@_mInputState = EHighbyte
elsif (@_mInputState == EPureAscii) and @_escDetector =~ (@_mLastChar + aBuf)
@@ -138,12 +138,12 @@
end
@done = true
- if @_mInputState == EPureAscii:
+ if @_mInputState == EPureAscii
@result = {'encoding' => 'ascii', 'confidence' => 1.0}
return @result
end
- if @_mInputState == EHighbyte:
+ if @_mInputState == EHighbyte
confidences = {}
@_mCharSetProbers.each{ |prober| confidences[prober] = prober.get_confidence }
maxProber = @_mCharSetProbers.max{ |a,b| confidences[a] <=> confidences[b] }
--- rchardet/utf8prober.rb.orig 2011-09-29 14:54:50.203995741 +0200
+++ rchardet/utf8prober.rb 2011-09-29 14:54:58.976001367 +0200
@@ -63,7 +63,7 @@
end
end
- if get_state() == EDetecting:
+ if get_state() == EDetecting
if get_confidence() > SHORTCUT_THRESHOLD
@_mState = EFoundIt
end
_______________________________________________
Pkg-ruby-extras-maintainers mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-ruby-extras-maintainers