def rl_transpose_words(count, key)
orig_point = @rl_point
return if (count==0)
rl_forward_word(count, key)
w2_end = @rl_point
rl_backward_word(1, key)
w2_beg = @rl_point
rl_backward_word(count, key)
w1_beg = @rl_point
rl_forward_word(1, key)
w1_end = @rl_point
if ((w1_beg == w2_beg) || (w2_beg < w1_end))
rl_ding()
@rl_point = orig_point
return -1
end
word1 = rl_copy_text(w1_beg, w1_end)
word2 = rl_copy_text(w2_beg, w2_end)
rl_begin_undo_group()
@rl_point = w2_beg
rl_delete_text(w2_beg, w2_end)
rl_insert_text(word1)
@rl_point = w1_beg
rl_delete_text(w1_beg, w1_end)
rl_insert_text(word2)
@rl_point = w2_end
rl_end_undo_group()
word1 = nil
word2 = nil
0
end