call delete('Xversion')
endfunc
+" The features[] array in version.c must stay sorted.
+func Test_features_sorted()
+ let lines = readfile('../version.c')
+ let start = match(lines, '^static char \*(features\[\]) =')
+ call assert_notequal(-1, start)
+ let end = match(lines, '^};', start)
+ call assert_notequal(-1, end)
+
+ " Alternatives for a single slot (#if/#elif/#else chains): only one of
+ " each group is ever compiled, so they are not separate list positions.
+ let ignore = ['dialog_con', 'dialog_gui', 'dialog', 'multi_byte', 'xpm', 'xsmp']
+
+ let names = []
+ for line in lines[start : end]
+ let name = matchstr(line, '"[+-]\zs[A-Za-z_0-9]\+\ze\%(/dyn\)\=",')
+ if name == '' || index(ignore, name) >= 0
+ continue
+ endif
+ if empty(names) || names[-1] !=# name
+ call add(names, name)
+ endif
+ endfor
+
+ call assert_true(len(names) > 100)
+ call assert_equal(sort(copy(names), 'i'), names)
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
#else
"-acl",
#endif
+#ifdef FEAT_ARABIC
+ "+arabic",
+#else
+ "-arabic",
+#endif
#ifdef AMIGA // only for Amiga systems
# ifdef FEAT_ARP
"+ARP",
"-ARP",
# endif
#endif
-#ifdef FEAT_ARABIC
- "+arabic",
-#else
- "-arabic",
-#endif
- "+autocmd",
#ifdef FEAT_AUTOCHDIR
- "+autochdir",
+ "+autochdir",
#else
- "-autochdir",
+ "-autochdir",
#endif
+ "+autocmd",
#ifdef FEAT_AUTOSERVERNAME
"+autoservername",
#else
# endif
#else
"-iconv",
+#endif
+#ifdef FEAT_IMAGE
+ "+image",
+#else
+ "-image",
+#endif
+#ifdef FEAT_IMAGE_CAIRO
+ "+image_cairo",
+#else
+ "-image_cairo",
+#endif
+#ifdef FEAT_IMAGE_GDI
+ "+image_gdi",
+#else
+ "-image_gdi",
+#endif
+#ifdef FEAT_IMAGE_GDK
+ "+image_gdk",
+#else
+ "-image_gdk",
+#endif
+#ifdef FEAT_IMAGE_KITTY
+ "+image_kitty",
+#else
+ "-image_kitty",
+#endif
+#ifdef FEAT_IMAGE_SIXEL
+ "+image_sixel",
+#else
+ "-image_sixel",
#endif
"+insert_expand",
#ifdef FEAT_IPV6
#endif
"+modify_fname",
"+mouse",
-#ifdef FEAT_MOUSESHAPE
- "+mouseshape",
-#else
- "-mouseshape",
-#endif
-
#if defined(UNIX) || defined(VMS)
# ifdef FEAT_MOUSE_DEC
"+mouse_dec",
# endif
"+mouse_xterm",
#endif
+#ifdef FEAT_MOUSESHAPE
+ "+mouseshape",
+#else
+ "-mouseshape",
+#endif
#ifdef FEAT_MBYTE_IME
# ifdef DYNAMIC_IME
#else
"-sodium",
#endif
-#ifdef FEAT_IMAGE
- "+image",
-#else
- "-image",
-#endif
-#ifdef FEAT_IMAGE_SIXEL
- "+image_sixel",
-#else
- "-image_sixel",
-#endif
-#ifdef FEAT_IMAGE_KITTY
- "+image_kitty",
-#else
- "-image_kitty",
-#endif
-#ifdef FEAT_IMAGE_GDI
- "+image_gdi",
-#else
- "-image_gdi",
-#endif
-#ifdef FEAT_IMAGE_CAIRO
- "+image_cairo",
-#else
- "-image_cairo",
-#endif
-#ifdef FEAT_IMAGE_GDK
- "+image_gdk",
-#else
- "-image_gdk",
-#endif
#ifdef FEAT_SOUND
"+sound",
#else
#else
"-tabpanel",
#endif
+ "-tag_any_white",
"+tag_binary",
"-tag_old_static",
- "-tag_any_white",
#ifdef FEAT_TCL
# ifdef DYNAMIC_TCL
"+tcl/dyn",
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 835,
/**/
834,
/**/