// Copyright (C) 1997-2006 Autodesk, Inc., and/or its licensors.
// All rights reserved.
//
// The coded instructions, statements, computer programs, and/or related
// material (collectively the "Data") in these files contain unpublished
// information proprietary to Autodesk, Inc. ("Autodesk") and/or its licensors,
// which is protected by U.S. and Canadian federal copyright law and by
// international treaties.
//
// The Data is provided for use exclusively by You. You have the right to use,
// modify, and incorporate this Data into other products for purposes authorized 
// by the Autodesk software license agreement, without fee.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. AUTODESK
// DOES NOT MAKE AND HEREBY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTIES
// INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF NON-INFRINGEMENT,
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ARISING FROM A COURSE 
// OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT WILL AUTODESK AND/OR ITS
// LICENSORS BE LIABLE FOR ANY LOST REVENUES, DATA, OR PROFITS, OR SPECIAL,
// DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES, EVEN IF AUTODESK AND/OR ITS
// LICENSORS HAS BEEN ADVISED OF THE POSSIBILITY OR PROBABILITY OF SUCH DAMAGES.

//
//  Alias Script File
//  MODIFY THIS AT YOUR OWN RISK
//
//  Creation Date:  05 July 2006
//
//<doc>
//<name stringArrayInsertAtIndex>
//<owner "Alias Unsupported">
//
//<synopsis>
//		int stringArrayInsertAtIndex(int $index, string[] $list, string $item)
//
//<description>
//		Insert $item at $index in the string array $list.
//
//<flags>
//		int		 $index	The index into $list to add $str at
//		string[] $list	A list of string values.
//		string	 $item	The new item to add to $list at $index
//
//<returns>
//		int : Returns false if $index was negative and true on
//			  success.
//
//<examples>
//  string $array1[] = {"item1", "item2", "item3"};
//  // Result: item1 item2 item1 //
//  stringArrayInsertAtIndex(1, $array1, "new");
//  // Result: 1 //
//	print $array1;
//	// Result: item1 new item2 item3 //
//
//</doc>
//

global proc int stringArrayInsertAtIndex( int $index, string $list[], string $item )
{
	int     $i;
	string  $result[];
	int     $len = size( $list );

	// Check for a valid index and simple case of appending to end.
	//
	if ( $index < 0 ) {
		return( false );
	} else if ( $index >= $len ) {
		$list[$len] = $item;
		return( true );
	}

	// Copy any entries prior to $index.
	//
	for ( $i = 0; $i < $index; $i++ ) {
		$result[$i] = $list[$i];
	}

	// Add the new item.
	//
	$result[$i] = $item;

	// Copy any items which come after $index.
	//
	for ( ; $i < $len; $i++ ) {
		$result[$i + 1] = $list[$i];
	}

	// Copy the result to the list argument.
	//
	$list = $result;

	return( true );
}
