diff --git a/include/items.php b/include/items.php
index 86579512e..82752e168 100644
--- a/include/items.php
+++ b/include/items.php
@@ -477,10 +477,12 @@ function get_atom_elements($feed,$item) {
if($attach) {
$att_arr = array();
foreach($attach as $att) {
- $len = intval($att->get_length());
- $link = str_replace(',','%2D', notags(trim($att->get_link())));
- $title = str_replace(',','%2D',notags(trim($att->get_title())));
- $type = notags(trim($att->get_type()));
+ $len = intval($att->get_length());
+ $link = str_replace(array(',','"'),array('%2D','%22'),notags(trim(unxmlify($att->get_link()))));
+ $title = str_replace(array(',','"'),array('%2D','%22'),notags(trim(unxmlify($att->get_title()))));
+ $type = str_replace(array(',','"'),array('%2D','%22'),notags(trim(unxmlify($att->get_type()))));
+ if(strpos($type,';'))
+ $type = substr($type,0,strpos($type,';'));
if((! $link) || (strpos($link,'http') !== 0))
continue;
@@ -489,9 +491,7 @@ function get_atom_elements($feed,$item) {
if(! $type)
$type = 'application/octet-stream';
- // this isn't legal html - there is no size in an 'a' tag, remember to strip it before display
-
- $att_arr[] = '' . $title . '';
+ $att_arr[] = '[attach]href="' . $link . '" size="' . $len . '" type="' . $type . '" title="' . $title . '"[/attach]';
}
$res['attach'] = implode(',', $att_arr);
}
@@ -1588,13 +1588,13 @@ function item_getfeedattach($item) {
if(count($arr)) {
foreach($arr as $r) {
$matches = false;
- $cnt = preg_match('|\(.+?)|',$r,$matches);
+ $cnt = preg_match('|\[attach\]href=\"(.+?)\" size=\"(.+?)\" type=\"(.+?)\" title=\"(.+?)\"\[\/attach\]|',$r,$matches);
if($cnt) {
$ret .= '