def edi_split( str, s, e, max=0 )
results, item, start = [], '', 0
while start < str.length do
match_at = ((start...str.length).find{|i| str[i] == s}) || str.length
item += str[start...match_at]
escapes = count_escapes( item, e )
if escapes & 1 == 1
raise EDISyntaxError, "Pending escape char in #{str}" if match_at == str.length
(escapes/2+1).times {item.chop!}
item << s
else
(escapes/2).times {item.chop!}
results << item
item = ''
end
start = match_at + 1
end
results << item unless item.empty?
return results if results.empty?
while results.last.empty?; results.pop; end
results
end