Ive been trying for a few days to create a $swaptok() identifier
and i keep coming up with an error where it moves the token to the second specified slot
syntax: $swaptok( text, token1, token2, C )
it is sposta swap token1 and token2 in text using c as the seperator
for instance $swaptok( 1 2 3 4 5 6 7 8 9, 1, 2, 32 ) SHOULD return 2 1 3 4 5 6 7 8 9 and when $swaptok( 2 1 3 4 5 6 7 8 9, 1, 2, 32 ) should return 1 2 3 4 5 6 7 8 9 however when attempting to run $swaptok the 2nd time it doesnt switch frown i know what my error is but cant seem to solve it

alias swaptok {
if ( $0 < 4 ) {
echo 2,1 error: $swaptok() requires 4 or more inputs
halt
}
set %dlktemp1 $numtok( $1-, 32 )
if ( %dlktemp1 == 4 ) set %dlktemp2 $1
if ( %dlktemp1 > 4 ) //set %dlktemp2 $gettok( $1-, 1- $+ $calc( %dlktemp1 - 3 ), 32 )
if ( %dlktemp1 == 4 ) set %dlktemp3 $2-
if ( %dlktemp1 > 4 ) //set %dlktemp3 $gettok( $1-, $calc( %dlktemp1 - 2 ) $+ - $+ %dlktemp1, 32 )
set %dlktemp4 $gettok( %dlktemp2, $gettok( %dlktemp3, 2, 32 ), $gettok( %dlktemp3, 3, 32 ) )
set %dlktemp5 $gettok( %dlktemp2, $gettok( %dlktemp3, 1, 32 ), $gettok( %dlktemp3, 3, 32 ) )
set %dlktemp2 $puttok( %dlktemp2, %dlktemp5, $gettok( %dlktemp3, 2, 32 ), $gettok( %dlktemp3, 3, 32 ) )
set %dlktemp2 $puttok( %dlktemp2, %dlktemp4, $gettok( %dlktemp3, 1, 32 ), $gettok( %dlktemp3, 3, 32 ) )
return %dlktemp2
}

Note: all variables are left intact for debugging until i fix it