From 4526e5431d345bf118d5a36ba7c9834655d1e630 Mon Sep 17 00:00:00 2001 From: clonemeagain <clonemeagain@gmail.com> Date: Wed, 29 Jan 2014 14:03:57 +1100 Subject: [PATCH] Update class.mailparse.php Best version of https://github.com/osTicket/osTicket-1.8/pull/348 static keyword added to enable strict test mode. --- include/class.mailparse.php | 46 ++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/include/class.mailparse.php b/include/class.mailparse.php index 32b0083a6..89b1f7776 100644 --- a/include/class.mailparse.php +++ b/include/class.mailparse.php @@ -302,22 +302,36 @@ class Mail_Parse { return Mail_Parse::parsePriority($this->getHeader()); } - function parsePriority($header=null){ - - $priority=0; - if($header && ($begin=strpos($header,'X-Priority:'))!==false){ - $begin+=strlen('X-Priority:'); - $xpriority=preg_replace("/[^0-9]/", "",substr($header, $begin, strpos($header,"\n",$begin) - $begin)); - if(!is_numeric($xpriority)) - $priority=0; - elseif($xpriority>4) - $priority=1; - elseif($xpriority>=3) - $priority=2; - elseif($xpriority>0) - $priority=3; - } - return $priority; + static function parsePriority($header=null){ + + if (! $header) + return 0; + // Test for normal "X-Priority: INT" style header & stringy version. + // Allows for Importance possibility. + $matching_char = ''; + if (preg_match ( '/priority: (\d|\w)/i', $header, $matching_char ) + || preg_match ( '/importance: (\d|\w)/i', $header, $matching_char )) { + switch ($matching_char[1]) { + case 'h' : + case 'H' :// high + case 'u': + case 'U': //Urgent + case 6 : + case 5 : + return 1; + case 'n' : // normal + case 'N' : + case 4 : + case 3 : + return 2; + case 'l' : // low + case 'L' : + case 2 : + case 1 : + return 3; + } + } + return 0; } function parseAddressList($address){ -- GitLab