From cead5c727147faac362e742aa7bcecf07f68cd99 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Thu, 18 May 2006 17:24:42 -0400
Subject: [PATCH] Updated CHANGELOG

---
 program/include/rcube_shared.inc |  102 ++++++++++++++++++++++++++++----------------------
 1 files changed, 57 insertions(+), 45 deletions(-)

diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc
index 75db760..fe1a560 100644
--- a/program/include/rcube_shared.inc
+++ b/program/include/rcube_shared.inc
@@ -85,7 +85,20 @@
 
   function set_charset($charset)
     {
+    global $MBSTRING;
+    
     $this->charset = $charset;
+    
+    if ($MBSTRING && function_exists("mb_internal_encoding"))
+      {
+      if(!@mb_internal_encoding($charset))
+        $MBSTRING = FALSE;
+      }
+    }
+    
+  function get_charset()
+    {
+    return $this->charset;
     }
 
 
@@ -95,7 +108,7 @@
   
     // set default page title
     if (!strlen($this->title))
-      $this->title = 'RoundCube|Mail';
+      $this->title = 'RoundCube Mail';
   
     // replace specialchars in content
     $__page_title = rep_specialchars_output($this->title, 'html', 'show', FALSE);
@@ -104,7 +117,10 @@
     
     // include meta tag with charset
     if (!empty($this->charset))
-      $__page_header = '<meta http-equiv="content-type" content="text/html; charset='.$this->charset.'" />'."\n";;
+      {
+      header('Content-Type: text/html; charset='.$this->charset);
+      $__page_header = '<meta http-equiv="content-type" content="text/html; charset='.$this->charset.'" />'."\n";
+      }
   
   
     // definition of the code to be placed in the document header and footer
@@ -177,8 +193,9 @@
   
     // correct absolute pathes in images and other tags
     $output = preg_replace('/(src|href|background)=(["\']?)(\/[a-z0-9_\-]+)/Ui', "\\1=\\2$base_path\\3", $output);
+    $output = str_replace('$__skin_path', $base_path, $output);
   
-    print $output;
+    print rcube_charset_convert($output, 'UTF-8', $this->charset);
     }
     
     
@@ -1062,8 +1079,8 @@
     $sa_text_data = array();
     
     // get english labels (these should be complete)
-    @include($INSTALL_PATH.'program/localization/en/labels.inc');
-    @include($INSTALL_PATH.'program/localization/en/messages.inc');
+    @include($INSTALL_PATH.'program/localization/en_US/labels.inc');
+    @include($INSTALL_PATH.'program/localization/en_US/messages.inc');
 
     if (is_array($labels))
       $sa_text_data = $labels;
@@ -1075,17 +1092,11 @@
       {
       include_once($INSTALL_PATH.'program/localization/'.$sess_user_lang.'/labels.inc');
       include_once($INSTALL_PATH.'program/localization/'.$sess_user_lang.'/messages.inc');
-      
+
       if (is_array($labels))
         $sa_text_data = array_merge($sa_text_data, $labels);
       if (is_array($messages))
         $sa_text_data = array_merge($sa_text_data, $messages);
-      }
-      
-    if (isset($utf8_decoding) && $utf8_decoding==TRUE)
-      {
-      @include_once('lib/utf8.inc');
-      $utf8_decode = TRUE;
       }
       
     $s_language = $sess_user_lang;
@@ -1142,14 +1153,6 @@
 EOF;
 ");
 
-
-  // perform utf-8 decoding
-  if ($utf8_decode && function_exists('utf8ToUnicodeEntities'))
-    $text = utf8ToUnicodeEntities($text);
-  else if ($utf8_decode)
-    $OUTPUT->set_charset('UTF-8');
-
-
   // format output
   if (($attrib['uppercase'] && strtolower($attrib['uppercase']=='first')) || $attrib['ucfirst'])
     return ucfirst($text);
@@ -1183,30 +1186,6 @@
   if (!headers_sent())
     header("Expires: ".gmdate("D, d M Y H:i:s", mktime()+2600000)." GMT");
   }
-
-
-
-function decode_specialchars($input, $charset='')
-  {
-  $charset = strtolower($charset);
-  
-  if ($charset=='utf-8')
-    {
-    require_once('lib/utf8.inc');
-    return utf8ToUnicodeEntities($input);
-    }
-  else if ($charset=="koi8-r")
-    return convert_cyr_string($input, 'k', 'w');
-  else if ($charset=="iso8859-5")
-    return convert_cyr_string($input, 'i', 'w');
-  else if ($charset=="x-cp866")
-    return convert_cyr_string($input, 'a', 'w');
-  else if ($charset=="x-mac-cyrillic")
-    return convert_cyr_string($input, 'm', 'w');
-
-  return $input;
-  }
-
 
 
 // function to convert an array to a javascript array
@@ -1386,4 +1365,37 @@
   }
 
 
-?>
\ No newline at end of file
+// create a unix timestamp with a specified offset from now
+function get_offset_time($offset_str, $factor=1)
+  {
+  if (preg_match('/^([0-9]+)\s*([smhdw])/i', $offset_str, $regs))
+    {
+    $amount = (int)$regs[1];
+    $unit = strtolower($regs[2]);
+    }
+  else
+    {
+    $amount = (int)$offset_str;
+    $unit = 's';
+    }
+    
+  $ts = mktime();
+  switch ($unit)
+    {
+    case 'w':
+      $amount *= 7;
+    case 'd':
+      $amount *= 24;
+    case 'h':
+      $amount *= 60;
+    case 'h':
+      $amount *= 60;
+    case 's':
+      $ts += $amount * $factor;
+    }
+
+  return $ts;
+  }
+
+
+?>

--
Gitblit v1.9.1