# File lib/maruku/input/charsource.rb, line 154
def describe_pos(buffer, buffer_index)
        len = 75
        num_before = [len/2, buffer_index].min
        num_after = [len/2, buffer.size-buffer_index].min
        num_before_max = buffer_index
        num_after_max = buffer.size-buffer_index
        
#               puts "num #{num_before} #{num_after}"
        num_before = [num_before_max, len-num_after].min
        num_after  = [num_after_max, len-num_before].min
#               puts "num #{num_before} #{num_after}"
        
        index_start = [buffer_index - num_before, 0].max
        index_end   = [buffer_index + num_after, buffer.size].min
        
        size = index_end- index_start
        
#               puts "- #{index_start} #{size}"

        str = buffer[index_start, size]
        str.gsub!("\n",'N')
        str.gsub!("\t",'T')
        
        if index_end == buffer.size 
                str += "EOF"
        end
                
        pre_s = buffer_index-index_start
        pre_s = [pre_s, 0].max
        pre_s2 = [len-pre_s,0].max
#               puts "pre_S = #{pre_s}"
        pre =" "*(pre_s) 
        
        "-"*len+"\n"+
        str + "\n" +
        "-"*pre_s + "|" + "-"*(pre_s2)+"\n"+
#               pre + "|\n"+
        pre + "+--- Byte #{buffer_index}\n"+
        
        "Shown bytes [#{index_start} to #{size}] of #{buffer.size}:\n"+
        add_tabs(buffer,1,">")
        
#               "CharSource: At character #{@buffer_index} of block "+
#               " beginning with:\n    #{@buffer[0,50].inspect} ...\n"+
#               " before: \n     ... #{cur_chars(50).inspect} ... "
end