return $out;
}
+sub _sort_fields
+{
+ my $ref = shift;
+ my @a = split /,/, $ref->field_prompt(shift);
+ my @b = split /,/, $ref->field_prompt(shift);
+ return lc $a[1] cmp lc $b[1];
+}
+
# print all the fields for a record according to privilege
#
# The prompt record is of the format '<priv>,<prompt>[,<action>'
my @out;
my @fields = $ref->fields;
my $field;
+ my $width = $self->width - 1;
+ $width ||= 80;
- foreach $field (sort {$ref->field_prompt($a) cmp $ref->field_prompt($b)} @fields) {
+ foreach $field (sort {_sort_fields($ref, $a, $b)} @fields) {
if (defined $ref->{$field}) {
my ($priv, $ans) = promptf($ref->field_prompt($field), $ref->{$field});
my @tmp;
- if (length $ans > 79) {
+ if (length $ans > $width) {
my ($p, $a) = split /: /, $ans, 2;
my $l = (length $p) + 2;
- my $al = 79 - $l;
+ my $al = ($width - 1) - $l;
my $bit;
while (length $a > $al ) {
($bit, $a) = unpack "A$al A*", $a;
# check that a thing is a frequency
sub is_freq
{
- return $_[0] =~ /^[\d\.]+$/;
+ return $_[0] =~ /^\d+(?:\.\d+)?$/;
}
# check that a thing is just digits