module KramdownRFC

def self.handle_ins(aups, ins_k, initials_k, surname_k)

def self.handle_ins(aups, ins_k, initials_k, surname_k)
  if ins = aups[ins_k]
    parts = ins.split('.').map(&:strip) # split on dots first
    if parts == []
      warn "*** an empty '#{ins_k}:' value is not useful, try leaving it out"
      return
    end
    # Coalesce H.-P.
    i = 1; while i < parts.size
      if parts[i][0] == "-"
        parts[i-1..i] = [parts[i-1] + "." + parts[i]]
      else
        i += 1
      end
    end
    # Multiple surnames in ins?
    parts[-1..-1] = parts[-1].split
    s = if surname = aups.rest[surname_k]
          surname.split
        else parts.reverse.take_while{|x| !looks_like_initial(x)}.reverse
        end
    aups.rest[initials_k] = initials_from_parts_and_surname(aups, parts, s)
    aups.rest[surname_k] = s.join(" ")
  end
end