Changeset 2268 for FCKpackager/trunk/fckpackager.php
- Timestamp:
- 2008-07-23 14:29:20 (6 months ago)
- Files:
-
- 1 modified
-
FCKpackager/trunk/fckpackager.php (modified) (8 diffs)
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