aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/api/private/helpers.c6
-rw-r--r--src/nvim/hardcopy.c2
-rw-r--r--src/nvim/po/eo.po5
-rw-r--r--src/nvim/po/fr.po15
-rw-r--r--src/nvim/screen.c14
-rw-r--r--src/nvim/testdir/Makefile1
-rw-r--r--src/nvim/testdir/test_alot.vim2
-rw-r--r--src/nvim/testdir/test_matchadd_conceal.vim262
-rw-r--r--src/nvim/testdir/test_matchadd_conceal_utf8.vim39
-rw-r--r--src/nvim/tui/tui.c12
-rw-r--r--src/nvim/version.c28
11 files changed, 334 insertions, 52 deletions
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c
index fc114bae16..d80ee7dc67 100644
--- a/src/nvim/api/private/helpers.c
+++ b/src/nvim/api/private/helpers.c
@@ -368,11 +368,10 @@ static inline void typval_encode_list_start(EncodedData *const edata,
const size_t len)
FUNC_ATTR_ALWAYS_INLINE FUNC_ATTR_NONNULL_ALL
{
- const Object obj = OBJECT_INIT;
kv_push(edata->stack, ARRAY_OBJ(((Array) {
.capacity = len,
.size = 0,
- .items = xmalloc(len * sizeof(*obj.data.array.items)),
+ .items = xmalloc(len * sizeof(*((Object *)NULL)->data.array.items)),
})));
}
@@ -409,11 +408,10 @@ static inline void typval_encode_dict_start(EncodedData *const edata,
const size_t len)
FUNC_ATTR_ALWAYS_INLINE FUNC_ATTR_NONNULL_ALL
{
- const Object obj = OBJECT_INIT;
kv_push(edata->stack, DICTIONARY_OBJ(((Dictionary) {
.capacity = len,
.size = 0,
- .items = xmalloc(len * sizeof(*obj.data.dictionary.items)),
+ .items = xmalloc(len * sizeof(*((Object *)NULL)->data.dictionary.items)),
})));
}
diff --git a/src/nvim/hardcopy.c b/src/nvim/hardcopy.c
index 7d4bfd0290..6acf7f395a 100644
--- a/src/nvim/hardcopy.c
+++ b/src/nvim/hardcopy.c
@@ -2105,7 +2105,7 @@ int mch_print_init(prt_settings_T *psettings, char_u *jobname, int forceit)
props = enc_canon_props(p_encoding);
if (!(props & ENC_8BIT) && ((*p_pmcs != NUL) || !(props & ENC_UNICODE))) {
p_mbenc_first = NULL;
- int effective_cmap;
+ int effective_cmap = 0;
for (cmap = 0; cmap < (int)ARRAY_SIZE(prt_ps_mbfonts); cmap++)
if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap],
&p_mbenc)) {
diff --git a/src/nvim/po/eo.po b/src/nvim/po/eo.po
index 6a62da870e..8a3cd50406 100644
--- a/src/nvim/po/eo.po
+++ b/src/nvim/po/eo.po
@@ -1346,11 +1346,6 @@ msgstr "E670: Miksaĵo de kodoprezento de helpa dosiero en lingvo: %s"
msgid "E154: Duplicate tag \"%s\" in file %s/%s"
msgstr "E154: Ripetita etikedo \"%s\" en dosiero %s/%s"
-#: ../ex_cmds.c:5687
-#, c-format
-msgid "E150: Not a directory: %s"
-msgstr "E150: Ne estas dosierujo: %s"
-
#, c-format
msgid "E160: Unknown sign command: %s"
msgstr "E160: Nekonata simbola komando: %s"
diff --git a/src/nvim/po/fr.po b/src/nvim/po/fr.po
index 49b7d06dd3..cd9f5a7eb2 100644
--- a/src/nvim/po/fr.po
+++ b/src/nvim/po/fr.po
@@ -1400,10 +1400,6 @@ msgstr " sur 1 ligne"
msgid " on %<PRId64> lines"
msgstr " sur %<PRId64> lignes"
-#, c-format
-msgid "E150: Not a directory: %s"
-msgstr "E150: %s n'est pas un r?pertoire"
-
# AB - Il faut respecter l'esprit plus que la lettre.
# AB - Ce message devrait contenir une référence à :vglobal.
#: ../ex_cmds.c:4438
@@ -7011,17 +7007,6 @@ msgstr "Non"
#~ msgid "Directory\t*.nothing\n"
#~ msgstr "Répertoire\t*.rien\n"
-#, c-format
-msgid "E671: Cannot find window title \"%s\""
-msgstr "E671: Titre de fen?tre \"%s\" introuvable"
-
-#, c-format
-msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
-msgstr "E243: Argument non support? : \"-%s\" ; Utilisez la version OLE."
-
-msgid "E672: Unable to open window inside MDI application"
-msgstr "E672: Impossible d'ouvrir une fen?tre dans une application MDI"
-
# DB - todo : perfectible.
#~ msgid ""
#~ "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index 9a2eeda8b2..47dd640e59 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -2210,8 +2210,8 @@ win_line (
///< force wrapping
int vcol_off = 0; ///< offset for concealed characters
int did_wcol = false;
- int match_conc = false; ///< cchar for match functions
- int has_match_conc = false; ///< match wants to conceal
+ int match_conc = 0; ///< cchar for match functions
+ int has_match_conc = 0; ///< match wants to conceal
int old_boguscols = 0;
# define VCOL_HLC (vcol - vcol_off)
# define FIX_FOR_BOGUSCOLS \
@@ -2656,7 +2656,7 @@ win_line (
// Repeat for the whole displayed line.
for (;; ) {
- has_match_conc = false;
+ has_match_conc = 0;
// Skip this quickly when working on the text.
if (draw_state != WL_LINE) {
if (draw_state == WL_CMDLINE - 1 && n_extra == 0) {
@@ -2906,10 +2906,10 @@ win_line (
shl->attr_cur = shl->attr;
if (cur != NULL && syn_name2id((char_u *)"Conceal")
== cur->hlg_id) {
- has_match_conc = true;
+ has_match_conc = v == (long)shl->startcol ? 2 : 1;
match_conc = cur->conceal_char;
} else {
- has_match_conc = match_conc = false;
+ has_match_conc = match_conc = 0;
}
} else if (v == (long)shl->endcol) {
shl->attr_cur = 0;
@@ -3633,11 +3633,11 @@ win_line (
if (wp->w_p_cole > 0
&& (wp != curwin || lnum != wp->w_cursor.lnum
|| conceal_cursor_line(wp))
- && ((syntax_flags & HL_CONCEAL) != 0 || has_match_conc)
+ && ((syntax_flags & HL_CONCEAL) != 0 || has_match_conc > 0)
&& !(lnum_in_visual_area
&& vim_strchr(wp->w_p_cocu, 'v') == NULL)) {
char_attr = conceal_attr;
- if (prev_syntax_id != syntax_seqnr
+ if ((prev_syntax_id != syntax_seqnr || has_match_conc > 1)
&& (syn_get_sub_char() != NUL || match_conc
|| wp->w_p_cole == 1)
&& wp->w_p_cole != 3) {
diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile
index 10d26bd8cf..4d21887240 100644
--- a/src/nvim/testdir/Makefile
+++ b/src/nvim/testdir/Makefile
@@ -41,6 +41,7 @@ NEW_TESTS = \
test_viml.res \
test_visual.res \
test_window_id.res \
+ test_matchadd_conceal.res \
test_alot.res
SCRIPTS_GUI := test16.out
diff --git a/src/nvim/testdir/test_alot.vim b/src/nvim/testdir/test_alot.vim
index f0efd6e4ed..7169b6076f 100644
--- a/src/nvim/testdir/test_alot.vim
+++ b/src/nvim/testdir/test_alot.vim
@@ -3,6 +3,7 @@
source test_assign.vim
source test_cursor_func.vim
+source test_ex_undo.vim
source test_feedkeys.vim
source test_cmdline.vim
source test_menu.vim
@@ -10,3 +11,4 @@ source test_popup.vim
source test_regexp_utf8.vim
source test_syn_attr.vim
source test_unlet.vim
+source test_matchadd_conceal_utf8.vim
diff --git a/src/nvim/testdir/test_matchadd_conceal.vim b/src/nvim/testdir/test_matchadd_conceal.vim
new file mode 100644
index 0000000000..bc1c28d6e9
--- /dev/null
+++ b/src/nvim/testdir/test_matchadd_conceal.vim
@@ -0,0 +1,262 @@
+" Test for matchadd() and conceal feature
+if !has('conceal')
+ finish
+endif
+
+function! s:screenline(lnum) abort
+ let line = []
+ for c in range(1, winwidth(0))
+ call add(line, nr2char(screenchar(a:lnum, c)))
+ endfor
+ return s:trim(join(line, ''))
+endfunction
+
+function! s:trim(str) abort
+ return matchstr(a:str,'^\s*\zs.\{-}\ze\s*$')
+endfunction
+
+function! Test_simple_matchadd()
+ new
+
+ 1put='# This is a Test'
+ " 1234567890123456
+ let expect = '# This is a Test'
+
+ call cursor(1, 1)
+ call matchadd('Conceal', '\%2l ')
+ redraw!
+ let lnum = 2
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
+
+ quit!
+endfunction
+
+function! Test_simple_matchadd_and_conceal()
+ new
+ setlocal concealcursor=n conceallevel=1
+
+ 1put='# This is a Test'
+ " 1234567890123456
+ let expect = '#XThisXisXaXTest'
+
+ call cursor(1, 1)
+ call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'X'})
+ redraw!
+ let lnum = 2
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
+
+ quit!
+endfunction
+
+function! Test_matchadd_and_conceallevel_3()
+ new
+
+ setlocal conceallevel=3
+ " set filetype and :syntax on to change screenattr()
+ setlocal filetype=conf
+ syntax on
+
+ 1put='# This is a Test'
+ " 1234567890123456
+ let expect = '#ThisisaTest'
+
+ call cursor(1, 1)
+ call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'X'})
+ redraw!
+ let lnum = 2
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
+ call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 16))
+
+ " more matchadd()
+ " 1234567890123456
+ let expect = '#Thisisa Test'
+
+ call matchadd('ErrorMsg', '\%2l Test', 20, -1, {'conceal': 'X'})
+ redraw!
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_equal(screenattr(lnum, 1) , screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2) , screenattr(lnum, 7))
+ call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 10), screenattr(lnum, 12))
+ call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 16))
+ call assert_notequal(screenattr(lnum, 10), screenattr(lnum, 16))
+
+ syntax off
+ quit!
+endfunction
+
+function! Test_default_conceal_char()
+ new
+ setlocal concealcursor=n conceallevel=1
+
+ 1put='# This is a Test'
+ " 1234567890123456
+ let expect = '# This is a Test'
+
+ call cursor(1, 1)
+ call matchadd('Conceal', '\%2l ', 10, -1, {})
+ redraw!
+ let lnum = 2
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
+
+ " 1234567890123456
+ let expect = '#+This+is+a+Test'
+ let listchars_save = &listchars
+ set listchars=conceal:+
+ redraw!
+
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
+
+ let &listchars = listchars_save
+ quit!
+endfunction
+
+function! Test_syn_and_match_conceal()
+ new
+ setlocal concealcursor=n conceallevel=1
+
+ 1put='# This is a Test'
+ " 1234567890123456
+ let expect = '#ZThisZisZaZTest'
+
+ call cursor(1, 1)
+ call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'Z'})
+ syntax match MyConceal /\%2l / conceal containedin=ALL cchar=*
+ redraw!
+ let lnum = 2
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
+
+ " 1234567890123456
+ let expect = '#*This*is*a*Test'
+ call clearmatches()
+ redraw!
+
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
+
+ syntax off
+ quit!
+endfunction
+
+function! Test_clearmatches()
+ new
+ setlocal concealcursor=n conceallevel=1
+
+ 1put='# This is a Test'
+ " 1234567890123456
+ let expect = '# This is a Test'
+
+ call cursor(1, 1)
+ call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'Z'})
+ let a = getmatches()
+ call clearmatches()
+ redraw!
+
+ let lnum = 2
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
+
+ " reset match using setmatches()
+ " 1234567890123456
+ let expect = '#ZThisZisZaZTest'
+ call setmatches(a)
+ redraw!
+
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
+ call assert_equal({'group': 'Conceal', 'pattern': '\%2l ', 'priority': 10, 'id': a[0].id, 'conceal': 'Z'}, a[0])
+
+ quit!
+endfunction
+
+function! Test_using_matchaddpos()
+ new
+ setlocal concealcursor=n conceallevel=1
+ " set filetype and :syntax on to change screenattr()
+ setlocal filetype=conf
+ syntax on
+
+ 1put='# This is a Test'
+ " 1234567890123456
+ let expect = '#Pis a Test'
+
+ call cursor(1, 1)
+ call matchaddpos('Conceal', [[2,2,6]], 10, -1, {'conceal': 'P'})
+ let a = getmatches()
+ redraw!
+
+ let lnum = 2
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 2))
+ call assert_notequal(screenattr(lnum, 2) , screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 1) , screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 1) , screenattr(lnum, 10))
+ call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 12))
+ call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 16))
+ call assert_equal(screenattr(lnum, 12), screenattr(lnum, 16))
+ call assert_equal({'group': 'Conceal', 'id': a[0].id, 'priority': 10, 'pos1': [2, 2, 6], 'conceal': 'P'}, a[0])
+
+ syntax off
+ quit!
+endfunction
+
+function! Test_matchadd_repeat_conceal_with_syntax_off()
+ new
+
+ " To test targets in the same line string is replaced with conceal char
+ " correctly, repeat 'TARGET'
+ 1put ='TARGET_TARGETTARGET'
+ call cursor(1, 1)
+ redraw
+ call assert_equal('TARGET_TARGETTARGET', s:screenline(2))
+
+ setlocal conceallevel=2
+ call matchadd('Conceal', 'TARGET', 10, -1, {'conceal': 't'})
+
+ redraw
+ call assert_equal('t_tt', s:screenline(2))
+
+ quit!
+endfunction
diff --git a/src/nvim/testdir/test_matchadd_conceal_utf8.vim b/src/nvim/testdir/test_matchadd_conceal_utf8.vim
new file mode 100644
index 0000000000..24c848a99c
--- /dev/null
+++ b/src/nvim/testdir/test_matchadd_conceal_utf8.vim
@@ -0,0 +1,39 @@
+" Test for matchadd() and conceal feature using utf-8.
+if !has('conceal') || !has('multi_byte')
+ finish
+endif
+
+function! s:screenline(lnum) abort
+ let line = []
+ for c in range(1, winwidth(0))
+ call add(line, nr2char(screenchar(a:lnum, c)))
+ endfor
+ return s:trim(join(line, ''))
+endfunction
+
+function! s:trim(str) abort
+ return matchstr(a:str,'^\s*\zs.\{-}\ze\s*$')
+endfunction
+
+function! Test_match_using_multibyte_conceal_char()
+ new
+ setlocal concealcursor=n conceallevel=1
+
+ 1put='# This is a Test'
+ " 1234567890123456
+ let expect = '#ˑThisˑisˑaˑTest'
+
+ call cursor(1, 1)
+ call matchadd('Conceal', '\%2l ', 20, -1, {'conceal': "\u02d1"})
+ redraw!
+
+ let lnum = 2
+ call assert_equal(expect, s:screenline(lnum))
+ call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
+ call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
+ call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
+
+ quit!
+endfunction
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index 04b5868d2c..f03d8b87fa 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -174,7 +174,7 @@ static void terminfo_stop(UI *ui)
unibi_out(ui, data->unibi_ext.disable_bracketed_paste);
// Disable focus reporting
unibi_out(ui, data->unibi_ext.disable_focus_reporting);
- flush_buf(ui);
+ flush_buf(ui, true);
uv_tty_reset_mode();
uv_close((uv_handle_t *)&data->output_handle, NULL);
uv_run(&data->write_loop, UV_RUN_DEFAULT);
@@ -601,7 +601,7 @@ static void tui_flush(UI *ui)
unibi_goto(ui, grid->row, grid->col);
- flush_buf(ui);
+ flush_buf(ui, true);
}
static void suspend_event(void **argv)
@@ -774,7 +774,7 @@ static void out(void *ctx, const char *str, size_t len)
size_t available = data->bufsize - data->bufpos;
if (len > available) {
- flush_buf(ui);
+ flush_buf(ui, false);
}
memcpy(data->buf + data->bufpos, str, len);
@@ -910,13 +910,13 @@ end:
unibi_set_if_empty(ut, unibi_clr_eos, "\x1b[J");
}
-static void flush_buf(UI *ui)
+static void flush_buf(UI *ui, bool toggle_cursor)
{
uv_write_t req;
uv_buf_t buf;
TUIData *data = ui->data;
- if (!data->busy) {
+ if (toggle_cursor && !data->busy) {
// not busy and the cursor is invisible(see below). Append a "cursor
// normal" command to the end of the buffer.
data->bufsize += CNORM_COMMAND_MAX_SIZE;
@@ -930,7 +930,7 @@ static void flush_buf(UI *ui)
uv_run(&data->write_loop, UV_RUN_DEFAULT);
data->bufpos = 0;
- if (!data->busy) {
+ if (toggle_cursor && !data->busy) {
// not busy and cursor is visible(see above), append a "cursor invisible"
// command to the beginning of the buffer for the next flush
unibi_out(ui, unibi_cursor_invisible);
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 302e78cb6c..bdffa21f46 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -122,7 +122,7 @@ static int included_patches[] = {
// 2322,
// 2321,
// 2320,
- // 2319,
+ // 2319 NA
// 2318,
// 2317,
// 2316 NA
@@ -163,7 +163,7 @@ static int included_patches[] = {
// 2281 NA
// 2280,
// 2279,
- // 2278,
+ // 2278 NA
// 2277,
// 2276,
// 2275,
@@ -209,7 +209,7 @@ static int included_patches[] = {
// 2235,
// 2234 NA
// 2233,
- // 2232,
+ // 2232 NA
// 2231,
// 2230,
// 2229,
@@ -326,7 +326,7 @@ static int included_patches[] = {
// 2118 NA
// 2117,
// 2116 NA
- // 2115,
+ // 2115 NA
// 2114 NA
// 2113,
2112,
@@ -496,7 +496,7 @@ static int included_patches[] = {
// 1948,
// 1947 NA
// 1946 NA
- // 1945,
+ // 1945 NA
// 1944 NA
// 1943 NA
// 1942 NA
@@ -630,14 +630,14 @@ static int included_patches[] = {
// 1814 NA
// 1813,
// 1812,
- // 1811,
+ // 1811 NA
// 1810 NA
1809,
1808,
// 1807 NA
1806,
- // 1805,
- // 1804,
+ // 1805 NA
+ // 1804 NA
// 1803 NA
// 1802,
// 1801 NA
@@ -647,7 +647,7 @@ static int included_patches[] = {
// 1797 NA
// 1796 NA
// 1795 NA
- // 1794,
+ // 1794 NA
// 1793,
// 1792 NA
// 1791 NA
@@ -672,14 +672,14 @@ static int included_patches[] = {
// 1773 NA
// 1772 NA
// 1771 NA
- // 1770,
+ // 1770 NA
// 1769,
// 1768,
// 1767 NA
// 1766 NA
// 1765,
// 1764 NA
- // 1763,
+ 1763,
// 1762,
// 1761,
// 1760 NA
@@ -693,7 +693,7 @@ static int included_patches[] = {
// 1753,
// 1752,
// 1751,
- // 1750,
+ // 1750 NA
// 1749 NA
// 1748,
// 1747 NA
@@ -703,7 +703,7 @@ static int included_patches[] = {
// 1743 NA
// 1742,
// 1741,
- // 1740,
+ 1740,
// 1739,
// 1738,
// 1737 NA
@@ -790,7 +790,7 @@ static int included_patches[] = {
// 1656,
// 1655 NA
1654,
- // 1653,
+ // 1653 NA
1652,
// 1651 NA
// 1650,