}
$driver = "";
-while($_=shift @lines){
- if( m/^[\w-]+: / ){
- if($l){
- #print "$l\n";
- if($l =~ m/^Driver: /){
- $_ = $l;
- s/^Driver: //;
- $driver = $_;
- }
+$mode = 0;
+while($line=shift @lines){
+ $_ = $line;
+ if( $mode == 0){
+ if( m/^[\w-]+: / ){
+ chomp;
+ $l=$_;
+ $mode = 1;
}
- chomp;
- $l=$_;
- }elsif( m/^ / ){
- s/^ +//;
- chomp;
- $l="$l $_";
- }else{
- if($l){
+ }elsif($mode==1){
+ if( m/^ / ){
+ s/^ +//;
+ chomp;
+ $l="$l $_";
+ $mode = 1;
+ }else{
#print "$l\n";
if($l =~ m/^Driver: /){
$_ = $l;
s/^Driver: //;
$driver = $_;
}
- if($l =~ m/^Devices: /){
- $_ = $l;
- s/^Devices: //;
- parse_devices($_);
+ if($l =~ m/^Devices:/){
+ $l =~ s/^Devices://;
+ parse_devices($l);
}
$l="";
+ $mode = 0;
+ $_ = $line;
+ if( m/^[\w-]+: / ){
+ chomp;
+ $l=$_;
+ $mode = 1;
+ }
}
}
}
#print "recognized dev $dev\n";
}elsif(m/^ *,(.*)/){
$devs = $1;
- printf "%-28s %-17s %-17s %-10s\n", $mfr, $dev, $driver, $name;
+ printf "%s\t%s\t%s\t%s\n", $mfr, $dev, $driver, $name;
}else{
print "parse error $_\n";
$devs = "";
}
}
- printf "%-28s %-17s %-17s %-10s\n", $mfr, $dev, $driver, $name;
+ printf "%s\t%s\t%s\t%s\n", $mfr, $dev, $driver, $name;
}