+sub dumpline ($$$) { #{{{
+ my $key=shift;
+ my $value=shift;
+ my $prefix=shift;
+
+ my $dumpedvalue=Dumper($value);
+ chomp $dumpedvalue;
+ $dumpedvalue=~s/^\t//;
+
+ return "\t$prefix$key=$dumpedvalue,";
+} #}}}
+
+sub dumpsetup ($@) { #{{{
+ my $setup=shift;
+ my @ret;
+ while (@_) {
+ my $key=shift;
+ my %info=%{shift()};
+
+ push @ret, "\t# ".$info{description} if exists $info{description};
+
+ if (exists $setup->{$key} && defined $setup->{$key}) {
+ push @ret, dumpline($key, $setup->{$key}, "");
+ delete $setup->{$key};
+ }
+ elsif (exists $info{default}) {
+ push @ret, dumpline($key, $info{default}, "#");
+ }
+ elsif (exists $info{example}) {
+ push @ret, dumpline($key, $info{example}, "#");
+ }
+ }
+ return @ret;
+} #}}}