class BinData::Stringz

def trim_and_zero_terminate(str)

def trim_and_zero_terminate(str)
  max_length = eval_parameter(:max_length)
  if max_length && max_length < 1
    msg = "max_length must be >= 1 in #{debug_name} (got #{max_length})"
    raise ArgumentError, msg
  end
  result = binary_string(str)
  truncate_after_first_zero_byte!(result)
  trim_to!(result, max_length)
  append_zero_byte_if_needed!(result)
  result
end