patch 9.0.1826: keytrans() doesn't translate recorded key typed in a GUI

Problem:  keytrans() doesn't translate recorded key typed in a GUI
Solution: Handle CSI like K_SPECIAL, like in mb_unescape()

closes: #12964
closes: #12966

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim
index 1cf2b0f..acc72f8 100644
--- a/src/testdir/test_gui.vim
+++ b/src/testdir/test_gui.vim
@@ -1687,4 +1687,9 @@
   iunmap <C-D>t
 endfunc
 
+func Test_gui_csi_keytrans()
+  call assert_equal('<C-L>', keytrans("\x9b\xfc\x04L"))
+  call assert_equal('<C-D>', keytrans("\x9b\xfc\x04D"))
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab