diff options
Diffstat (limited to 'shared/classes/gentoo_package.php')
-rw-r--r-- | shared/classes/gentoo_package.php | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/shared/classes/gentoo_package.php b/shared/classes/gentoo_package.php index 41fec01..e13878e 100644 --- a/shared/classes/gentoo_package.php +++ b/shared/classes/gentoo_package.php @@ -46,25 +46,26 @@ class sql_gentoo_package extends sql_row_obj { ) ); - function &to_array($skip_masked=false) { + function &to_array($skip_masked=false, $trim=null) { $r=array(); foreach (explode("\n", $this->data) as $line) { if (!strlen($line)) continue; list($name, $val)=explode(': ', $line, 2); $name=strtolower($name); - $r[$name]=$val; - } - if (!$skip_masked) { - $r['masked']=$this->is_masked($r); + if (!$skip_masked && $name == 'keywords') + $r['masked']=$this->is_masked($val); + if (!isset($trim) || in_array($name, $trim)) + $r[$name]=$val; } return $r; } - function is_masked(&$array=null) { - if ($array === null) { + function is_masked($keywords=null) { + if ($keywords === null) { $array=$this->to_array(true); + $keywords=$array['keywords']; } $heads=$this->get_profile()->get_headers(); - return !count(array_intersect(explode(' ', $array['keywords']), explode(' ', $heads['accept_keywords']))); + return !count(array_intersect(explode(' ', $keywords), explode(' ', $heads['accept_keywords']))); } public static function from_atom($atom, &$profile=null) { global $S; |