class XMP::StringInputMethod

def puts(exps)

doesn't match the previous expression evaluated.
An Encoding::CompatibilityError is raised of the given +exps+'s encoding

Concatenates all expressions in this printer, separated by newlines.
def puts(exps)
  if @encoding and exps.encoding != @encoding
    enc = Encoding.compatible?(@exps.join("\n"), exps)
    if enc.nil?
      raise Encoding::CompatibilityError, "Encoding in which the passed expression is encoded is not compatible to the preceding's one"
    else
      @encoding = enc
    end
  else
    @encoding = exps.encoding
  end
  @exps.concat exps.split(/\n/)
end