[TASK] Unify backend: header/section
[Packages/TYPO3.CMS.git] / typo3 / sysext / indexed_search / class.lexer.php
index 1b23144..12746a8 100755 (executable)
@@ -2,7 +2,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 2001-2010 Kasper Skårhøj (kasperYYYY@typo3.com)
+*  (c) 2001-2011 Kasper Skårhøj (kasperYYYY@typo3.com)
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
  * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
  * Parts provided by Martin Kutschker <Martin.T.Kutschker@blackbox.net>
  */
-/**
- * [CLASS/FUNCTION INDEX of SCRIPT]
- *
- *
- *
- *   73: class tx_indexedsearch_lexer
- *  105:     function tx_indexedsearch_lexer()
- *  116:     function split2Words($wordString)
- *
- *              SECTION: Helper functions
- *  178:     function addWords(&$words, &$wordString, $start, $len)
- *  239:     function get_word(&$str, $pos=0)
- *  264:     function utf8_is_letter(&$str, &$len, $pos=0)
- *  329:     function charType($cp)
- *  383:     function utf8_ord(&$str, &$len, $pos=0, $hex=false)
- *
- * TOTAL FUNCTIONS: 7
- * (This index is automatically created/updated by the extension "extdeveval")
- *
- */
 
 
 
@@ -107,11 +87,24 @@ class tx_indexedsearch_lexer {
         *
         * @return      void
         */
-       function tx_indexedsearch_lexer() {
+       function __construct() {
                $this->csObj = t3lib_div::makeInstance('t3lib_cs');
        }
 
        /**
+        * Compatibility constructor.
+        *
+        * @deprecated since TYPO3 4.6 and will be removed in TYPO3 4.8. Use __construct() instead.
+        */
+       public function tx_indexedsearch_lexer() {
+               t3lib_div::logDeprecatedFunction();
+                       // Note: we cannot call $this->__construct() here because it would call the derived class constructor and cause recursion
+                       // This code uses official PHP behavior (http://www.php.net/manual/en/language.oop5.basic.php) when $this in the
+                       // statically called non-static method inherits $this from the caller's scope.
+               tx_indexedsearch_lexer::__construct();
+       }
+
+       /**
         * Splitting string into words.
         * Used for indexing, can also be used to find words in query.
         *
@@ -239,20 +232,20 @@ class tx_indexedsearch_lexer {
         *
         * @param       string          Input string (reference)
         * @param       integer         Starting position in input string
-        * @return      array           0: start, 1: len or false if no word has been found
+        * @return      array           0: start, 1: len or FALSE if no word has been found
         */
        function get_word(&$str, $pos=0)        {
 
                $len=0;
 
-                       // If return is true, a word was found starting at this position, so returning position and length:
+                       // If return is TRUE, a word was found starting at this position, so returning position and length:
                if ($this->utf8_is_letter($str, $len, $pos))    {
                        return array($pos,$len);
                }
 
-                       // If the return value was false it means a sequence of non-word chars were found (or blank string) - so we will start another search for the word:
+                       // If the return value was FALSE it means a sequence of non-word chars were found (or blank string) - so we will start another search for the word:
                $pos += $len;
-               if ($str{$pos} == '')   return false;   // check end of string before looking for word of course.
+               if ($str{$pos} == '')   return FALSE;   // check end of string before looking for word of course.
 
                $this->utf8_is_letter($str, $len, $pos);
                return array($pos,$len);
@@ -271,10 +264,10 @@ class tx_indexedsearch_lexer {
 
                $len = 0;
                $bc = 0;
-               $cType = $cType_prev = false; // Letter type
-               $letter = true; // looking for a letter?
+               $cType = $cType_prev = FALSE; // Letter type
+               $letter = TRUE; // looking for a letter?
 
-               if ($str{$pos} == '')   return false;   // Return false on end-of-string at this stage
+               if ($str{$pos} == '')   return FALSE;   // Return FALSE on end-of-string at this stage
 
                while(1) {
 
@@ -291,7 +284,7 @@ class tx_indexedsearch_lexer {
                                                                $len = $printJoinLgd;
                                                        }
                                                        #debug($cp);
-                                                       return true;
+                                                       return TRUE;
                                                } else {        // If a printJoin char is found, record the length if it has not been recorded already:
                                                        if (!$printJoinLgd)     $printJoinLgd = $len;
                                                }
@@ -300,7 +293,7 @@ class tx_indexedsearch_lexer {
                                        }
                                }
                                elseif (!$letter && $cType)     {       // end of non-word reached
-                                       return false;
+                                       return FALSE;
                                }
                        }
                        $len += $bc;    // add byte-length of last found character
@@ -318,11 +311,11 @@ class tx_indexedsearch_lexer {
                                continue;
                        }
 
-                               // Setting letter to false if the first char was not a letter!
-                       if (!$len)      $letter = false;
+                               // Setting letter to FALSE if the first char was not a letter!
+                       if (!$len)      $letter = FALSE;
                }
 
-               return false;
+               return FALSE;
        }
 
        /**
@@ -385,12 +378,15 @@ class tx_indexedsearch_lexer {
         * @param       boolean         If set, then a hex. number is returned
         * @return      integer         UNICODE codepoint
         */
-       function utf8_ord(&$str, &$len, $pos=0, $hex=false)     {
+       function utf8_ord(&$str, &$len, $pos=0, $hex=FALSE)     {
                $ord = ord($str{$pos});
                $len = 1;
 
                if ($ord > 0x80)        {
-                       for ($bc=-1, $mbs=$ord; $mbs & 0x80; $mbs = $mbs << 1)  $bc++;  // calculate number of extra bytes
+                       for ($bc = -1, $mbs = $ord; $mbs & 0x80; $mbs = $mbs << 1) {
+                                       // calculate number of extra bytes
+                               $bc++;
+                       }
                        $len += $bc;
 
                        $ord = $ord & ((1 << (6-$bc)) - 1);     // mask utf-8 lead-in bytes