some more html cleanup provided by Dave Huang
[squirrelmail.git] / functions / url_parser.php
index 2fb2d3a67450725354f0384b08b6023a9fea1257..471a84e6fb345d4bb1cffd79fe06135ac3ed64ad 100644 (file)
@@ -1,16 +1,38 @@
 <?php
-   /* URL Passing code to allow links from with in emails */
-   /* $Id$ */
 
-   if (defined('url_parser_php'))
-      return;
-   define('url_parser_php', true);
+/**
+ * url_parser.php
+ *
+ * Copyright (c) 1999-2002 The SquirrelMail Project Team
+ * Licensed under the GNU GPL. For full terms see the file COPYING.
+ *
+ * This code provides various string manipulation functions that are
+ * used by the rest of the Squirrelmail code.
+ *
+ * $Id$
+ */
 
-   function replaceBlock (&$in, $replace, $start, $end) {
-      $begin = substr($in,0,$start);
-      $end   = substr($in,$end,strlen($in)-$end);
-      $in    = $begin.$replace.$end;
-   }
+/*****************************************************************/
+/*** THIS FILE NEEDS TO HAVE ITS FORMATTING FIXED!!!           ***/
+/*** PLEASE DO SO AND REMOVE THIS COMMENT SECTION.             ***/
+/***    + Base level indent should begin at left margin, as    ***/
+/***      the first line of the function definition below.     ***/
+/***    + All identation should consist of four space blocks   ***/
+/***    + Tab characters are evil.                             ***/
+/***    + all comments should use "slash-star ... star-slash"  ***/
+/***      style -- no pound characters, no slash-slash style   ***/
+/***    + FLOW CONTROL STATEMENTS (if, while, etc) SHOULD      ***/
+/***      ALWAYS USE { AND } CHARACTERS!!!                     ***/
+/***    + Please use ' instead of ", when possible. Note "     ***/
+/***      should always be used in _( ) function calls.        ***/
+/*** Thank you for your help making the SM code more readable. ***/
+/*****************************************************************/
+
+function replaceBlock (&$in, $replace, $start, $end) {
+    $begin = substr($in,0,$start);
+    $end   = substr($in,$end,strlen($in)-$end);
+    $in    = $begin.$replace.$end;
+}
 
    // Having this defined in just one spot could help when changes need
    // to be made to the pattern
@@ -71,7 +93,7 @@
    global $url_parser_poss_ends;
    $url_parser_poss_ends = array(' ', "\n", "\r", '<', '>', ".\r", ".\n", 
        '.&nbsp;', '&nbsp;', ')', '(', '&quot;', '&lt;', '&gt;', '.<', 
-       ']', '[', '{', '}', "\240");
+       ']', '[', '{', '}', "\240", ', ', '. ', ",\n", ",\r");
 
 
    function parseUrl (&$body)
           // Extract URL
           $url = substr($body, $target_pos, $end-$target_pos);
           
+          // Needed since lines are not passed with \n or \r
+          while ( ereg("[,\.]$", $url) ) {
+            $url = substr( $url, 0, -1 );
+            $end--;
+          }
+
           // Replace URL with HyperLinked Url, requires 1 char in link
           if ($url != '' && $url != $target_token) 
           {