Fix parse_attrib_string to handle unquoted attribute values

release-0.6
svncommit 17 years ago
parent ea090ca09d
commit 653242c663

@ -1,6 +1,11 @@
CHANGELOG RoundCube Webmail CHANGELOG RoundCube Webmail
--------------------------- ---------------------------
2008/04/20 (estadtherr)
----------
- fix parse_attrib_string to handle unquoted values, which fixes
display issues with HTML messages that do not quote attributes
2008/04/17 (alec) 2008/04/17 (alec)
---------- ----------
- Fix IMAP response in message body when message has no body (#1484964) - Fix IMAP response in message body when message has no body (#1484964)

@ -391,7 +391,7 @@ function get_table_name($table)
/** /**
* Return correct name for a specific database sequence * Return correct name for a specific database sequence
* (used for Postres only) * (used for Postgres only)
* *
* @param string Secuence name * @param string Secuence name
* @return string Translated sequence name * @return string Translated sequence name
@ -1483,12 +1483,14 @@ function create_attrib_string($attrib, $allowed_attribs=array('id', 'class', 'st
function parse_attrib_string($str) function parse_attrib_string($str)
{ {
$attrib = array(); $attrib = array();
preg_match_all('/\s*([-_a-z]+)=(["\'])([^"]+)\2/Ui', stripslashes($str), $regs, PREG_SET_ORDER); preg_match_all('/\s*([-_a-z]+)=(["\'])??(?(2)([^"\']+)\2|(\S+?))/Ui', stripslashes($str), $regs, PREG_SET_ORDER);
// convert attributes to an associative array (name => value) // convert attributes to an associative array (name => value)
if ($regs) if ($regs)
foreach ($regs as $attr) foreach ($regs as $attr)
$attrib[strtolower($attr[1])] = $attr[3]; {
$attrib[strtolower($attr[1])] = $attr[3] . $attr[4];
}
return $attrib; return $attrib;
} }
@ -1633,8 +1635,8 @@ function console($msg)
* Append a line to a logfile in the logs directory. * Append a line to a logfile in the logs directory.
* Date will be added automatically to the line. * Date will be added automatically to the line.
* *
* @param $name Name of logfile * @param $name name of log file
* @param $line Line to append * @param line Line to append
*/ */
function write_log($name, $line) function write_log($name, $line)
{ {

Loading…
Cancel
Save