Changeset 5467
- Timestamp:
- 11/30/08 13:24:42 (4 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lm-sensors/branches/lm-sensors-3.0.0/prog/detect/sensors-detect
r5466 r5467 1711 1711 # $_[0] is the sought value 1712 1712 # @_[1..] is the list to seek in 1713 # Returns: 0 on failure, 1 if found. 1714 # Note: Every use of this sub probably indicates the use of the wrong 1715 # datastructure 1713 # Returns: 1 if found, 0 if not. 1716 1714 sub contains 1717 1715 { 1718 my $sought = shift; 1719 foreach (@_) { 1720 return 1 if $sought eq $_; 1721 } 1722 return 0; 1716 my $sought = shift; 1717 local $_; 1718 1719 foreach (@_) { 1720 return 1 if $sought eq $_; 1721 } 1722 return 0; 1723 1723 } 1724 1724 … … 1726 1726 sub valid_address 1727 1727 { 1728 my $value = shift;1729 1730 if ($value !~ m/^(0x[0-9a-f]+|[0-9]+)$/i) {1731 print "$value is not a valid address, sorry.\n";1732 exit -1;1733 }1734 $value = oct($value) if $value =~/^0x/i;1735 1736 return $value;1728 my $value = shift; 1729 1730 if ($value !~ m/^(0x[0-9a-f]+|[0-9]+)$/i) { 1731 print "$value is not a valid address, sorry.\n"; 1732 exit -1; 1733 } 1734 $value = oct($value) if $value =~ m/^0x/i; 1735 1736 return $value; 1737 1737 } 1738 1738 1739 1739 sub parse_not_to_scan 1740 1740 { 1741 my ($min, $max, $to_parse) = @_; 1742 my @ranges = split /\s*, \s*/, $to_parse; 1743 my @res; 1744 my $range; 1745 foreach $range (@ranges) { 1746 my ($start, $end) = split /\s*-\s*/, $range; 1747 $start = valid_address($start); 1748 if (defined $end) { 1749 $end = valid_address($end); 1750 if ($end <= $start) { 1751 print "$start-$end is not a valid range, sorry.\n"; 1752 exit -1; 1753 } 1754 $start = $min if $start < $min; 1755 $end = $max if $end > $max; 1756 push @res, ($start..$end); 1757 } else { 1758 push @res, $start if $start >= $min and $start <= $max; 1759 } 1760 } 1761 return sort { $a <=> $b } @res; 1741 my ($min, $max, $to_parse) = @_; 1742 my @ranges = split /\s*, \s*/, $to_parse; 1743 my @res; 1744 my $range; 1745 1746 foreach $range (@ranges) { 1747 my ($start, $end) = split /\s*-\s*/, $range; 1748 $start = valid_address($start); 1749 if (defined $end) { 1750 $end = valid_address($end); 1751 if ($end <= $start) { 1752 print "$start-$end is not a valid range, sorry.\n"; 1753 exit -1; 1754 } 1755 $start = $min if $start < $min; 1756 $end = $max if $end > $max; 1757 push @res, ($start..$end); 1758 } else { 1759 push @res, $start if $start >= $min and $start <= $max; 1760 } 1761 } 1762 1763 return sort { $a <=> $b } @res; 1762 1764 } 1763 1765 … … 1768 1770 sub any_list_match 1769 1771 { 1770 my ($list1, $list2) = @_; 1771 my ($el1, $el2); 1772 foreach $el1 (@$list1) { 1773 foreach $el2 (@$list2) { 1774 return 1 if $el1 == $el2; 1775 } 1776 } 1777 return 0; 1772 my ($list1, $list2) = @_; 1773 my ($el1, $el2); 1774 1775 foreach $el1 (@$list1) { 1776 foreach $el2 (@$list2) { 1777 return 1 if $el1 == $el2; 1778 } 1779 } 1780 return 0; 1778 1781 } 1779 1782
