Changeset 2269
- Timestamp:
- 2008-07-23 14:31:33 (6 months ago)
- Files:
-
- 1 modified
-
FCKreleaser/trunk/fckreleaser.php (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
FCKreleaser/trunk/fckreleaser.php
r2244 r2269 1 #!/usr/bin/php -q1 #!/usr/bin/php -q 2 2 <?php 3 3 /* … … 338 338 } 339 339 ?> 340 <?php340 <?php 341 341 342 342 … … 514 514 $processed = $this->_ProcessVars( $processed, $this->_Parameters ) ; 515 515 516 $numVarMatches = preg_match_all( '/\bvar\b\s+([\w_][\w\d_]+)/', $processed, $varsMatches ) ; 516 // Match "var" declarations. 517 $numVarMatches = preg_match_all( '/\bvar\b\s+((?:({(?:(?>[^{}]*)|(?2))*})|[^;])+?)(?=(?:\bin\b)|;)/', $processed, $varsMatches ) ; 517 518 518 519 if ( $numVarMatches > 0 ) … … 522 523 for ( $i = 0 ; $i < $numVarMatches ; $i++ ) 523 524 { 524 $vars[] = $varsMatches[1][$i] ; 525 $varsMatch = $varsMatches[1][$i]; 526 527 // Removed all (...), [...] and {...} blocks from the var 528 // statement to avoid problems with commas inside them. 529 $varsMatch = preg_replace( '/(\((?:(?>[^\(\)]*)|(?1))*\))+/', '', $varsMatch ) ; 530 $varsMatch = preg_replace( '/(\[(?:(?>[^\[\]]*)|(?1))*\])+/', '', $varsMatch ) ; 531 $varsMatch = preg_replace( '/({(?:(?>[^{}]*)|(?1))*})+/', '', $varsMatch ) ; 532 533 $numVarNameMatches = preg_match_all( '/(?:^|,)\s*([^\s=,]+)/', $varsMatch, $varNameMatches ) ; 534 535 for ( $j = 0 ; $j < $numVarNameMatches ; $j++ ) 536 { 537 $vars[] = $varNameMatches[1][$j] ; 538 } 525 539 } 526 540 … … 536 550 { 537 551 if ( strlen( $var) > 1 ) 538 $source = preg_replace( '/(?<!\w|\d|\.)' . $var. '(?!\w|\d)/', $this->_GetVarName(), $source ) ;552 $source = preg_replace( '/(?<!\w|\d|\.)' . preg_quote( $var ) . '(?!\w|\d)/', $this->_GetVarName(), $source ) ; 539 553 } 540 554 … … 552 566 $var = $this->_VarPrefix . $this->_VarChars[ $this->_LastCharIndex++ ] ; 553 567 554 if ( preg_match( '/(?<!\w|\d|\.)' . $var. '(?!\w|\d)/', $this->_Function ) )568 if ( preg_match( '/(?<!\w|\d|\.)' . preg_quote( $var ) . '(?!\w|\d)/', $this->_Function ) ) 555 569 return $this->_GetVarName() ; 556 570 else … … 575 589 576 590 ?> 591 577 592 <?php 578 593 … … 695 710 $parameters = preg_split( '/\s*,\s*/', trim( $match[1] ) ) ; 696 711 697 $funcProcessor = new FCKFunctionProcessor( $match[0], $parameters, false ) ; 698 699 return $funcProcessor->Process() ; 700 } 701 } 702 703 ?> 712 $hasfuncProcessor = isset( $GLOBALS['funcProcessor'] ) ; 713 714 if ( $hasfuncProcessor != TRUE ) 715 $GLOBALS['funcProcessor'] = new FCKFunctionProcessor( $match[0], $parameters, false ) ; 716 else 717 { 718 $GLOBALS['funcProcessor']->_Function = $match[0]; 719 $GLOBALS['funcProcessor']->_Parameters = $parameters; 720 } 721 722 $processed = $GLOBALS['funcProcessor']->Process() ; 723 724 $processed = substr_replace( $processed, '', 0, 8 ) ; 725 726 $processed = FCKJavaScriptCompressor::_ProcessFunctions( $processed ) ; 727 728 if ( $hasfuncProcessor != TRUE ) 729 unset( $GLOBALS['funcProcessor'] ) ; 730 731 return 'function'. $processed ; 732 } 733 } 734 735 ?> 736 704 737 <?php 705 738 … … 1061 1094 1062 1095 ?> 1096 1063 1097 <?php 1064 1098