var $pathInfo;
/**
- * Next serial number for whitespace placeholder paths (@extra-N)
+ * Next serial number for whitespace placeholder paths (\@extra-N)
*/
var $serial;
/**
* Edit the text. Returns the edited text.
- * @param array $ops Array of operations.
+ * @param $ops Array of operations.
*
* Operations are given as an associative array, with members:
* type: One of delete, set, append or insert (required)
// Has it got a comma already?
if ( strpos( $lastEltPath, '@extra' ) === false && !$lastEltInfo['hasComma'] ) {
// No comma, insert one after the value region
- list( $start, $end ) = $this->findValueRegion( $lastEltPath );
+ list( , $end ) = $this->findValueRegion( $lastEltPath );
$this->replaceSourceRegion( $end - 1, $end - 1, ',' );
}
list( $start, $end ) = $this->findDeletionRegion( $lastEltPath );
if ( $key === null ) {
- list( $indent, $arrowIndent ) = $this->getIndent( $start );
+ list( $indent, ) = $this->getIndent( $start );
$textToInsert = "$indent$value,";
} else {
list( $indent, $arrowIndent ) =
if ( $firstEltPath === false ) {
throw new MWException( "Can't find array element of \"$path\"" );
}
- list( $start, $end ) = $this->findDeletionRegion( $firstEltPath );
+ list( $start, ) = $this->findDeletionRegion( $firstEltPath );
$info = $this->pathInfo[$firstEltPath];
// Make the text to insert
if ( $key === null ) {
- list( $indent, $arrowIndent ) = $this->getIndent( $start );
+ list( $indent, ) = $this->getIndent( $start );
$textToInsert = "$indent$value,";
} else {
list( $indent, $arrowIndent ) =
function parseScalar( $str ) {
if ( $str !== '' && $str[0] == '\'' )
// Single-quoted string
- return strtr( substr( $str, 1, -1 ),
+ // @todo Fixme: trim() call is due to mystery bug where whitespace gets
+ // appended to the token; without it we ended up reading in the
+ // extra quote on the end!
+ return strtr( substr( trim( $str ), 1, -1 ),
array( '\\\'' => '\'', '\\\\' => '\\' ) );
if ( $str !== '' && @$str[0] == '"' )
// Double-quoted string
- return stripcslashes( substr( $str, 1, -1 ) );
+ // @todo Fixme: trim() call is due to mystery bug where whitespace gets
+ // appended to the token; without it we ended up reading in the
+ // extra quote on the end!
+ return stripcslashes( substr( trim( $str ), 1, -1 ) );
if ( substr( $str, 0, 4 ) == 'true' )
return true;
if ( substr( $str, 0, 5 ) == 'false' )
// Split all copy operations with a source corresponding to the region
// in question.
$newEdits = array();
- foreach ( $this->edits as $i => $edit ) {
+ foreach ( $this->edits as $edit ) {
if ( $edit[0] !== 'copy' ) {
$newEdits[] = $edit;
continue;
*/
function findValueRegion( $pathName ) {
if ( !isset( $this->pathInfo[$pathName] ) ) {
- throw new MWEXception( "Can't find path \"$pathName\"" );
+ throw new MWException( "Can't find path \"$pathName\"" );
}
$path = $this->pathInfo[$pathName];
if ( $path['valueStartByte'] === false || $path['valueEndByte'] === false ) {
/**
* Find the path name of the last element in the array.
- * If the array is empty, this will return the @extra interstitial element.
+ * If the array is empty, this will return the \@extra interstitial element.
* If the specified path is not found or is not an array, it will return false.
*/
function findLastArrayElement( $path ) {
/*
* Find the path name of first element in the array.
- * If the array is empty, this will return the @extra interstitial element.
+ * If the array is empty, this will return the \@extra interstitial element.
* If the specified path is not found or is not an array, it will return false.
*/
function findFirstArrayElement( $path ) {
$indent = false;
}
if ( $indent !== false && $arrowPos !== false ) {
- $textToInsert = "$indent$key ";
$arrowIndentLength = $arrowPos - $pos - $indentLength - strlen( $key );
if ( $arrowIndentLength > 0 ) {
$arrowIndent = str_repeat( ' ', $arrowIndentLength );
switch ( $state ) {
case 'file':
- $token = $this->expect( T_OPEN_TAG );
+ $this->expect( T_OPEN_TAG );
$token = $this->skipSpace();
if ( $token->isEnd() ) {
break 2;
* not call except from popPath() or nextPath().
*/
function endPath() {
- $i = count( $this->pathStack ) - 1;
$key = '';
foreach ( $this->pathStack as $pathInfo ) {
if ( $key !== '' ) {
/**
* Go to the next path on the same level. This ends the current path and
- * starts a new one. If $path is @next, the new path is set to the next
+ * starts a new one. If $path is \@next, the new path is set to the next
* numeric array element.
*/
function nextPath( $path ) {