* SquirrelMail version number -- DO NOT CHANGE
*/
global $version;
-$version = '1.2.5 [cvs]';
+$version = '1.2.6 [cvs]';
/**
* If $haystack is a full mailbox name and $needle is the mailbox
* separator character, returns the last part of the mailbox name.
*/
function readShortMailboxName($haystack, $needle) {
- if ($needle == '') {
- return $haystack;
- }
- $parts = explode($needle, $haystack);
- $elem = array_pop($parts);
- while ($elem == '' && count($parts)) {
- $elem = array_pop($parts);
- }
- return $elem;
-}
-/**
- * If $haystack is a full mailbox name, and $needle is the mailbox
- * separator character, returns the second last part of the full
- * mailbox name (i.e. the mailbox's parent mailbox)
- */
-function readMailboxParent($haystack, $needle) {
- if ($needle == '') return '';
- $parts = explode($needle, $haystack);
- $elem = array_pop($parts);
- while ($elem == '' && count($parts)) {
- $elem = array_pop($parts);
- }
- return join($needle, $parts);
-}
-
-/**
- * Returns the index of the first chunk of string $haystack that
- * starts with non-white-space character, starting at position $pos.
- * If there is no such chunk, returns -1.
- */
-function next_pos_minus_white ($haystack, $pos) {
- $len = strlen($haystack);
- while ($pos < $len) {
- /* Get the next character. */
- $c = substr($haystack, $pos, 1);
-
- /* Check the next character. */
- if (($c != ' ') && ($c != "\t") && ($c != "\n") && ($c != "\r")) {
- return $pos;
- }
-
- /* Increment position in string. */
- ++$pos;
- }
- return -1;
-}
-
-/**
- * Wraps text at $wrap characters
- *
- * Has a problem with special HTML characters, so call this before
- * you do character translation.
- *
- * Specifically, ' comes up as 5 characters instead of 1.
- * This should not add newlines to the end of lines.
- */
-function sqWordWrap(&$line, $wrap) {
- ereg("^([\t >]*)([^\t >].*)?$", $line, $regs);
- $beginning_spaces = $regs[1];
- if (isset($regs[2])) {
- $words = explode(' ', $regs[2]);
+ if ($needle == '') {
+ $elem = $haystack;
} else {
- $words = '';
+ $parts = explode($needle, $haystack);
+ $elem = array_pop($parts);
+ while ($elem == '' && count($parts)) {
+ $elem = array_pop($parts);
+ }
}
-
- $i = 0;
- $line = $beginning_spaces;
-
- while ($i < count($words)) {
- /* Force one word to be on a line (minimum) */
- $line .= $words[$i];
- $line_len = strlen($beginning_spaces) + strlen($words[$i]) + 2;
- 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];
- $i++;
- if (isset($words[$i]))
- $line_len += strlen($words[$i]) + 1;
- 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 */
- if ($i < count($words)) {
- $line .= "\n" . $beginning_spaces;
- }
- }
-}
-
-
-/**
- * Does the opposite of sqWordWrap()
- */
-function sqUnWordWrap(&$body) {
- $lines = explode("\n", $body);
- $body = '';
- $PreviousSpaces = '';
- for ($i = 0; $i < count($lines); $i ++) {
- ereg("^([\t >]*)([^\t >].*)?$", $lines[$i], $regs);
- $CurrentSpaces = $regs[1];
- if (isset($regs[2])) {
- $CurrentRest = $regs[2];
- }
-
- if ($i == 0) {
- $PreviousSpaces = $CurrentSpaces;
- $body = $lines[$i];
- } else if (($PreviousSpaces == $CurrentSpaces) /* Do the beginnings match */
- && (strlen($lines[$i - 1]) > 65) /* Over 65 characters long */
- && strlen($CurrentRest)) { /* and there's a line to continue with */
- $body .= ' ' . $CurrentRest;
- } else {
- $body .= "\n" . $lines[$i];
- $PreviousSpaces = $CurrentSpaces;
- }
- }
- $body .= "\n";
+ return( $elem );
}
-
/**
* Returns an array of email addresses.
* Be cautious of "user@host.com"
function translateText(&$body, $wrap_at, $charset) {
global $where, $what; /* from searching */
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 = charset_decode($charset, $line);
$line = str_replace("\t", ' ', $line);
-
+
parseUrl ($line);
-
+
$Quotes = 0;
$pos = 0;
- while (1) {
+ $j = strlen( $line );
+
+ while ( $pos < $j ) {
if ($line[$pos] == ' ') {
$pos ++;
} else if (strpos($line, '>', $pos) === $pos) {
if (($size < 1) || (strlen($chars) < 1)) {
return '';
}
-
+
sq_mt_randomize(); /* Initialize the random number generator */
-
+
$String = '';
+ $j = strlen( $chars ) - 1;
while (strlen($String) < $size) {
- $String .= $chars[mt_rand(0, strlen($chars))];
+ $String .= $chars{mt_rand(0, $j)};
}
-
+
return $String;
}
$PHP_SELF = php_self();
-?>
+?>
\ No newline at end of file