summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'shared/classes/gentoo_package.php')
-rw-r--r--shared/classes/gentoo_package.php17
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;