<?php
-
+
/* $Id$ */
if (defined('strings_php'))
if ($pos >= strlen($haystack))
return -1;
$pos++;
- }
- return $pos;
+ }
+ return $pos;
}
// Wraps text at $wrap characters
$i = 0;
$line = $beginning_spaces;
-
+
while ($i < count($words)) {
// Force one word to be on a line (minimum)
$line .= $words[$i];
if (isset($words[$i + 1]))
$line_len += strlen($words[$i + 1]);
$i ++;
-
+
// Add more words (as long as they fit)
while ($line_len < $wrap && $i < count($words)) {
$line .= ' ' . $words[$i];
else
$line_len += 1;
}
-
+
// Skip spaces if they are the first thing on a continued line
while (!isset($words[$i]) && $i < count($words)) {
$i ++;
}
- // Go to the next line if we have more to process
+ // Go to the next line if we have more to process
if ($i < count($words)) {
$line .= "\n" . $beginning_spaces;
}
}
}
-
-
+
+
// Does the opposite of sqWordWrap()
function sqUnWordWrap(&$body)
{
}
$body .= "\n";
}
-
+
/** Returns an array of email addresses **/
/* Be cautious of "user@host.com" */
} else {
$to_line = '';
}
- return $to_line;
+
+ if( substr( $to_line, -1 ) == ',' )
+ $to_line = substr( $to_line, 0, strlen( $to_line ) - 1 );
+
+ return( $to_line );
}
function translateText(&$body, $wrap_at, $charset) {
global $color; // color theme
require_once('../functions/url_parser.php');
-
+
$body_ary = explode("\n", $body);
$PriorQuotes = 0;
for ($i=0; $i < count($body_ary); $i++) {
$line = $body_ary[$i];
if (strlen($line) - 2 >= $wrap_at) {
- sqWordWrap($line, $wrap_at);
+ sqWordWrap($line, $wrap_at);
}
$line = charset_decode($charset, $line);
$line = str_replace("\t", ' ', $line);
-
+
parseUrl ($line);
-
+
$Quotes = 0;
$pos = 0;
while (1)
break;
}
}
-
+
if ($Quotes > 1) {
if (! isset($color[14]))
$color[14] = '#FF0000';
function get_location () {
# This determines the location to forward to relative
# to your server. If this doesnt work correctly for
- # you (although it should), you can remove all this
+ # you (although it should), you can remove all this
# code except the last two lines, and change the header()
# function to look something like this, customized to
# the location of SquirrelMail on your server:
#
# http://www.myhost.com/squirrelmail/src/login.php
-
+
global $PHP_SELF, $SERVER_NAME, $HTTP_HOST, $SERVER_PORT,
$HTTP_SERVER_VARS;
// Get the path
$path = substr($PHP_SELF, 0, strrpos($PHP_SELF, '/'));
-
+
// Check if this is a HTTPS or regular HTTP request
$proto = 'http://';
// If you have 'SSLOptions +StdEnvVars' in your apache config
$HTTP_SERVER_VARS['SERVER_PORT'] == 443)) {
$proto = 'https://';
}
-
+
// Get the hostname from the Host header or server config.
$host = '';
if (isset($HTTP_HOST) && !empty($HTTP_HOST))
{
$host = $SERVER_NAME;
}
-
+
$port = '';
if (! strstr($host, ':'))
{
}
}
}
-
+
if ($host)
return $proto . $host . $port . $path;
// Fallback is to omit the server name and use a relative URI,
// although this is not RFC 2616 compliant.
- return $path;
- }
+ return $path;
+ }
// These functions are used to encrypt the passowrd before it is
// if mt_getrandmax() does not return a 2^n - 1 number,
// this might not work well. This uses $Max as a bitmask.
$Max = mt_getrandmax();
-
+
if (! is_int($Val))
{
if (function_exists('crc32'))
mt_srand(($Val ^ mt_rand(0, $Max)) & $Max);
}
-
-
+
+
// This function initializes the random number generator fairly well.
// It also only initializes it once, so you don't accidentally get
// the same 'random' numbers twice in one session.
{
global $REMOTE_PORT, $REMOTE_ADDR, $UNIQUE_ID;
static $randomized;
-
+
if ($randomized)
return;
-
- // Global
+
+ // Global
sq_mt_seed((int)((double) microtime() * 1000000));
sq_mt_seed(md5($REMOTE_PORT . $REMOTE_ADDR . getmypid()));
-
+
// getrusage
if (function_exists('getrusage')) {
// Avoid warnings with Win32
sq_mt_seed(md5($Str));
}
}
-
+
// Apache-specific
sq_mt_seed(md5($UNIQUE_ID));
-
+
$randomized = 1;
}
-
+
function OneTimePadCreate ($length=100) {
sq_mt_randomize();
$vmajor = strval($regs[1]);
$vminor = strval($regs[2]);
$vrel = $regs[3];
- if($vrel[0] == ".")
+ if($vrel[0] == ".")
$vrel = strval(substr($vrel, 1));
- if($vrel[0] == 'b' || $vrel[0] == 'B')
+ if($vrel[0] == 'b' || $vrel[0] == 'B')
$vrel = - strval(substr($vrel, 1));
- if($vrel[0] == 'r' || $vrel[0] == 'R')
+ if($vrel[0] == 'r' || $vrel[0] == 'R')
$vrel = - strval(substr($vrel, 2))/10;
-
+
// Compare major version
if($vmajor < $major) return false;
if($vmajor > $major) return true;
// Major is the same. Compare minor
if($vminor < $minor) return false;
if($vminor > $minor) return true;
-
+
// Major and minor is the same as the required one.
// Compare release
if($vrel >= 0 && $release >= 0) { // Neither are beta
} else { // Both are beta
if($vrel > $release) return false;
}
-
+
return true;
}
-
+
/* Returns a string showing the size of the message/attachment */
function show_readable_size($bytes)
{
$bytes /= 1024;
$type = 'k';
-
+
if ($bytes / 1024 > 1)
{
$bytes /= 1024;
$type = 'm';
}
-
+
if ($bytes < 10)
{
$bytes *= 10;
}
else
settype($bytes, 'integer');
-
+
return $bytes . '<small> ' . $type . '</small>';
}
* 2 = add uppercase A-Z to $chars
* 4 = add numbers 0-9 to $chars
*/
-
+
function GenerateRandomString($size, $chars, $flags = 0)
{
if ($flags & 0x1)
$chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
if ($flags & 0x4)
$chars .= '0123456789';
-
+
if ($size < 1 || strlen($chars) < 1)
return '';
-
+
sq_mt_randomize(); // Initialize the random number generator
-
+
$String = "";
while (strlen($String) < $size) {
$String .= $chars[mt_rand(0, strlen($chars))];
}
-
+
return $String;
}
-
+
function quoteIMAP($str)
{
return ereg_replace('(["\\])', '\\\\1', $str);