blob: a0050fa1fe77ffb62540793ad0a3e3d20a4c9676 [file] [log] [blame]
Bram Moolenaar21d7c9b2017-02-01 20:53:38 +01001" Test ga normal command, and :ascii Ex command.
Bram Moolenaar6d91bcb2020-08-12 18:50:36 +02002
Bram Moolenaar21d7c9b2017-02-01 20:53:38 +01003func Do_ga(c)
4 call setline(1, a:c)
5 let l:a = execute("norm 1goga")
6 let l:b = execute("ascii")
7 call assert_equal(l:a, l:b)
8 return l:a
9endfunc
10
11func Test_ga_command()
12 new
13 set display=uhex
14 call assert_equal("\nNUL", Do_ga(''))
Bram Moolenaar5f73ef82018-02-27 21:09:30 +010015 call assert_equal("\n<<01>> 1, Hex 01, Oct 001, Digr SH", Do_ga("\x01"))
16 call assert_equal("\n<<09>> 9, Hex 09, Oct 011, Digr HT", Do_ga("\t"))
Bram Moolenaar21d7c9b2017-02-01 20:53:38 +010017
18 set display=
19 call assert_equal("\nNUL", Do_ga(''))
Bram Moolenaar5f73ef82018-02-27 21:09:30 +010020 call assert_equal("\n<^A> 1, Hex 01, Oct 001, Digr SH", Do_ga("\x01"))
21 call assert_equal("\n<^I> 9, Hex 09, Oct 011, Digr HT", Do_ga("\t"))
Bram Moolenaar5d98dc22020-01-29 21:57:34 +010022 call assert_equal("\n<^@> 0, Hex 00, Octal 000", Do_ga("\n"))
Bram Moolenaar21d7c9b2017-02-01 20:53:38 +010023
24 call assert_equal("\n<e> 101, Hex 65, Octal 145", Do_ga('e'))
25
Bram Moolenaar21d7c9b2017-02-01 20:53:38 +010026 " Test a few multi-bytes characters.
Bram Moolenaar5f73ef82018-02-27 21:09:30 +010027 call assert_equal("\n<é> 233, Hex 00e9, Oct 351, Digr e'", Do_ga('é'))
28 call assert_equal("\n<ẻ> 7867, Hex 1ebb, Oct 17273, Digr e2", Do_ga('ẻ'))
Bram Moolenaare0c3c3d2020-06-04 22:46:04 +020029 call assert_equal("\n<\U00012345> 74565, Hex 00012345, Octal 221505", Do_ga("\U00012345"))
Bram Moolenaar21d7c9b2017-02-01 20:53:38 +010030
31 " Test with combining characters.
32 call assert_equal("\n<e> 101, Hex 65, Octal 145 < ́> 769, Hex 0301, Octal 1401", Do_ga("e\u0301"))
33 call assert_equal("\n<e> 101, Hex 65, Octal 145 < ́> 769, Hex 0301, Octal 1401 < ̱> 817, Hex 0331, Octal 1461", Do_ga("e\u0301\u0331"))
34 call assert_equal("\n<e> 101, Hex 65, Octal 145 < ́> 769, Hex 0301, Octal 1401 < ̱> 817, Hex 0331, Octal 1461 < ̸> 824, Hex 0338, Octal 1470", Do_ga("e\u0301\u0331\u0338"))
Bram Moolenaar5d98dc22020-01-29 21:57:34 +010035
36 " When using Mac fileformat, CR instead of NL is used for line termination
37 enew!
38 set fileformat=mac
39 call assert_equal("\n<^J> 10, Hex 0a, Oct 012, Digr NU", Do_ga("\r"))
40
Bram Moolenaar21d7c9b2017-02-01 20:53:38 +010041 bwipe!
42endfunc
Bram Moolenaar5d98dc22020-01-29 21:57:34 +010043
44" vim: shiftwidth=2 sts=2 expandtab