projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add various stats commands
[spider.git]
/
perl
/
DXUtil.pm
diff --git
a/perl/DXUtil.pm
b/perl/DXUtil.pm
index 9a911b70e4f6dccc2c7968bc9e4523d0ce4734f1..2c814ea33d834cbe5001eede20eecc0755059695 100644
(file)
--- a/
perl/DXUtil.pm
+++ b/
perl/DXUtil.pm
@@
-183,6
+183,14
@@
sub parraypairs
return $out;
}
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>'
# print all the fields for a record according to privilege
#
# The prompt record is of the format '<priv>,<prompt>[,<action>'
@@
-195,15
+203,17
@@
sub print_all_fields
my @out;
my @fields = $ref->fields;
my $field;
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 (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 ($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;
my $bit;
while (length $a > $al ) {
($bit, $a) = unpack "A$al A*", $a;