1. The $bRow default value in the 3.3.13.15 documentation is listed as True. In 3.3.12.0 it was listed as False. In both cases it's False in the Array.au3. So, for the new version, it should be changed to $bRow = True in the Array.au3.
2. _ArraySwap isn't listed in the internal Array.au3 function list.
3. There's no check for $iIndex_2 bounds.
Just double these two lines:
If $iIndex_1 < 0 Or $iIndex_1 > $iDim_2 Then Return SetError(4, 0, -1)
If $iIndex_1 < 0 Or $iIndex_1 > $iDim_1 Then Return SetError(4, 0, -1)
and change $iIndex_1 to $iIndex_2 in the two new lines.
4. I think there's something wrong with $iStart and $iEnd bounds checking. I think this fixes it... switch these two lines:
If $iStart > $iDim_2 Or $iEnd > $iDim_2 Then Return SetError(4, 0, -1)
If $iStart > $iDim_1 Or $iEnd > $iDim_1 Then Return SetError(4, 0, -1)
5. Is it just me, or are the definitions of columns and rows swapped in this function? I might be imagining things because it's late... if it's true, then you might consider renaming $bRow to $bColumn or switching the if-else parts of the code (there's 2 of them).
6. I suggest using -1 as default $iStart and $iEnd value instead of 0, because someone might want to swap just the first (0-th) elements, and this doesn't let him do it (if swaps the whole row/column in that case). Obviously then the bounds checking would have to be written a bit differently to acknowledge this special case. I think it should be done, because the function as is now does not do what is advertised in the documentation.
Here's some code that reproduces some of the problems:
#include <Array.au3>
$string = "Id|hcIdx|BaseId|NextInClass|TransLvl|NameStr|MonStatsEx|MonProp" & @CRLF & "skeleton1|0|skeleton1|skeleton2|3|RathmaPriest|zakarumcleric2|other" & @CRLF & "skeleton2|1|skeleton1|skeleton3|1|QuotedForTruth|skeleton2|" & @CRLF & "skeleton3|2|skeleton1|skeleton4|2|BoneWarrior|skeleton3|"
local $array[1][8]
_ArrayAdd($array, $string)
_ArrayDelete($array, 0)
_ArrayDisplay($array)
_ArraySwap($array, 0, 2,True,0,1)
_ArrayDisplay($array)
I haven't checked if any other function has similar problems... I might be wrong in some of these points, so please do point out if I've made a mistake, since it's quite late and I'm tired and sleepy.
I'm checking here before I submit a ticket, if it's needed.
Thanks!