Mercurial > vim
comparison src/testdir/test_expr.vim @ 8887:8bf855dea79e v7.4.1730
commit https://github.com/vim/vim/commit/58de0e2dcc1f2d251b74892a06d71a14973f3187
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Apr 14 15:13:46 2016 +0200
patch 7.4.1730
Problem: It is not easy to get a character out of a string.
Solution: Add strgetchar() and strcharpart().
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 14 Apr 2016 15:15:05 +0200 |
parents | 9fa567d13551 |
children | 7f29248d5789 |
comparison
equal
deleted
inserted
replaced
8886:9954d0cd1e87 | 8887:8bf855dea79e |
---|---|
48 let d[''] = 'none' | 48 let d[''] = 'none' |
49 let d['a'] = 'aaa' | 49 let d['a'] = 'aaa' |
50 call assert_equal('none', d['']) | 50 call assert_equal('none', d['']) |
51 call assert_equal('aaa', d['a']) | 51 call assert_equal('aaa', d['a']) |
52 endfunc | 52 endfunc |
53 | |
54 func Test_strgetchar() | |
55 call assert_equal(char2nr('a'), strgetchar('axb', 0)) | |
56 call assert_equal(char2nr('x'), strgetchar('axb', 1)) | |
57 call assert_equal(char2nr('b'), strgetchar('axb', 2)) | |
58 | |
59 call assert_equal(-1, strgetchar('axb', -1)) | |
60 call assert_equal(-1, strgetchar('axb', 3)) | |
61 call assert_equal(-1, strgetchar('', 0)) | |
62 | |
63 if !has('multi_byte') | |
64 return | |
65 endif | |
66 | |
67 call assert_equal(char2nr('á'), strgetchar('áxb', 0)) | |
68 call assert_equal(char2nr('x'), strgetchar('áxb', 1)) | |
69 | |
70 call assert_equal(char2nr('a'), strgetchar('àxb', 0)) | |
71 call assert_equal(char2nr('̀'), strgetchar('àxb', 1)) | |
72 call assert_equal(char2nr('x'), strgetchar('àxb', 2)) | |
73 endfunc | |
74 | |
75 func Test_strcharpart() | |
76 call assert_equal('a', strcharpart('axb', 0, 1)) | |
77 call assert_equal('x', strcharpart('axb', 1, 1)) | |
78 call assert_equal('b', strcharpart('axb', 2, 1)) | |
79 call assert_equal('xb', strcharpart('axb', 1)) | |
80 | |
81 call assert_equal('', strcharpart('axb', 1, 0)) | |
82 call assert_equal('', strcharpart('axb', 1, -1)) | |
83 call assert_equal('', strcharpart('axb', -1, 1)) | |
84 call assert_equal('', strcharpart('axb', -2, 2)) | |
85 | |
86 call assert_equal('a', strcharpart('axb', -1, 2)) | |
87 | |
88 if !has('multi_byte') | |
89 return | |
90 endif | |
91 | |
92 call assert_equal('áxb', strcharpart('áxb', 0)) | |
93 call assert_equal('á', strcharpart('áxb', 0, 1)) | |
94 call assert_equal('x', strcharpart('áxb', 1, 1)) | |
95 | |
96 call assert_equal('a', strcharpart('àxb', 0, 1)) | |
97 call assert_equal('̀', strcharpart('àxb', 1, 1)) | |
98 call assert_equal('x', strcharpart('àxb', 2, 1)) | |
99 endfunc |