internal static int Arabic_shape(char[] src, int srcoffset, int srclength, char[] dest, int destoffset, int destlength, int level)
{
char[] str = new char[srclength];
for (int k = srclength + srcoffset - 1; k >= srcoffset; --k)
str[k - srcoffset] = src[k];
StringBuilder str2 = new StringBuilder(srclength);
Shape(str, str2, level);
if ((level & (ar_composedtashkeel | ar_lig)) != 0)
Doublelig(str2, level);
// string.Reverse();
System.Array.Copy(str2.ToString().ToCharArray(), 0, dest, destoffset, str2.Length);
return str2.Length;
}