diff options
author | ZyX <kp-pav@yandex.ru> | 2017-01-04 14:53:02 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-01-04 14:53:02 +0300 |
commit | d82f5d1ba2f870ea6a29019993b3818e550338b7 (patch) | |
tree | 6fb0751931d51f35d1f28d494d2d618d630b3122 /runtime | |
parent | a934144e048e76875dc2584c249b83d2a84fa731 (diff) | |
download | rneovim-d82f5d1ba2f870ea6a29019993b3818e550338b7.tar.gz rneovim-d82f5d1ba2f870ea6a29019993b3818e550338b7.tar.bz2 rneovim-d82f5d1ba2f870ea6a29019993b3818e550338b7.zip |
plugin/msgpack: Support character constants like '\0'
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/autoload/msgpack.vim | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/runtime/autoload/msgpack.vim b/runtime/autoload/msgpack.vim index 2e2697c57f..a10ac32469 100644 --- a/runtime/autoload/msgpack.vim +++ b/runtime/autoload/msgpack.vim @@ -665,11 +665,15 @@ function msgpack#eval(s, special_objs) abort call add(expr, ']}') let s = s[1:] elseif s[0] is# '''' - let char = matchstr(s, '\m\C^''\zs.\ze''') + let char = matchstr(s, '\v\C^\''\zs%(\\\d+|.)\ze\''') if empty(char) throw 'char-invalid:Invalid integer character literal format: ' . s endif - call add(expr, char2nr(char)) + if char[0] is# '\' + call add(expr, +char[1:]) + else + call add(expr, char2nr(char)) + endif let s = s[len(char) + 2:] else throw 'unknown:Invalid non-space character: ' . s |