From 66510e20d36cb8da4f3012ef063de7bfce9b51aa Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 09 May 2012 07:52:28 -0400
Subject: [PATCH] Merge pull request #1 from Brianetta/de-svn

---
 program/include/rcube_shared.inc |  159 +++++++---------------------------------------------
 1 files changed, 23 insertions(+), 136 deletions(-)

diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc
index 2e94447..176a462 100644
--- a/program/include/rcube_shared.inc
+++ b/program/include/rcube_shared.inc
@@ -102,28 +102,6 @@
 
 
 /**
- * Read a specific HTTP request header.
- *
- * @param  string $name Header name
- *
- * @return mixed  Header value or null if not available
- */
-function rcube_request_header($name)
-{
-    if (function_exists('getallheaders')) {
-        $hdrs = array_change_key_case(getallheaders(), CASE_UPPER);
-        $key  = strtoupper($name);
-    }
-    else {
-        $key  = 'HTTP_' . strtoupper(strtr($name, '-', '_'));
-        $hdrs = array_change_key_case($_SERVER, CASE_UPPER);
-    }
-
-    return $hdrs[$key];
-}
-
-
-/**
  * Make sure the string ends with a slash
  */
 function slashify($str)
@@ -168,25 +146,23 @@
 
 
 /**
- * Create a unix timestamp with a specified offset from now.
+ * Returns number of seconds for a specified offset string.
  *
- * @param string $offset_str  String representation of the offset (e.g. 20min, 5h, 2days)
- * @param int    $factor      Factor to multiply with the offset
+ * @param string $str  String representation of the offset (e.g. 20min, 5h, 2days, 1week)
  *
- * @return int Unix timestamp
+ * @return int Number of seconds
  */
-function get_offset_time($offset_str, $factor=1)
+function get_offset_sec($str)
 {
-    if (preg_match('/^([0-9]+)\s*([smhdw])/i', $offset_str, $regs)) {
-        $amount = (int)$regs[1];
+    if (preg_match('/^([0-9]+)\s*([smhdw])/i', $str, $regs)) {
+        $amount = (int) $regs[1];
         $unit   = strtolower($regs[2]);
     }
     else {
-        $amount = (int)$offset_str;
+        $amount = (int) $str;
         $unit   = 's';
     }
 
-    $ts = mktime();
     switch ($unit) {
     case 'w':
         $amount *= 7;
@@ -196,11 +172,23 @@
         $amount *= 60;
     case 'm':
         $amount *= 60;
-    case 's':
-        $ts += $amount * $factor;
     }
 
-    return $ts;
+    return $amount;
+}
+
+
+/**
+ * Create a unix timestamp with a specified offset from now.
+ *
+ * @param string $offset_str  String representation of the offset (e.g. 20min, 5h, 2days)
+ * @param int    $factor      Factor to multiply with the offset
+ *
+ * @return int Unix timestamp
+ */
+function get_offset_time($offset_str, $factor=1)
+{
+    return time() + get_offset_sec($offset_str) * $factor;
 }
 
 
@@ -232,33 +220,6 @@
     }
 
     return $str;
-}
-
-
-/**
- * Explode quoted string
- *
- * @param string Delimiter expression string for preg_match()
- * @param string Input string
- */
-function rcube_explode_quoted_string($delimiter, $string)
-{
-    $result = array();
-    $strlen = strlen($string);
-
-    for ($q=$p=$i=0; $i < $strlen; $i++) {
-        if ($string[$i] == "\"" && $string[$i-1] != "\\") {
-            $q = $q ? false : true;
-        }
-        else if (!$q && preg_match("/$delimiter/", $string[$i])) {
-            $result[] = substr($string, $p, $i - $p);
-            $p = $i + 1;
-        }
-    }
-
-    $result[] = substr($string, $p);
-
-    return $result;
 }
 
 
@@ -319,41 +280,6 @@
 function strip_newlines($str)
 {
     return preg_replace('/[\r\n]/', '', $str);
-}
-
-
-/**
- * Improved equivalent to strtotime()
- *
- * @param string $date  Date string
- *
- * @return int Unix timestamp
- */
-function rcube_strtotime($date)
-{
-    // check for MS Outlook vCard date format YYYYMMDD
-    if (preg_match('/^([12][90]\d\d)([01]\d)(\d\d)$/', trim($date), $matches)) {
-        return mktime(0,0,0, intval($matches[2]), intval($matches[3]), intval($matches[1]));
-    }
-    else if (is_numeric($date)) {
-        return $date;
-    }
-
-    // support non-standard "GMTXXXX" literal
-    $date = preg_replace('/GMT\s*([+-][0-9]+)/', '\\1', $date);
-
-    // if date parsing fails, we have a date in non-rfc format.
-    // remove token from the end and try again
-    while ((($ts = @strtotime($date)) === false) || ($ts < 0)) {
-        $d = explode(' ', $date);
-        array_pop($d);
-        if (!$d) {
-            break;
-        }
-        $date = implode(' ', $d);
-    }
-
-    return $ts;
 }
 
 
@@ -466,45 +392,6 @@
     }
 }
 
-
-/*
- * Idn_to_ascii wrapper.
- * Intl/Idn modules version of this function doesn't work with e-mail address
- */
-function rcube_idn_to_ascii($str)
-{
-    return rcube_idn_convert($str, true);
-}
-
-/*
- * Idn_to_ascii wrapper.
- * Intl/Idn modules version of this function doesn't work with e-mail address
- */
-function rcube_idn_to_utf8($str)
-{
-    return rcube_idn_convert($str, false);
-}
-
-function rcube_idn_convert($input, $is_utf=false)
-{
-    if ($at = strpos($input, '@')) {
-        $user   = substr($input, 0, $at);
-        $domain = substr($input, $at+1);
-    }
-    else {
-        $domain = $input;
-    }
-
-    $domain = $is_utf ? idn_to_ascii($domain) : idn_to_utf8($domain);
-
-    if ($domain === false) {
-        return '';
-    }
-
-    return $at ? $user . '@' . $domain : $domain;
-}
-
-
 /**
  * Use PHP5 autoload for dynamic class loading
  *
@@ -535,7 +422,7 @@
 
     if ($fp = @fopen("$filename.php", 'r', true)) {
         fclose($fp);
-        include_once("$filename.php");
+        include_once "$filename.php";
         return true;
     }
 

--
Gitblit v1.9.1