From c35ca0ec3c89ed7e495c275aaee1a49836f968ad Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 19 Jul 2019 17:28:24 +0200 Subject: [PATCH 1/2] get_token_sq_c: skip char2nr for fixed values In Python it would use `ord()`, which does not work for `"\e"`. --- autoload/vimlparser.vim | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autoload/vimlparser.vim b/autoload/vimlparser.vim index 6f3d1d40..5796873d 100644 --- a/autoload/vimlparser.vim +++ b/autoload/vimlparser.vim @@ -5264,16 +5264,16 @@ function! s:RegexpParser.get_token_sq_c() return ['\n', 0] elseif c ==# 'r' call self.reader.seek_cur(1) - return ['\r', char2nr("\r")] + return ['\r', 13] elseif c ==# 't' call self.reader.seek_cur(1) - return ['\t', char2nr("\t")] + return ['\t', 9] elseif c ==# 'e' call self.reader.seek_cur(1) - return ['\e', char2nr("\e")] + return ['\e', 27] elseif c ==# 'b' call self.reader.seek_cur(1) - return ['\b', char2nr("\b")] + return ['\b', 8] elseif stridx(']^-\', c) != -1 call self.reader.seek_cur(1) return ['\' . c, char2nr(c)] From d3bca7fed5144d64959b86c59220e50d08d094c3 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 19 Jul 2019 17:31:48 +0200 Subject: [PATCH 2/2] gen --- js/vimlparser.js | 8 ++++---- py/vimlparser.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/js/vimlparser.js b/js/vimlparser.js index 7beae298..d3e7c9a9 100644 --- a/js/vimlparser.js +++ b/js/vimlparser.js @@ -5361,19 +5361,19 @@ RegexpParser.prototype.get_token_sq_c = function() { } else if (c == "r") { this.reader.seek_cur(1); - return ["\\r", viml_char2nr("\r")]; + return ["\\r", 13]; } else if (c == "t") { this.reader.seek_cur(1); - return ["\\t", viml_char2nr("\t")]; + return ["\\t", 9]; } else if (c == "e") { this.reader.seek_cur(1); - return ["\\e", viml_char2nr("\e")]; + return ["\\e", 27]; } else if (c == "b") { this.reader.seek_cur(1); - return ["\\b", viml_char2nr("\b")]; + return ["\\b", 8]; } else if (viml_stridx("]^-\\", c) != -1) { this.reader.seek_cur(1); diff --git a/py/vimlparser.py b/py/vimlparser.py index b7496377..f1ed03ed 100644 --- a/py/vimlparser.py +++ b/py/vimlparser.py @@ -4151,16 +4151,16 @@ def get_token_sq_c(self): return ["\\n", 0] elif c == "r": self.reader.seek_cur(1) - return ["\\r", viml_char2nr("\r")] + return ["\\r", 13] elif c == "t": self.reader.seek_cur(1) - return ["\\t", viml_char2nr("\t")] + return ["\\t", 9] elif c == "e": self.reader.seek_cur(1) - return ["\\e", viml_char2nr("\e")] + return ["\\e", 27] elif c == "b": self.reader.seek_cur(1) - return ["\\b", viml_char2nr("\b")] + return ["\\b", 8] elif viml_stridx("]^-\\", c) != -1: self.reader.seek_cur(1) return ["\\" + c, viml_char2nr(c)]