# File lib/SJISProber.rb, line 55
        def feed(aBuf)
            aLen = aBuf.length
            for i in 0...aLen
                codingState = @_mCodingSM.next_state(aBuf[i])
                if codingState == :Error
                    if DEBUG
                        p(get_charset_name() + ' prober hit error at byte ' + i.to_s + '\n')
                    end
                    @_mState = :NotMe                    
                    break                    
                elsif codingState == :ItsMe
                    @_mState = :FoundIt
                    break
                elsif codingState == :Start
                    charLen = @_mCodingSM.get_current_charlen()
                    if i == 0
                        @_mLastChar[1] = aBuf[0]
                        @_mContextAnalyzer.feed(@_mLastChar[2 - charLen..@_mLastChar.length], charLen)
                        @_mDistributionAnalyzer.feed(@_mLastChar, charLen)                        
                    else
                        @_mContextAnalyzer.feed(aBuf[i + 1 - charLen .. i + 3 - charLen], charLen)
                        @_mDistributionAnalyzer.feed(aBuf[i - 1 .. i + 1], charLen)
                    end
                end
            end

            @_mLastChar[0] = aBuf[aLen - 1]

            if get_state() == :Detecting
                if @_mContextAnalyzer.got_enough_data() and \
                       (get_confidence() > SHORTCUT_THRESHOLD)
                    @_mState = :FoundIt
                end
            end

            return get_state()
        end