Changeset 2268 for FCKpackager/trunk
- Timestamp:
- 2008-07-23 14:29:20 (4 months ago)
- Location:
- FCKpackager/trunk
- Files:
-
- 4 modified
-
fckpackager.exe (modified) (previous)
-
fckpackager.php (modified) (8 diffs)
-
_source/includes/fckfunctionprocessor.inc (modified) (4 diffs)
-
_source/includes/fckjavascriptcompressor.inc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
FCKpackager/trunk/fckpackager.php
r2243 r2268 1 #!/usr/bin/php -q1 #!/usr/bin/php -q 2 2 <?php 3 3 /* … … 224 224 $processed = $this->_ProcessVars( $processed, $this->_Parameters ) ; 225 225 226 $numVarMatches = preg_match_all( '/\bvar\b\s+([\w_][\w\d_]+)/', $processed, $varsMatches ) ; 226 // Match "var" declarations. 227 $numVarMatches = preg_match_all( '/\bvar\b\s+((?:({(?:(?>[^{}]*)|(?2))*})|[^;])+?)(?=(?:\bin\b)|;)/', $processed, $varsMatches ) ; 227 228 228 229 if ( $numVarMatches > 0 ) … … 232 233 for ( $i = 0 ; $i < $numVarMatches ; $i++ ) 233 234 { 234 $vars[] = $varsMatches[1][$i] ; 235 $varsMatch = $varsMatches[1][$i]; 236 237 // Removed all (...), [...] and {...} blocks from the var 238 // statement to avoid problems with commas inside them. 239 $varsMatch = preg_replace( '/(\((?:(?>[^\(\)]*)|(?1))*\))+/', '', $varsMatch ) ; 240 $varsMatch = preg_replace( '/(\[(?:(?>[^\[\]]*)|(?1))*\])+/', '', $varsMatch ) ; 241 $varsMatch = preg_replace( '/({(?:(?>[^{}]*)|(?1))*})+/', '', $varsMatch ) ; 242 243 $numVarNameMatches = preg_match_all( '/(?:^|,)\s*([^\s=,]+)/', $varsMatch, $varNameMatches ) ; 244 245 for ( $j = 0 ; $j < $numVarNameMatches ; $j++ ) 246 { 247 $vars[] = $varNameMatches[1][$j] ; 248 } 235 249 } 236 250 … … 246 260 { 247 261 if ( strlen( $var) > 1 ) 248 $source = preg_replace( '/(?<!\w|\d|\.)' . $var. '(?!\w|\d)/', $this->_GetVarName(), $source ) ;262 $source = preg_replace( '/(?<!\w|\d|\.)' . preg_quote( $var ) . '(?!\w|\d)/', $this->_GetVarName(), $source ) ; 249 263 } 250 264 … … 262 276 $var = $this->_VarPrefix . $this->_VarChars[ $this->_LastCharIndex++ ] ; 263 277 264 if ( preg_match( '/(?<!\w|\d|\.)' . $var. '(?!\w|\d)/', $this->_Function ) )278 if ( preg_match( '/(?<!\w|\d|\.)' . preg_quote( $var ) . '(?!\w|\d)/', $this->_Function ) ) 265 279 return $this->_GetVarName() ; 266 280 else … … 285 299 286 300 ?> 301 287 302 <?php 288 303 … … 405 420 $parameters = preg_split( '/\s*,\s*/', trim( $match[1] ) ) ; 406 421 407 $funcProcessor = new FCKFunctionProcessor( $match[0], $parameters, false ) ; 408 409 return $funcProcessor->Process() ; 410 } 411 } 412 413 ?> 422 $hasfuncProcessor = isset( $GLOBALS['funcProcessor'] ) ; 423 424 if ( $hasfuncProcessor != TRUE ) 425 $GLOBALS['funcProcessor'] = new FCKFunctionProcessor( $match[0], $parameters, false ) ; 426 else 427 { 428 $GLOBALS['funcProcessor']->_Function = $match[0]; 429 $GLOBALS['funcProcessor']->_Parameters = $parameters; 430 } 431 432 $processed = $GLOBALS['funcProcessor']->Process() ; 433 434 $processed = substr_replace( $processed, '', 0, 8 ) ; 435 436 $processed = FCKJavaScriptCompressor::_ProcessFunctions( $processed ) ; 437 438 if ( $hasfuncProcessor != TRUE ) 439 unset( $GLOBALS['funcProcessor'] ) ; 440 441 return 'function'. $processed ; 442 } 443 } 444 445 ?> 446 414 447 <?php 415 448 … … 771 804 772 805 ?> 806 773 807 <?php 774 808 -
FCKpackager/trunk/_source/includes/fckfunctionprocessor.inc
r2078 r2268 57 57 $processed = $this->_ProcessVars( $processed, $this->_Parameters ) ; 58 58 59 $numVarMatches = preg_match_all( '/\bvar\b\s+([\w_][\w\d_]+)/', $processed, $varsMatches ) ; 59 // Match "var" declarations. 60 $numVarMatches = preg_match_all( '/\bvar\b\s+((?:({(?:(?>[^{}]*)|(?2))*})|[^;])+?)(?=(?:\bin\b)|;)/', $processed, $varsMatches ) ; 60 61 61 62 if ( $numVarMatches > 0 ) … … 65 66 for ( $i = 0 ; $i < $numVarMatches ; $i++ ) 66 67 { 67 $vars[] = $varsMatches[1][$i] ; 68 $varsMatch = $varsMatches[1][$i]; 69 70 // Removed all (...), [...] and {...} blocks from the var 71 // statement to avoid problems with commas inside them. 72 $varsMatch = preg_replace( '/(\((?:(?>[^\(\)]*)|(?1))*\))+/', '', $varsMatch ) ; 73 $varsMatch = preg_replace( '/(\[(?:(?>[^\[\]]*)|(?1))*\])+/', '', $varsMatch ) ; 74 $varsMatch = preg_replace( '/({(?:(?>[^{}]*)|(?1))*})+/', '', $varsMatch ) ; 75 76 $numVarNameMatches = preg_match_all( '/(?:^|,)\s*([^\s=,]+)/', $varsMatch, $varNameMatches ) ; 77 78 for ( $j = 0 ; $j < $numVarNameMatches ; $j++ ) 79 { 80 $vars[] = $varNameMatches[1][$j] ; 81 } 68 82 } 69 83 … … 79 93 { 80 94 if ( strlen( $var) > 1 ) 81 $source = preg_replace( '/(?<!\w|\d|\.)' . $var. '(?!\w|\d)/', $this->_GetVarName(), $source ) ;95 $source = preg_replace( '/(?<!\w|\d|\.)' . preg_quote( $var ) . '(?!\w|\d)/', $this->_GetVarName(), $source ) ; 82 96 } 83 97 … … 95 109 $var = $this->_VarPrefix . $this->_VarChars[ $this->_LastCharIndex++ ] ; 96 110 97 if ( preg_match( '/(?<!\w|\d|\.)' . $var. '(?!\w|\d)/', $this->_Function ) )111 if ( preg_match( '/(?<!\w|\d|\.)' . preg_quote( $var ) . '(?!\w|\d)/', $this->_Function ) ) 98 112 return $this->_GetVarName() ; 99 113 else -
FCKpackager/trunk/_source/includes/fckjavascriptcompressor.inc
r2241 r2268 140 140 $parameters = preg_split( '/\s*,\s*/', trim( $match[1] ) ) ; 141 141 142 $ funcProcessor = new FCKFunctionProcessor( $match[0], $parameters, false) ;142 $hasfuncProcessor = isset( $GLOBALS['funcProcessor'] ) ; 143 143 144 return $funcProcessor->Process() ; 144 if ( $hasfuncProcessor != TRUE ) 145 $GLOBALS['funcProcessor'] = new FCKFunctionProcessor( $match[0], $parameters, false ) ; 146 else 147 { 148 $GLOBALS['funcProcessor']->_Function = $match[0]; 149 $GLOBALS['funcProcessor']->_Parameters = $parameters; 150 } 151 152 $processed = $GLOBALS['funcProcessor']->Process() ; 153 154 $processed = substr_replace( $processed, '', 0, 8 ) ; 155 156 $processed = FCKJavaScriptCompressor::_ProcessFunctions( $processed ) ; 157 158 if ( $hasfuncProcessor != TRUE ) 159 unset( $GLOBALS['funcProcessor'] ) ; 160 161 return 'function'. $processed ; 145 162 } 146 163 }