# File lib/kirbybase.rb, line 991
    def get_header_vars(table)
        with_table(table) do |fptr|
            encrypted, line = get_header_record(table, fptr)

            last_rec_no, del_ctr, record_class, *flds = line.split('|')
            field_names = flds.collect { |x| x.split(':')[0].to_sym }
            field_types = flds.collect { |x| x.split(':')[1].to_sym }
            field_indexes = [nil] * field_names.size
            field_defaults = [nil] * field_names.size
            field_requireds = [false] * field_names.size
            field_extras = [nil] * field_names.size

            flds.each_with_index do |x,i|
                field_extras[i] = {}
                if x.split(':').size > 2
                    x.split(':')[2..-1].each do |y|
                        if y =~ /Index/
                            field_indexes[i] = y
                        elsif y =~ /Default/
                            field_defaults[i] = \
                             convert_to_native_type(field_types[i],
                              y.split('->')[1])
                        elsif y =~ /Required/
                            field_requireds[i] = \
                             convert_to_native_type(:Boolean,
                              y.split('->')[1])
                        else
                            field_extras[i][y.split('->')[0]] = \
                             y.split('->')[1]
                        end
                    end
                end
            end
            return [encrypted, last_rec_no.to_i, del_ctr.to_i,
             record_class, field_names, field_types, field_indexes,
             field_defaults, field_requireds, field_extras]
        end
    end