diff --git a/src/option.h b/src/option.h
index 605d588..0654667 100644
--- a/src/option.h
+++ b/src/option.h
@@ -26,7 +26,7 @@
 #  else
 #   ifdef VMS
 #    define DFLT_EFM	"%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f,%f|%l| %m"
-#   else /* Unix, probably */
+#   else // Unix, probably
 #    ifdef EBCDIC
 #define DFLT_EFM	"%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: Leaving directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m"
 #     else
@@ -39,7 +39,7 @@
 
 #define DFLT_GREPFORMAT	"%f:%l:%m,%f:%l%m,%f  %l%m"
 
-/* default values for b_p_ff 'fileformat' and p_ffs 'fileformats' */
+// default values for b_p_ff 'fileformat' and p_ffs 'fileformats'
 #define FF_DOS		"dos"
 #define FF_MAC		"mac"
 #define FF_UNIX		"unix"
@@ -47,13 +47,13 @@
 #ifdef USE_CRNL
 # define DFLT_FF	"dos"
 # define DFLT_FFS_VIM	"dos,unix"
-# define DFLT_FFS_VI	"dos,unix"	/* also autodetect in compatible mode */
+# define DFLT_FFS_VI	"dos,unix"	// also autodetect in compatible mode
 # define DFLT_TEXTAUTO	TRUE
 #else
 # define DFLT_FF	"unix"
 # define DFLT_FFS_VIM	"unix,dos"
 # ifdef __CYGWIN__
-#  define DFLT_FFS_VI	"unix,dos"	/* Cygwin always needs file detection */
+#  define DFLT_FFS_VI	"unix,dos"	// Cygwin always needs file detection
 #  define DFLT_TEXTAUTO TRUE
 # else
 #  define DFLT_FFS_VI	""
@@ -62,19 +62,19 @@
 #endif
 
 
-/* Possible values for 'encoding' */
-#define ENC_UCSBOM	"ucs-bom"	/* check for BOM at start of file */
+// Possible values for 'encoding'
+#define ENC_UCSBOM	"ucs-bom"	// check for BOM at start of file
 
-/* default value for 'encoding' */
+// default value for 'encoding'
 #define ENC_DFLT	"latin1"
 
-/* end-of-line style */
-#define EOL_UNKNOWN	-1	/* not defined yet */
-#define EOL_UNIX	0	/* NL */
-#define EOL_DOS		1	/* CR NL */
-#define EOL_MAC		2	/* CR */
+// end-of-line style
+#define EOL_UNKNOWN	-1	// not defined yet
+#define EOL_UNIX	0	// NL
+#define EOL_DOS		1	// CR NL
+#define EOL_MAC		2	// CR
 
-/* Formatting options for p_fo 'formatoptions' */
+// Formatting options for p_fo 'formatoptions'
 #define FO_WRAP		't'
 #define FO_WRAP_COMS	'c'
 #define FO_RET_COMS	'r'
@@ -85,104 +85,104 @@
 #define FO_INS_VI	'v'
 #define FO_INS_LONG	'l'
 #define FO_INS_BLANK	'b'
-#define FO_MBYTE_BREAK	'm'	/* break before/after multi-byte char */
-#define FO_MBYTE_JOIN	'M'	/* no space before/after multi-byte char */
-#define FO_MBYTE_JOIN2	'B'	/* no space between multi-byte chars */
+#define FO_MBYTE_BREAK	'm'	// break before/after multi-byte char
+#define FO_MBYTE_JOIN	'M'	// no space before/after multi-byte char
+#define FO_MBYTE_JOIN2	'B'	// no space between multi-byte chars
 #define FO_ONE_LETTER	'1'
-#define FO_WHITE_PAR	'w'	/* trailing white space continues paragr. */
-#define FO_AUTO		'a'	/* automatic formatting */
-#define FO_REMOVE_COMS	'j'	/* remove comment leaders when joining lines */
-#define FO_PERIOD_ABBR	'p'	/* don't break a single space after a period */
+#define FO_WHITE_PAR	'w'	// trailing white space continues paragr.
+#define FO_AUTO		'a'	// automatic formatting
+#define FO_REMOVE_COMS	'j'	// remove comment leaders when joining lines
+#define FO_PERIOD_ABBR	'p'	// don't break a single space after a period
 
 #define DFLT_FO_VI	"vt"
 #define DFLT_FO_VIM	"tcq"
-#define FO_ALL		"tcroq2vlb1mMBn,awjp"	/* for do_set() */
+#define FO_ALL		"tcroq2vlb1mMBn,awjp"	// for do_set()
 
-/* characters for the p_cpo option: */
-#define CPO_ALTREAD	'a'	/* ":read" sets alternate file name */
-#define CPO_ALTWRITE	'A'	/* ":write" sets alternate file name */
-#define CPO_BAR		'b'	/* "\|" ends a mapping */
-#define CPO_BSLASH	'B'	/* backslash in mapping is not special */
+// characters for the p_cpo option:
+#define CPO_ALTREAD	'a'	// ":read" sets alternate file name
+#define CPO_ALTWRITE	'A'	// ":write" sets alternate file name
+#define CPO_BAR		'b'	// "\|" ends a mapping
+#define CPO_BSLASH	'B'	// backslash in mapping is not special
 #define CPO_SEARCH	'c'
-#define CPO_CONCAT	'C'	/* Don't concatenate sourced lines */
-#define CPO_DOTTAG	'd'	/* "./tags" in 'tags' is in current dir */
-#define CPO_DIGRAPH	'D'	/* No digraph after "r", "f", etc. */
+#define CPO_CONCAT	'C'	// Don't concatenate sourced lines
+#define CPO_DOTTAG	'd'	// "./tags" in 'tags' is in current dir
+#define CPO_DIGRAPH	'D'	// No digraph after "r", "f", etc.
 #define CPO_EXECBUF	'e'
-#define CPO_EMPTYREGION	'E'	/* operating on empty region is an error */
-#define CPO_FNAMER	'f'	/* set file name for ":r file" */
-#define CPO_FNAMEW	'F'	/* set file name for ":w file" */
-#define CPO_GOTO1	'g'	/* goto line 1 for ":edit" */
-#define CPO_INSEND	'H'	/* "I" inserts before last blank in line */
-#define CPO_INTMOD	'i'	/* interrupt a read makes buffer modified */
-#define CPO_INDENT	'I'	/* remove auto-indent more often */
-#define CPO_JOINSP	'j'	/* only use two spaces for join after '.' */
-#define CPO_ENDOFSENT	'J'	/* need two spaces to detect end of sentence */
-#define CPO_KEYCODE	'k'	/* don't recognize raw key code in mappings */
-#define CPO_KOFFSET	'K'	/* don't wait for key code in mappings */
-#define CPO_LITERAL	'l'	/* take char after backslash in [] literal */
-#define CPO_LISTWM	'L'	/* 'list' changes wrapmargin */
+#define CPO_EMPTYREGION	'E'	// operating on empty region is an error
+#define CPO_FNAMER	'f'	// set file name for ":r file"
+#define CPO_FNAMEW	'F'	// set file name for ":w file"
+#define CPO_GOTO1	'g'	// goto line 1 for ":edit"
+#define CPO_INSEND	'H'	// "I" inserts before last blank in line
+#define CPO_INTMOD	'i'	// interrupt a read makes buffer modified
+#define CPO_INDENT	'I'	// remove auto-indent more often
+#define CPO_JOINSP	'j'	// only use two spaces for join after '.'
+#define CPO_ENDOFSENT	'J'	// need two spaces to detect end of sentence
+#define CPO_KEYCODE	'k'	// don't recognize raw key code in mappings
+#define CPO_KOFFSET	'K'	// don't wait for key code in mappings
+#define CPO_LITERAL	'l'	// take char after backslash in [] literal
+#define CPO_LISTWM	'L'	// 'list' changes wrapmargin
 #define CPO_SHOWMATCH	'm'
-#define CPO_MATCHBSL	'M'	/* "%" ignores use of backslashes */
-#define CPO_NUMCOL	'n'	/* 'number' column also used for text */
+#define CPO_MATCHBSL	'M'	// "%" ignores use of backslashes
+#define CPO_NUMCOL	'n'	// 'number' column also used for text
 #define CPO_LINEOFF	'o'
-#define CPO_OVERNEW	'O'	/* silently overwrite new file */
-#define CPO_LISP	'p'	/* 'lisp' indenting */
-#define CPO_FNAMEAPP	'P'	/* set file name for ":w >>file" */
-#define CPO_JOINCOL	'q'	/* with "3J" use column after first join */
+#define CPO_OVERNEW	'O'	// silently overwrite new file
+#define CPO_LISP	'p'	// 'lisp' indenting
+#define CPO_FNAMEAPP	'P'	// set file name for ":w >>file"
+#define CPO_JOINCOL	'q'	// with "3J" use column after first join
 #define CPO_REDO	'r'
-#define CPO_REMMARK	'R'	/* remove marks when filtering */
+#define CPO_REMMARK	'R'	// remove marks when filtering
 #define CPO_BUFOPT	's'
 #define CPO_BUFOPTGLOB	'S'
 #define CPO_TAGPAT	't'
-#define CPO_UNDO	'u'	/* "u" undoes itself */
-#define CPO_BACKSPACE	'v'	/* "v" keep deleted text */
-#define CPO_CW		'w'	/* "cw" only changes one blank */
-#define CPO_FWRITE	'W'	/* "w!" doesn't overwrite readonly files */
+#define CPO_UNDO	'u'	// "u" undoes itself
+#define CPO_BACKSPACE	'v'	// "v" keep deleted text
+#define CPO_CW		'w'	// "cw" only changes one blank
+#define CPO_FWRITE	'W'	// "w!" doesn't overwrite readonly files
 #define CPO_ESC		'x'
-#define CPO_REPLCNT	'X'	/* "R" with a count only deletes chars once */
+#define CPO_REPLCNT	'X'	// "R" with a count only deletes chars once
 #define CPO_YANK	'y'
-#define CPO_KEEPRO	'Z'	/* don't reset 'readonly' on ":w!" */
+#define CPO_KEEPRO	'Z'	// don't reset 'readonly' on ":w!"
 #define CPO_DOLLAR	'$'
 #define CPO_FILTER	'!'
 #define CPO_MATCH	'%'
-#define CPO_STAR	'*'	/* ":*" means ":@" */
-#define CPO_PLUS	'+'	/* ":write file" resets 'modified' */
-#define CPO_MINUS	'-'	/* "9-" fails at and before line 9 */
-#define CPO_SPECI	'<'	/* don't recognize <> in mappings */
-#define CPO_REGAPPEND	'>'	/* insert NL when appending to a register */
+#define CPO_STAR	'*'	// ":*" means ":@"
+#define CPO_PLUS	'+'	// ":write file" resets 'modified'
+#define CPO_MINUS	'-'	// "9-" fails at and before line 9
+#define CPO_SPECI	'<'	// don't recognize <> in mappings
+#define CPO_REGAPPEND	'>'	// insert NL when appending to a register
 /* POSIX flags */
-#define CPO_HASH	'#'	/* "D", "o" and "O" do not use a count */
-#define CPO_PARA	'{'	/* "{" is also a paragraph boundary */
-#define CPO_TSIZE	'|'	/* $LINES and $COLUMNS overrule term size */
-#define CPO_PRESERVE	'&'	/* keep swap file after :preserve */
-#define CPO_SUBPERCENT	'/'	/* % in :s string uses previous one */
-#define CPO_BACKSL	'\\'	/* \ is not special in [] */
-#define CPO_CHDIR	'.'	/* don't chdir if buffer is modified */
-#define CPO_SCOLON	';'	/* using "," and ";" will skip over char if
-				 * cursor would not move */
+#define CPO_HASH	'#'	// "D", "o" and "O" do not use a count
+#define CPO_PARA	'{'	// "{" is also a paragraph boundary
+#define CPO_TSIZE	'|'	// $LINES and $COLUMNS overrule term size
+#define CPO_PRESERVE	'&'	// keep swap file after :preserve
+#define CPO_SUBPERCENT	'/'	// % in :s string uses previous one
+#define CPO_BACKSL	'\\'	// \ is not special in []
+#define CPO_CHDIR	'.'	// don't chdir if buffer is modified
+#define CPO_SCOLON	';'	// using "," and ";" will skip over char if
+				// cursor would not move
 /* default values for Vim, Vi and POSIX */
 #define CPO_VIM		"aABceFs"
 #define CPO_VI		"aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>;"
 #define CPO_ALL		"aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\.;"
 
-/* characters for p_ww option: */
+// characters for p_ww option:
 #define WW_ALL		"bshl<>[],~"
 
-/* characters for p_mouse option: */
-#define MOUSE_NORMAL	'n'		/* use mouse in Normal mode */
-#define MOUSE_VISUAL	'v'		/* use mouse in Visual/Select mode */
-#define MOUSE_INSERT	'i'		/* use mouse in Insert mode */
-#define MOUSE_COMMAND	'c'		/* use mouse in Command-line mode */
-#define MOUSE_HELP	'h'		/* use mouse in help buffers */
-#define MOUSE_RETURN	'r'		/* use mouse for hit-return message */
-#define MOUSE_A		"nvich"		/* used for 'a' flag */
-#define MOUSE_ALL	"anvichr"	/* all possible characters */
-#define MOUSE_NONE	' '		/* don't use Visual selection */
-#define MOUSE_NONEF	'x'		/* forced modeless selection */
+// characters for p_mouse option:
+#define MOUSE_NORMAL	'n'		// use mouse in Normal mode
+#define MOUSE_VISUAL	'v'		// use mouse in Visual/Select mode
+#define MOUSE_INSERT	'i'		// use mouse in Insert mode
+#define MOUSE_COMMAND	'c'		// use mouse in Command-line mode
+#define MOUSE_HELP	'h'		// use mouse in help buffers
+#define MOUSE_RETURN	'r'		// use mouse for hit-return message
+#define MOUSE_A		"nvich"		// used for 'a' flag
+#define MOUSE_ALL	"anvichr"	// all possible characters
+#define MOUSE_NONE	' '		// don't use Visual selection
+#define MOUSE_NONEF	'x'		// forced modeless selection
 
-#define COCU_ALL	"nvic"		/* flags for 'concealcursor' */
+#define COCU_ALL	"nvic"		// flags for 'concealcursor'
 
-/* characters for p_shm option: */
+// characters for p_shm option:
 #define SHM_RO		'r'		// readonly
 #define SHM_MOD		'm'		// modified
 #define SHM_FILE	'f'		// (file 1 of 2)
@@ -207,94 +207,94 @@
 #define SHM_POSIX       "AS"            // POSIX value
 #define SHM_ALL		"rmfixlnwaWtToOsAIcqFS" // all possible flags for 'shm'
 
-/* characters for p_go: */
-#define GO_TERMINAL	'!'		/* use terminal for system commands */
-#define GO_ASEL		'a'		/* autoselect */
-#define GO_ASELML	'A'		/* autoselect modeless selection */
-#define GO_BOT		'b'		/* use bottom scrollbar */
-#define GO_CONDIALOG	'c'		/* use console dialog */
-#define GO_TABLINE	'e'		/* may show tabline */
-#define GO_FORG		'f'		/* start GUI in foreground */
-#define GO_GREY		'g'		/* use grey menu items */
-#define GO_HORSCROLL	'h'		/* flexible horizontal scrolling */
-#define GO_ICON		'i'		/* use Vim icon */
-#define GO_LEFT		'l'		/* use left scrollbar */
-#define GO_VLEFT	'L'		/* left scrollbar with vert split */
-#define GO_MENUS	'm'		/* use menu bar */
-#define GO_NOSYSMENU	'M'		/* don't source system menu */
-#define GO_POINTER	'p'		/* pointer enter/leave callbacks */
-#define GO_ASELPLUS	'P'		/* autoselectPlus */
-#define GO_RIGHT	'r'		/* use right scrollbar */
-#define GO_VRIGHT	'R'		/* right scrollbar with vert split */
-#define GO_TEAROFF	't'		/* add tear-off menu items */
-#define GO_TOOLBAR	'T'		/* add toolbar */
-#define GO_FOOTER	'F'		/* add footer */
-#define GO_VERTICAL	'v'		/* arrange dialog buttons vertically */
-#define GO_KEEPWINSIZE	'k'		/* keep GUI window size */
-#define GO_ALL		"!aAbcefFghilmMprtTvk" /* all possible flags for 'go' */
+// characters for p_go:
+#define GO_TERMINAL	'!'		// use terminal for system commands
+#define GO_ASEL		'a'		// autoselect
+#define GO_ASELML	'A'		// autoselect modeless selection
+#define GO_BOT		'b'		// use bottom scrollbar
+#define GO_CONDIALOG	'c'		// use console dialog
+#define GO_TABLINE	'e'		// may show tabline
+#define GO_FORG		'f'		// start GUI in foreground
+#define GO_GREY		'g'		// use grey menu items
+#define GO_HORSCROLL	'h'		// flexible horizontal scrolling
+#define GO_ICON		'i'		// use Vim icon
+#define GO_LEFT		'l'		// use left scrollbar
+#define GO_VLEFT	'L'		// left scrollbar with vert split
+#define GO_MENUS	'm'		// use menu bar
+#define GO_NOSYSMENU	'M'		// don't source system menu
+#define GO_POINTER	'p'		// pointer enter/leave callbacks
+#define GO_ASELPLUS	'P'		// autoselectPlus
+#define GO_RIGHT	'r'		// use right scrollbar
+#define GO_VRIGHT	'R'		// right scrollbar with vert split
+#define GO_TEAROFF	't'		// add tear-off menu items
+#define GO_TOOLBAR	'T'		// add toolbar
+#define GO_FOOTER	'F'		// add footer
+#define GO_VERTICAL	'v'		// arrange dialog buttons vertically
+#define GO_KEEPWINSIZE	'k'		// keep GUI window size
+#define GO_ALL		"!aAbcefFghilmMprtTvk" // all possible flags for 'go'
 
-/* flags for 'comments' option */
-#define COM_NEST	'n'		/* comments strings nest */
-#define COM_BLANK	'b'		/* needs blank after string */
-#define COM_START	's'		/* start of comment */
-#define COM_MIDDLE	'm'		/* middle of comment */
-#define COM_END		'e'		/* end of comment */
-#define COM_AUTO_END	'x'		/* last char of end closes comment */
-#define COM_FIRST	'f'		/* first line comment only */
-#define COM_LEFT	'l'		/* left adjusted */
-#define COM_RIGHT	'r'		/* right adjusted */
-#define COM_NOBACK	'O'		/* don't use for "O" command */
-#define COM_ALL		"nbsmexflrO"	/* all flags for 'comments' option */
-#define COM_MAX_LEN	50		/* maximum length of a part */
+// flags for 'comments' option
+#define COM_NEST	'n'		// comments strings nest
+#define COM_BLANK	'b'		// needs blank after string
+#define COM_START	's'		// start of comment
+#define COM_MIDDLE	'm'		// middle of comment
+#define COM_END		'e'		// end of comment
+#define COM_AUTO_END	'x'		// last char of end closes comment
+#define COM_FIRST	'f'		// first line comment only
+#define COM_LEFT	'l'		// left adjusted
+#define COM_RIGHT	'r'		// right adjusted
+#define COM_NOBACK	'O'		// don't use for "O" command
+#define COM_ALL		"nbsmexflrO"	// all flags for 'comments' option
+#define COM_MAX_LEN	50		// maximum length of a part
 
-/* flags for 'statusline' option */
-#define STL_FILEPATH	'f'		/* path of file in buffer */
-#define STL_FULLPATH	'F'		/* full path of file in buffer */
-#define STL_FILENAME	't'		/* last part (tail) of file path */
-#define STL_COLUMN	'c'		/* column og cursor*/
-#define STL_VIRTCOL	'v'		/* virtual column */
-#define STL_VIRTCOL_ALT	'V'		/* - with 'if different' display */
-#define STL_LINE	'l'		/* line number of cursor */
-#define STL_NUMLINES	'L'		/* number of lines in buffer */
-#define STL_BUFNO	'n'		/* current buffer number */
-#define STL_KEYMAP	'k'		/* 'keymap' when active */
-#define STL_OFFSET	'o'		/* offset of character under cursor*/
-#define STL_OFFSET_X	'O'		/* - in hexadecimal */
-#define STL_BYTEVAL	'b'		/* byte value of character */
-#define STL_BYTEVAL_X	'B'		/* - in hexadecimal */
-#define STL_ROFLAG	'r'		/* readonly flag */
-#define STL_ROFLAG_ALT	'R'		/* - other display */
-#define STL_HELPFLAG	'h'		/* window is showing a help file */
-#define STL_HELPFLAG_ALT 'H'		/* - other display */
-#define STL_FILETYPE	'y'		/* 'filetype' */
-#define STL_FILETYPE_ALT 'Y'		/* - other display */
-#define STL_PREVIEWFLAG	'w'		/* window is showing the preview buf */
-#define STL_PREVIEWFLAG_ALT 'W'		/* - other display */
-#define STL_MODIFIED	'm'		/* modified flag */
-#define STL_MODIFIED_ALT 'M'		/* - other display */
-#define STL_QUICKFIX	'q'		/* quickfix window description */
-#define STL_PERCENTAGE	'p'		/* percentage through file */
-#define STL_ALTPERCENT	'P'		/* percentage as TOP BOT ALL or NN% */
-#define STL_ARGLISTSTAT	'a'		/* argument list status as (x of y) */
-#define STL_PAGENUM	'N'		/* page number (when printing)*/
-#define STL_VIM_EXPR	'{'		/* start of expression to substitute */
-#define STL_MIDDLEMARK	'='		/* separation between left and right */
-#define STL_TRUNCMARK	'<'		/* truncation mark if line is too long*/
-#define STL_USER_HL	'*'		/* highlight from (User)1..9 or 0 */
-#define STL_HIGHLIGHT	'#'		/* highlight name */
-#define STL_TABPAGENR	'T'		/* tab page label nr */
-#define STL_TABCLOSENR	'X'		/* tab page close nr */
+// flags for 'statusline' option
+#define STL_FILEPATH	'f'		// path of file in buffer
+#define STL_FULLPATH	'F'		// full path of file in buffer
+#define STL_FILENAME	't'		// last part (tail) of file path
+#define STL_COLUMN	'c'		// column og cursor
+#define STL_VIRTCOL	'v'		// virtual column
+#define STL_VIRTCOL_ALT	'V'		// - with 'if different' display
+#define STL_LINE	'l'		// line number of cursor
+#define STL_NUMLINES	'L'		// number of lines in buffer
+#define STL_BUFNO	'n'		// current buffer number
+#define STL_KEYMAP	'k'		// 'keymap' when active
+#define STL_OFFSET	'o'		// offset of character under cursor
+#define STL_OFFSET_X	'O'		// - in hexadecimal
+#define STL_BYTEVAL	'b'		// byte value of character
+#define STL_BYTEVAL_X	'B'		// - in hexadecimal
+#define STL_ROFLAG	'r'		// readonly flag
+#define STL_ROFLAG_ALT	'R'		// - other display
+#define STL_HELPFLAG	'h'		// window is showing a help file
+#define STL_HELPFLAG_ALT 'H'		// - other display
+#define STL_FILETYPE	'y'		// 'filetype'
+#define STL_FILETYPE_ALT 'Y'		// - other display
+#define STL_PREVIEWFLAG	'w'		// window is showing the preview buf
+#define STL_PREVIEWFLAG_ALT 'W'		// - other display
+#define STL_MODIFIED	'm'		// modified flag
+#define STL_MODIFIED_ALT 'M'		// - other display
+#define STL_QUICKFIX	'q'		// quickfix window description
+#define STL_PERCENTAGE	'p'		// percentage through file
+#define STL_ALTPERCENT	'P'		// percentage as TOP BOT ALL or NN%
+#define STL_ARGLISTSTAT	'a'		// argument list status as (x of y)
+#define STL_PAGENUM	'N'		// page number (when printing)
+#define STL_VIM_EXPR	'{'		// start of expression to substitute
+#define STL_MIDDLEMARK	'='		// separation between left and right
+#define STL_TRUNCMARK	'<'		// truncation mark if line is too long
+#define STL_USER_HL	'*'		// highlight from (User)1..9 or 0
+#define STL_HIGHLIGHT	'#'		// highlight name
+#define STL_TABPAGENR	'T'		// tab page label nr
+#define STL_TABCLOSENR	'X'		// tab page close nr
 #define STL_ALL		((char_u *) "fFtcvVlLknoObBrRhHmYyWwMqpPaN{#")
 
-/* flags used for parsed 'wildmode' */
+// flags used for parsed 'wildmode'
 #define WIM_FULL	1
 #define WIM_LONGEST	2
 #define WIM_LIST	4
 
-/* arguments for can_bs() */
-#define BS_INDENT	'i'	/* "Indent" */
-#define BS_EOL		'o'	/* "eOl" */
-#define BS_START	's'	/* "Start" */
+// arguments for can_bs()
+#define BS_INDENT	'i'	// "Indent"
+#define BS_EOL		'o'	// "eOl"
+#define BS_START	's'	// "Start"
 
 #define LISPWORD_VALUE	"defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,define-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etypecase,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-prog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-from-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,define-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accessors,with-accessors*,defclass,defmethod,print-unreadable-object"
 
@@ -303,24 +303,24 @@
  */
 
 #ifdef FEAT_RIGHTLEFT
-EXTERN long	p_aleph;	/* 'aleph' */
+EXTERN long	p_aleph;	// 'aleph'
 #endif
 #ifdef FEAT_AUTOCHDIR
-EXTERN int	p_acd;		/* 'autochdir' */
+EXTERN int	p_acd;		// 'autochdir'
 #endif
-EXTERN char_u	*p_ambw;	/* 'ambiwidth' */
-EXTERN char_u	*p_emoji;	/* 'emoji' */
+EXTERN char_u	*p_ambw;	// 'ambiwidth'
+EXTERN char_u	*p_emoji;	// 'emoji'
 #if defined(FEAT_GUI) && defined(MACOS_X)
-EXTERN int	*p_antialias;	/* 'antialias' */
+EXTERN int	*p_antialias;	// 'antialias'
 #endif
-EXTERN int	p_ar;		/* 'autoread' */
-EXTERN int	p_aw;		/* 'autowrite' */
-EXTERN int	p_awa;		/* 'autowriteall' */
-EXTERN char_u	*p_bs;		/* 'backspace' */
-EXTERN char_u	*p_bg;		/* 'background' */
-EXTERN int	p_bk;		/* 'backup' */
-EXTERN char_u	*p_bkc;		/* 'backupcopy' */
-EXTERN unsigned	bkc_flags;	/* flags from 'backupcopy' */
+EXTERN int	p_ar;		// 'autoread'
+EXTERN int	p_aw;		// 'autowrite'
+EXTERN int	p_awa;		// 'autowriteall'
+EXTERN char_u	*p_bs;		// 'backspace'
+EXTERN char_u	*p_bg;		// 'background'
+EXTERN int	p_bk;		// 'backup'
+EXTERN char_u	*p_bkc;		// 'backupcopy'
+EXTERN unsigned	bkc_flags;	// flags from 'backupcopy'
 #ifdef IN_OPTION_C
 static char *(p_bkc_values[]) = {"yes", "auto", "no", "breaksymlink", "breakhardlink", NULL};
 #endif
@@ -329,9 +329,9 @@
 # define BKC_NO			0x004
 # define BKC_BREAKSYMLINK	0x008
 # define BKC_BREAKHARDLINK	0x010
-EXTERN char_u	*p_bdir;	/* 'backupdir' */
-EXTERN char_u	*p_bex;		/* 'backupext' */
-EXTERN char_u	*p_bo;		/* 'belloff' */
+EXTERN char_u	*p_bdir;	// 'backupdir'
+EXTERN char_u	*p_bex;		// 'backupext'
+EXTERN char_u	*p_bo;		// 'belloff'
 EXTERN unsigned	bo_flags;
 # ifdef IN_OPTION_C
 static char *(p_bo_values[]) = {"all", "backspace", "cursor", "complete",
@@ -341,7 +341,7 @@
 				 "spell", "wildmode", NULL};
 # endif
 
-/* values for the 'beepon' option */
+// values for the 'beepon' option
 #define BO_ALL		0x0001
 #define BO_BS		0x0002
 #define BO_CRSR		0x0004
@@ -363,91 +363,91 @@
 #define BO_WILD		0x40000
 
 #ifdef FEAT_WILDIGN
-EXTERN char_u	*p_bsk;		/* 'backupskip' */
+EXTERN char_u	*p_bsk;		// 'backupskip'
 #endif
 #ifdef FEAT_CRYPT
-EXTERN char_u	*p_cm;		/* 'cryptmethod' */
+EXTERN char_u	*p_cm;		// 'cryptmethod'
 #endif
 #ifdef FEAT_BEVAL
 # ifdef FEAT_BEVAL_GUI
-EXTERN int	p_beval;	/* 'ballooneval' */
+EXTERN int	p_beval;	// 'ballooneval'
 # endif
-EXTERN long	p_bdlay;	/* 'balloondelay' */
+EXTERN long	p_bdlay;	// 'balloondelay'
 # ifdef FEAT_EVAL
 EXTERN char_u	*p_bexpr;
 # endif
 # ifdef FEAT_BEVAL_TERM
-EXTERN int	p_bevalterm;	/* 'balloonevalterm' */
+EXTERN int	p_bevalterm;	// 'balloonevalterm'
 # endif
 #endif
 #ifdef FEAT_BROWSE
-EXTERN char_u	*p_bsdir;	/* 'browsedir' */
+EXTERN char_u	*p_bsdir;	// 'browsedir'
 #endif
 #ifdef FEAT_LINEBREAK
-EXTERN char_u	*p_breakat;	/* 'breakat' */
+EXTERN char_u	*p_breakat;	// 'breakat'
 #endif
-EXTERN char_u	*p_cmp;		/* 'casemap' */
+EXTERN char_u	*p_cmp;		// 'casemap'
 EXTERN unsigned	cmp_flags;
 #ifdef IN_OPTION_C
 static char *(p_cmp_values[]) = {"internal", "keepascii", NULL};
 #endif
 #define CMP_INTERNAL		0x001
 #define CMP_KEEPASCII		0x002
-EXTERN char_u	*p_enc;		/* 'encoding' */
-EXTERN int	p_deco;		/* 'delcombine' */
+EXTERN char_u	*p_enc;		// 'encoding'
+EXTERN int	p_deco;		// 'delcombine'
 #ifdef FEAT_EVAL
-EXTERN char_u	*p_ccv;		/* 'charconvert' */
+EXTERN char_u	*p_ccv;		// 'charconvert'
 #endif
 #ifdef FEAT_CMDWIN
-EXTERN char_u	*p_cedit;	/* 'cedit' */
-EXTERN long	p_cwh;		/* 'cmdwinheight' */
+EXTERN char_u	*p_cedit;	// 'cedit'
+EXTERN long	p_cwh;		// 'cmdwinheight'
 #endif
 #ifdef FEAT_CLIPBOARD
-EXTERN char_u	*p_cb;		/* 'clipboard' */
+EXTERN char_u	*p_cb;		// 'clipboard'
 #endif
-EXTERN long	p_ch;		/* 'cmdheight' */
+EXTERN long	p_ch;		// 'cmdheight'
 #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
-EXTERN int	p_confirm;	/* 'confirm' */
+EXTERN int	p_confirm;	// 'confirm'
 #endif
-EXTERN int	p_cp;		/* 'compatible' */
+EXTERN int	p_cp;		// 'compatible'
 #ifdef FEAT_INS_EXPAND
-EXTERN char_u	*p_cot;		/* 'completeopt' */
-EXTERN long	p_ph;		/* 'pumheight' */
-EXTERN long	p_pw;		/* 'pumwidth' */
+EXTERN char_u	*p_cot;		// 'completeopt'
+EXTERN long	p_ph;		// 'pumheight'
+EXTERN long	p_pw;		// 'pumwidth'
 #endif
-EXTERN char_u	*p_cpo;		/* 'cpoptions' */
+EXTERN char_u	*p_cpo;		// 'cpoptions'
 #ifdef FEAT_CSCOPE
-EXTERN char_u	*p_csprg;	/* 'cscopeprg' */
-EXTERN int	p_csre;		/* 'cscoperelative' */
+EXTERN char_u	*p_csprg;	// 'cscopeprg'
+EXTERN int	p_csre;		// 'cscoperelative'
 # ifdef FEAT_QUICKFIX
-EXTERN char_u	*p_csqf;	/* 'cscopequickfix' */
+EXTERN char_u	*p_csqf;	// 'cscopequickfix'
 #  define	CSQF_CMDS   "sgdctefia"
 #  define	CSQF_FLAGS  "+-0"
 # endif
-EXTERN int	p_cst;		/* 'cscopetag' */
-EXTERN long	p_csto;		/* 'cscopetagorder' */
-EXTERN long	p_cspc;		/* 'cscopepathcomp' */
-EXTERN int	p_csverbose;	/* 'cscopeverbose' */
+EXTERN int	p_cst;		// 'cscopetag'
+EXTERN long	p_csto;		// 'cscopetagorder'
+EXTERN long	p_cspc;		// 'cscopepathcomp'
+EXTERN int	p_csverbose;	// 'cscopeverbose'
 #endif
-EXTERN char_u	*p_debug;	/* 'debug' */
+EXTERN char_u	*p_debug;	// 'debug'
 #ifdef FEAT_FIND_ID
-EXTERN char_u	*p_def;		/* 'define' */
+EXTERN char_u	*p_def;		// 'define'
 EXTERN char_u	*p_inc;
 #endif
 #ifdef FEAT_DIFF
-EXTERN char_u	*p_dip;		/* 'diffopt' */
+EXTERN char_u	*p_dip;		// 'diffopt'
 # ifdef FEAT_EVAL
-EXTERN char_u	*p_dex;		/* 'diffexpr' */
+EXTERN char_u	*p_dex;		// 'diffexpr'
 # endif
 #endif
 #ifdef FEAT_INS_EXPAND
-EXTERN char_u	*p_dict;	/* 'dictionary' */
+EXTERN char_u	*p_dict;	// 'dictionary'
 #endif
 #ifdef FEAT_DIGRAPHS
-EXTERN int	p_dg;		/* 'digraph' */
+EXTERN int	p_dg;		// 'digraph'
 #endif
-EXTERN char_u	*p_dir;		/* 'directory' */
-EXTERN char_u	*p_dy;		/* 'display' */
+EXTERN char_u	*p_dir;		// 'directory'
+EXTERN char_u	*p_dy;		// 'display'
 EXTERN unsigned	dy_flags;
 #ifdef IN_OPTION_C
 static char *(p_dy_values[]) = {"lastline", "truncate", "uhex", NULL};
@@ -455,27 +455,27 @@
 #define DY_LASTLINE		0x001
 #define DY_TRUNCATE		0x002
 #define DY_UHEX			0x004
-EXTERN int	p_ed;		/* 'edcompatible' */
-EXTERN char_u	*p_ead;		/* 'eadirection' */
-EXTERN int	p_ea;		/* 'equalalways' */
-EXTERN char_u	*p_ep;		/* 'equalprg' */
-EXTERN int	p_eb;		/* 'errorbells' */
+EXTERN int	p_ed;		// 'edcompatible'
+EXTERN char_u	*p_ead;		// 'eadirection'
+EXTERN int	p_ea;		// 'equalalways'
+EXTERN char_u	*p_ep;		// 'equalprg'
+EXTERN int	p_eb;		// 'errorbells'
 #ifdef FEAT_QUICKFIX
-EXTERN char_u	*p_ef;		/* 'errorfile' */
-EXTERN char_u	*p_efm;		/* 'errorformat' */
-EXTERN char_u	*p_gefm;	/* 'grepformat' */
-EXTERN char_u	*p_gp;		/* 'grepprg' */
+EXTERN char_u	*p_ef;		// 'errorfile'
+EXTERN char_u	*p_efm;		// 'errorformat'
+EXTERN char_u	*p_gefm;	// 'grepformat'
+EXTERN char_u	*p_gp;		// 'grepprg'
 #endif
-EXTERN char_u	*p_ei;		/* 'eventignore' */
-EXTERN int	p_ek;		/* 'esckeys' */
-EXTERN int	p_exrc;		/* 'exrc' */
-EXTERN char_u	*p_fencs;	/* 'fileencodings' */
-EXTERN char_u	*p_ffs;		/* 'fileformats' */
-EXTERN long	p_fic;		/* 'fileignorecase' */
+EXTERN char_u	*p_ei;		// 'eventignore'
+EXTERN int	p_ek;		// 'esckeys'
+EXTERN int	p_exrc;		// 'exrc'
+EXTERN char_u	*p_fencs;	// 'fileencodings'
+EXTERN char_u	*p_ffs;		// 'fileformats'
+EXTERN long	p_fic;		// 'fileignorecase'
 #ifdef FEAT_FOLDING
-EXTERN char_u	*p_fcl;		/* 'foldclose' */
-EXTERN long	p_fdls;		/* 'foldlevelstart' */
-EXTERN char_u	*p_fdo;		/* 'foldopen' */
+EXTERN char_u	*p_fcl;		// 'foldclose'
+EXTERN long	p_fdls;		// 'foldlevelstart'
+EXTERN char_u	*p_fdo;		// 'foldopen'
 EXTERN unsigned	fdo_flags;
 # ifdef IN_OPTION_C
 static char *(p_fdo_values[]) = {"all", "block", "hor", "mark", "percent",
@@ -494,238 +494,238 @@
 # define FDO_UNDO		0x200
 # define FDO_JUMP		0x400
 #endif
-EXTERN char_u	*p_fp;		/* 'formatprg' */
+EXTERN char_u	*p_fp;		// 'formatprg'
 #ifdef HAVE_FSYNC
-EXTERN int	p_fs;		/* 'fsync' */
+EXTERN int	p_fs;		// 'fsync'
 #endif
-EXTERN int	p_gd;		/* 'gdefault' */
+EXTERN int	p_gd;		// 'gdefault'
 #ifdef FEAT_TEXT_PROP
 EXTERN char_u	*p_pvp;		// 'previewpopup'
 #endif
 #ifdef FEAT_PRINTER
-EXTERN char_u	*p_pdev;	/* 'printdevice' */
+EXTERN char_u	*p_pdev;	// 'printdevice'
 # ifdef FEAT_POSTSCRIPT
-EXTERN char_u	*p_penc;	/* 'printencoding' */
-EXTERN char_u	*p_pexpr;	/* 'printexpr' */
-EXTERN char_u	*p_pmfn;	/* 'printmbfont' */
-EXTERN char_u	*p_pmcs;	/* 'printmbcharset' */
+EXTERN char_u	*p_penc;	// 'printencoding'
+EXTERN char_u	*p_pexpr;	// 'printexpr'
+EXTERN char_u	*p_pmfn;	// 'printmbfont'
+EXTERN char_u	*p_pmcs;	// 'printmbcharset'
 # endif
-EXTERN char_u	*p_pfn;		/* 'printfont' */
-EXTERN char_u	*p_popt;	/* 'printoptions' */
-EXTERN char_u	*p_header;	/* 'printheader' */
+EXTERN char_u	*p_pfn;		// 'printfont'
+EXTERN char_u	*p_popt;	// 'printoptions'
+EXTERN char_u	*p_header;	// 'printheader'
 #endif
-EXTERN int	p_prompt;	/* 'prompt' */
+EXTERN int	p_prompt;	// 'prompt'
 #ifdef FEAT_GUI
-EXTERN char_u	*p_guifont;	/* 'guifont' */
+EXTERN char_u	*p_guifont;	// 'guifont'
 # ifdef FEAT_XFONTSET
-EXTERN char_u	*p_guifontset;	/* 'guifontset' */
+EXTERN char_u	*p_guifontset;	// 'guifontset'
 # endif
-EXTERN char_u	*p_guifontwide;	/* 'guifontwide' */
-EXTERN int	p_guipty;	/* 'guipty' */
+EXTERN char_u	*p_guifontwide;	// 'guifontwide'
+EXTERN int	p_guipty;	// 'guipty'
 #endif
 #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
-EXTERN long	p_ghr;		/* 'guiheadroom' */
+EXTERN long	p_ghr;		// 'guiheadroom'
 #endif
 #ifdef CURSOR_SHAPE
-EXTERN char_u	*p_guicursor;	/* 'guicursor' */
+EXTERN char_u	*p_guicursor;	// 'guicursor'
 #endif
 #ifdef FEAT_MOUSESHAPE
-EXTERN char_u	*p_mouseshape;	/* 'mouseshape' */
+EXTERN char_u	*p_mouseshape;	// 'mouseshape'
 #endif
 #if defined(FEAT_GUI)
-EXTERN char_u	*p_go;		/* 'guioptions' */
+EXTERN char_u	*p_go;		// 'guioptions'
 #endif
 #if defined(FEAT_GUI_TABLINE)
-EXTERN char_u	*p_gtl;		/* 'guitablabel' */
-EXTERN char_u	*p_gtt;		/* 'guitabtooltip' */
+EXTERN char_u	*p_gtl;		// 'guitablabel'
+EXTERN char_u	*p_gtt;		// 'guitabtooltip'
 #endif
-EXTERN char_u	*p_hf;		/* 'helpfile' */
-EXTERN long	p_hh;		/* 'helpheight' */
+EXTERN char_u	*p_hf;		// 'helpfile'
+EXTERN long	p_hh;		// 'helpheight'
 #ifdef FEAT_MULTI_LANG
-EXTERN char_u	*p_hlg;		/* 'helplang' */
+EXTERN char_u	*p_hlg;		// 'helplang'
 #endif
-EXTERN int	p_hid;		/* 'hidden' */
-EXTERN char_u	*p_hl;		/* 'highlight' */
-EXTERN int	p_hls;		/* 'hlsearch' */
-EXTERN long	p_hi;		/* 'history' */
+EXTERN int	p_hid;		// 'hidden'
+EXTERN char_u	*p_hl;		// 'highlight'
+EXTERN int	p_hls;		// 'hlsearch'
+EXTERN long	p_hi;		// 'history'
 #ifdef FEAT_RIGHTLEFT
-EXTERN int	p_hkmap;	/* 'hkmap' */
-EXTERN int	p_hkmapp;	/* 'hkmapp' */
+EXTERN int	p_hkmap;	// 'hkmap'
+EXTERN int	p_hkmapp;	// 'hkmapp'
 # ifdef FEAT_ARABIC
-EXTERN int	p_arshape;	/* 'arabicshape' */
+EXTERN int	p_arshape;	// 'arabicshape'
 # endif
 #endif
 #ifdef FEAT_TITLE
-EXTERN int	p_icon;		/* 'icon' */
-EXTERN char_u	*p_iconstring;	/* 'iconstring' */
+EXTERN int	p_icon;		// 'icon'
+EXTERN char_u	*p_iconstring;	// 'iconstring'
 #endif
-EXTERN int	p_ic;		/* 'ignorecase' */
+EXTERN int	p_ic;		// 'ignorecase'
 #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
-EXTERN char_u	*p_imak;	/* 'imactivatekey' */
+EXTERN char_u	*p_imak;	// 'imactivatekey'
 #define IM_ON_THE_SPOT		0L
 #define IM_OVER_THE_SPOT	1L
-EXTERN long	p_imst;		/* 'imstyle' */
+EXTERN long	p_imst;		// 'imstyle'
 #endif
 #if defined(FEAT_EVAL)
-EXTERN char_u	*p_imaf;	/* 'imactivatefunc' */
-EXTERN char_u	*p_imsf;	/* 'imstatusfunc' */
+EXTERN char_u	*p_imaf;	// 'imactivatefunc'
+EXTERN char_u	*p_imsf;	// 'imstatusfunc'
 #endif
-EXTERN int	p_imcmdline;	/* 'imcmdline' */
-EXTERN int	p_imdisable;	/* 'imdisable' */
-EXTERN int	p_is;		/* 'incsearch' */
-EXTERN int	p_im;		/* 'insertmode' */
-EXTERN char_u	*p_isf;		/* 'isfname' */
-EXTERN char_u	*p_isi;		/* 'isident' */
-EXTERN char_u	*p_isp;		/* 'isprint' */
-EXTERN int	p_js;		/* 'joinspaces' */
-EXTERN char_u	*p_kp;		/* 'keywordprg' */
-EXTERN char_u	*p_km;		/* 'keymodel' */
+EXTERN int	p_imcmdline;	// 'imcmdline'
+EXTERN int	p_imdisable;	// 'imdisable'
+EXTERN int	p_is;		// 'incsearch'
+EXTERN int	p_im;		// 'insertmode'
+EXTERN char_u	*p_isf;		// 'isfname'
+EXTERN char_u	*p_isi;		// 'isident'
+EXTERN char_u	*p_isp;		// 'isprint'
+EXTERN int	p_js;		// 'joinspaces'
+EXTERN char_u	*p_kp;		// 'keywordprg'
+EXTERN char_u	*p_km;		// 'keymodel'
 #ifdef FEAT_LANGMAP
-EXTERN char_u	*p_langmap;	/* 'langmap'*/
-EXTERN int	p_lnr;		/* 'langnoremap' */
-EXTERN int	p_lrm;		/* 'langremap' */
+EXTERN char_u	*p_langmap;	// 'langmap'
+EXTERN int	p_lnr;		// 'langnoremap'
+EXTERN int	p_lrm;		// 'langremap'
 #endif
 #if defined(FEAT_MENU) && defined(FEAT_MULTI_LANG)
-EXTERN char_u	*p_lm;		/* 'langmenu' */
+EXTERN char_u	*p_lm;		// 'langmenu'
 #endif
 #ifdef FEAT_GUI
-EXTERN long	p_linespace;	/* 'linespace' */
+EXTERN long	p_linespace;	// 'linespace'
 #endif
 #ifdef FEAT_LISP
-EXTERN char_u	*p_lispwords;	/* 'lispwords' */
+EXTERN char_u	*p_lispwords;	// 'lispwords'
 #endif
-EXTERN long	p_ls;		/* 'laststatus' */
-EXTERN long	p_stal;		/* 'showtabline' */
-EXTERN char_u	*p_lcs;		/* 'listchars' */
+EXTERN long	p_ls;		// 'laststatus'
+EXTERN long	p_stal;		// 'showtabline'
+EXTERN char_u	*p_lcs;		// 'listchars'
 
-EXTERN int	p_lz;		/* 'lazyredraw' */
-EXTERN int	p_lpl;		/* 'loadplugins' */
+EXTERN int	p_lz;		// 'lazyredraw'
+EXTERN int	p_lpl;		// 'loadplugins'
 #if defined(DYNAMIC_LUA)
-EXTERN char_u	*p_luadll;	/* 'luadll' */
+EXTERN char_u	*p_luadll;	// 'luadll'
 #endif
 #ifdef FEAT_GUI_MAC
-EXTERN int	p_macatsui;	/* 'macatsui' */
+EXTERN int	p_macatsui;	// 'macatsui'
 #endif
-EXTERN int	p_magic;	/* 'magic' */
-EXTERN char_u	*p_menc;	/* 'makeencoding' */
+EXTERN int	p_magic;	// 'magic'
+EXTERN char_u	*p_menc;	// 'makeencoding'
 #ifdef FEAT_QUICKFIX
-EXTERN char_u	*p_mef;		/* 'makeef' */
-EXTERN char_u	*p_mp;		/* 'makeprg' */
+EXTERN char_u	*p_mef;		// 'makeef'
+EXTERN char_u	*p_mp;		// 'makeprg'
 #endif
 #ifdef FEAT_SIGNS
-EXTERN char_u  *p_scl;		/* signcolumn */
+EXTERN char_u  *p_scl;		// signcolumn
 #endif
 #ifdef FEAT_SYN_HL
-EXTERN char_u   *p_cc;		/* 'colorcolumn' */
-EXTERN int      p_cc_cols[256]; /* array for 'colorcolumn' columns */
+EXTERN char_u   *p_cc;		// 'colorcolumn'
+EXTERN int      p_cc_cols[256]; // array for 'colorcolumn' columns
 #endif
-EXTERN long	p_mat;		/* 'matchtime' */
-EXTERN long	p_mco;		/* 'maxcombine' */
+EXTERN long	p_mat;		// 'matchtime'
+EXTERN long	p_mco;		// 'maxcombine'
 #ifdef FEAT_EVAL
-EXTERN long	p_mfd;		/* 'maxfuncdepth' */
+EXTERN long	p_mfd;		// 'maxfuncdepth'
 #endif
-EXTERN long	p_mmd;		/* 'maxmapdepth' */
-EXTERN long	p_mm;		/* 'maxmem' */
-EXTERN long	p_mmp;		/* 'maxmempattern' */
-EXTERN long	p_mmt;		/* 'maxmemtot' */
+EXTERN long	p_mmd;		// 'maxmapdepth'
+EXTERN long	p_mm;		// 'maxmem'
+EXTERN long	p_mmp;		// 'maxmempattern'
+EXTERN long	p_mmt;		// 'maxmemtot'
 #ifdef FEAT_MENU
-EXTERN long	p_mis;		/* 'menuitems' */
+EXTERN long	p_mis;		// 'menuitems'
 #endif
 #ifdef FEAT_SPELL
-EXTERN char_u	*p_msm;		/* 'mkspellmem' */
+EXTERN char_u	*p_msm;		// 'mkspellmem'
 #endif
-EXTERN long	p_mle;		/* 'modelineexpr' */
-EXTERN long	p_mls;		/* 'modelines' */
-EXTERN char_u	*p_mouse;	/* 'mouse' */
+EXTERN long	p_mle;		// 'modelineexpr'
+EXTERN long	p_mls;		// 'modelines'
+EXTERN char_u	*p_mouse;	// 'mouse'
 #ifdef FEAT_GUI
-EXTERN int	p_mousef;	/* 'mousefocus' */
-EXTERN int	p_mh;		/* 'mousehide' */
+EXTERN int	p_mousef;	// 'mousefocus'
+EXTERN int	p_mh;		// 'mousehide'
 #endif
-EXTERN char_u	*p_mousem;	/* 'mousemodel' */
-EXTERN long	p_mouset;	/* 'mousetime' */
-EXTERN int	p_more;		/* 'more' */
+EXTERN char_u	*p_mousem;	// 'mousemodel'
+EXTERN long	p_mouset;	// 'mousetime'
+EXTERN int	p_more;		// 'more'
 #ifdef FEAT_MZSCHEME
-EXTERN long	p_mzq;		/* 'mzquantum */
+EXTERN long	p_mzq;		// 'mzquantum
 # if defined(DYNAMIC_MZSCHEME)
-EXTERN char_u	*p_mzschemedll;	/* 'mzschemedll' */
-EXTERN char_u	*p_mzschemegcdll; /* 'mzschemegcdll' */
+EXTERN char_u	*p_mzschemedll;	// 'mzschemedll'
+EXTERN char_u	*p_mzschemegcdll; // 'mzschemegcdll'
 # endif
 #endif
 #if defined(MSWIN)
-EXTERN int	p_odev;		/* 'opendevice' */
+EXTERN int	p_odev;		// 'opendevice'
 #endif
-EXTERN char_u	*p_opfunc;	/* 'operatorfunc' */
-EXTERN char_u	*p_para;	/* 'paragraphs' */
-EXTERN int	p_paste;	/* 'paste' */
-EXTERN char_u	*p_pt;		/* 'pastetoggle' */
+EXTERN char_u	*p_opfunc;	// 'operatorfunc'
+EXTERN char_u	*p_para;	// 'paragraphs'
+EXTERN int	p_paste;	// 'paste'
+EXTERN char_u	*p_pt;		// 'pastetoggle'
 #if defined(FEAT_EVAL) && defined(FEAT_DIFF)
-EXTERN char_u	*p_pex;		/* 'patchexpr' */
+EXTERN char_u	*p_pex;		// 'patchexpr'
 #endif
-EXTERN char_u	*p_pm;		/* 'patchmode' */
-EXTERN char_u	*p_path;	/* 'path' */
+EXTERN char_u	*p_pm;		// 'patchmode'
+EXTERN char_u	*p_path;	// 'path'
 #ifdef FEAT_SEARCHPATH
-EXTERN char_u	*p_cdpath;	/* 'cdpath' */
+EXTERN char_u	*p_cdpath;	// 'cdpath'
 #endif
 #if defined(DYNAMIC_PERL)
-EXTERN char_u	*p_perldll;	/* 'perldll' */
+EXTERN char_u	*p_perldll;	// 'perldll'
 #endif
 #if defined(DYNAMIC_PYTHON3)
-EXTERN char_u	*p_py3dll;	/* 'pythonthreedll' */
+EXTERN char_u	*p_py3dll;	// 'pythonthreedll'
 #endif
 #ifdef FEAT_PYTHON3
-EXTERN char_u	*p_py3home;	/* 'pythonthreehome' */
+EXTERN char_u	*p_py3home;	// 'pythonthreehome'
 #endif
 #if defined(DYNAMIC_PYTHON)
-EXTERN char_u	*p_pydll;	/* 'pythondll' */
+EXTERN char_u	*p_pydll;	// 'pythondll'
 #endif
 #ifdef FEAT_PYTHON
-EXTERN char_u	*p_pyhome;	/* 'pythonhome' */
+EXTERN char_u	*p_pyhome;	// 'pythonhome'
 #endif
 #if defined(FEAT_PYTHON) || defined(FEAT_PYTHON3)
-EXTERN long	p_pyx;		/* 'pyxversion' */
+EXTERN long	p_pyx;		// 'pyxversion'
 #endif
 #ifdef FEAT_RELTIME
-EXTERN long	p_rdt;		/* 'redrawtime' */
+EXTERN long	p_rdt;		// 'redrawtime'
 #endif
-EXTERN int	p_remap;	/* 'remap' */
-EXTERN long	p_re;		/* 'regexpengine' */
+EXTERN int	p_remap;	// 'remap'
+EXTERN long	p_re;		// 'regexpengine'
 #ifdef FEAT_RENDER_OPTIONS
-EXTERN char_u	*p_rop;		/* 'renderoptions' */
+EXTERN char_u	*p_rop;		// 'renderoptions'
 #endif
-EXTERN long	p_report;	/* 'report' */
+EXTERN long	p_report;	// 'report'
 #if defined(FEAT_QUICKFIX)
-EXTERN long	p_pvh;		/* 'previewheight' */
+EXTERN long	p_pvh;		// 'previewheight'
 #endif
 #ifdef MSWIN
-EXTERN int	p_rs;		/* 'restorescreen' */
+EXTERN int	p_rs;		// 'restorescreen'
 #endif
 #ifdef FEAT_RIGHTLEFT
-EXTERN int	p_ari;		/* 'allowrevins' */
-EXTERN int	p_ri;		/* 'revins' */
+EXTERN int	p_ari;		// 'allowrevins'
+EXTERN int	p_ri;		// 'revins'
 #endif
 #if defined(DYNAMIC_RUBY)
-EXTERN char_u	*p_rubydll;	/* 'rubydll' */
+EXTERN char_u	*p_rubydll;	// 'rubydll'
 #endif
 #ifdef FEAT_CMDL_INFO
-EXTERN int	p_ru;		/* 'ruler' */
+EXTERN int	p_ru;		// 'ruler'
 #endif
 #ifdef FEAT_STL_OPT
-EXTERN char_u	*p_ruf;		/* 'rulerformat' */
+EXTERN char_u	*p_ruf;		// 'rulerformat'
 #endif
-EXTERN char_u	*p_pp;		/* 'packpath' */
-EXTERN char_u	*p_rtp;		/* 'runtimepath' */
-EXTERN long	p_sj;		/* 'scrolljump' */
-EXTERN long	p_so;		/* 'scrolloff' */
-EXTERN char_u	*p_sbo;		/* 'scrollopt' */
-EXTERN char_u	*p_sections;	/* 'sections' */
-EXTERN int	p_secure;	/* 'secure' */
-EXTERN char_u	*p_sel;		/* 'selection' */
-EXTERN char_u	*p_slm;		/* 'selectmode' */
+EXTERN char_u	*p_pp;		// 'packpath'
+EXTERN char_u	*p_rtp;		// 'runtimepath'
+EXTERN long	p_sj;		// 'scrolljump'
+EXTERN long	p_so;		// 'scrolloff'
+EXTERN char_u	*p_sbo;		// 'scrollopt'
+EXTERN char_u	*p_sections;	// 'sections'
+EXTERN int	p_secure;	// 'secure'
+EXTERN char_u	*p_sel;		// 'selection'
+EXTERN char_u	*p_slm;		// 'selectmode'
 #ifdef FEAT_SESSION
-EXTERN char_u	*p_ssop;	/* 'sessionoptions' */
+EXTERN char_u	*p_ssop;	// 'sessionoptions'
 EXTERN unsigned	ssop_flags;
 # ifdef IN_OPTION_C
-/* Also used for 'viewoptions'! */
+// Also used for 'viewoptions'!
 static char *(p_ssop_values[]) = {"buffers", "winpos", "resize", "winsize",
     "localoptions", "options", "help", "blank", "globals", "slash", "unix",
     "sesdir", "curdir", "folds", "cursor", "tabpages", "terminal", NULL};
@@ -748,53 +748,53 @@
 # define SSOP_TABPAGES		0x8000
 # define SSOP_TERMINAL		0x10000
 #endif
-EXTERN char_u	*p_sh;		/* 'shell' */
-EXTERN char_u	*p_shcf;	/* 'shellcmdflag' */
+EXTERN char_u	*p_sh;		// 'shell'
+EXTERN char_u	*p_shcf;	// 'shellcmdflag'
 #ifdef FEAT_QUICKFIX
-EXTERN char_u	*p_sp;		/* 'shellpipe' */
+EXTERN char_u	*p_sp;		// 'shellpipe'
 #endif
-EXTERN char_u	*p_shq;		/* 'shellquote' */
-EXTERN char_u	*p_sxq;		/* 'shellxquote' */
-EXTERN char_u	*p_sxe;		/* 'shellxescape' */
-EXTERN char_u	*p_srr;		/* 'shellredir' */
+EXTERN char_u	*p_shq;		// 'shellquote'
+EXTERN char_u	*p_sxq;		// 'shellxquote'
+EXTERN char_u	*p_sxe;		// 'shellxescape'
+EXTERN char_u	*p_srr;		// 'shellredir'
 #ifdef AMIGA
-EXTERN long	p_st;		/* 'shelltype' */
+EXTERN long	p_st;		// 'shelltype'
 #endif
-EXTERN int	p_stmp;		/* 'shelltemp' */
+EXTERN int	p_stmp;		// 'shelltemp'
 #ifdef BACKSLASH_IN_FILENAME
-EXTERN int	p_ssl;		/* 'shellslash' */
+EXTERN int	p_ssl;		// 'shellslash'
 #endif
 #ifdef FEAT_STL_OPT
-EXTERN char_u	*p_stl;		/* 'statusline' */
+EXTERN char_u	*p_stl;		// 'statusline'
 #endif
-EXTERN int	p_sr;		/* 'shiftround' */
-EXTERN char_u	*p_shm;		/* 'shortmess' */
+EXTERN int	p_sr;		// 'shiftround'
+EXTERN char_u	*p_shm;		// 'shortmess'
 #ifdef FEAT_LINEBREAK
-EXTERN char_u	*p_sbr;		/* 'showbreak' */
+EXTERN char_u	*p_sbr;		// 'showbreak'
 #endif
 #ifdef FEAT_CMDL_INFO
-EXTERN int	p_sc;		/* 'showcmd' */
+EXTERN int	p_sc;		// 'showcmd'
 #endif
-EXTERN int	p_sft;		/* 'showfulltag' */
-EXTERN int	p_sm;		/* 'showmatch' */
-EXTERN int	p_smd;		/* 'showmode' */
-EXTERN long	p_ss;		/* 'sidescroll' */
-EXTERN long	p_siso;		/* 'sidescrolloff' */
-EXTERN int	p_scs;		/* 'smartcase' */
-EXTERN int	p_sta;		/* 'smarttab' */
-EXTERN int	p_sb;		/* 'splitbelow' */
-EXTERN long	p_tpm;		/* 'tabpagemax' */
+EXTERN int	p_sft;		// 'showfulltag'
+EXTERN int	p_sm;		// 'showmatch'
+EXTERN int	p_smd;		// 'showmode'
+EXTERN long	p_ss;		// 'sidescroll'
+EXTERN long	p_siso;		// 'sidescrolloff'
+EXTERN int	p_scs;		// 'smartcase'
+EXTERN int	p_sta;		// 'smarttab'
+EXTERN int	p_sb;		// 'splitbelow'
+EXTERN long	p_tpm;		// 'tabpagemax'
 # if defined(FEAT_STL_OPT)
-EXTERN char_u	*p_tal;		/* 'tabline' */
+EXTERN char_u	*p_tal;		// 'tabline'
 # endif
 #ifdef FEAT_SPELL
-EXTERN char_u	*p_sps;		/* 'spellsuggest' */
+EXTERN char_u	*p_sps;		// 'spellsuggest'
 #endif
-EXTERN int	p_spr;		/* 'splitright' */
-EXTERN int	p_sol;		/* 'startofline' */
-EXTERN char_u	*p_su;		/* 'suffixes' */
-EXTERN char_u	*p_sws;		/* 'swapsync' */
-EXTERN char_u	*p_swb;		/* 'switchbuf' */
+EXTERN int	p_spr;		// 'splitright'
+EXTERN int	p_sol;		// 'startofline'
+EXTERN char_u	*p_su;		// 'suffixes'
+EXTERN char_u	*p_sws;		// 'swapsync'
+EXTERN char_u	*p_swb;		// 'switchbuf'
 EXTERN unsigned	swb_flags;
 #ifdef IN_OPTION_C
 static char *(p_swb_values[]) = {"useopen", "usetab", "split", "newtab", "vsplit", NULL};
@@ -804,9 +804,9 @@
 #define SWB_SPLIT		0x004
 #define SWB_NEWTAB		0x008
 #define SWB_VSPLIT		0x010
-EXTERN int	p_tbs;		/* 'tagbsearch' */
-EXTERN char_u	*p_tc;		/* 'tagcase' */
-EXTERN unsigned tc_flags;       /* flags from 'tagcase' */
+EXTERN int	p_tbs;		// 'tagbsearch'
+EXTERN char_u	*p_tc;		// 'tagcase'
+EXTERN unsigned tc_flags;       // flags from 'tagcase'
 #ifdef IN_OPTION_C
 static char *(p_tc_values[]) = {"followic", "ignore", "match", "followscs", "smart", NULL};
 #endif
@@ -815,43 +815,43 @@
 #define TC_MATCH		0x04
 #define TC_FOLLOWSCS		0x08
 #define TC_SMART		0x10
-EXTERN long	p_tl;		/* 'taglength' */
-EXTERN int	p_tr;		/* 'tagrelative' */
-EXTERN char_u	*p_tags;	/* 'tags' */
-EXTERN int	p_tgst;		/* 'tagstack' */
+EXTERN long	p_tl;		// 'taglength'
+EXTERN int	p_tr;		// 'tagrelative'
+EXTERN char_u	*p_tags;	// 'tags'
+EXTERN int	p_tgst;		// 'tagstack'
 #if defined(DYNAMIC_TCL)
-EXTERN char_u	*p_tcldll;	/* 'tcldll' */
+EXTERN char_u	*p_tcldll;	// 'tcldll'
 #endif
 #ifdef FEAT_ARABIC
-EXTERN int	p_tbidi;	/* 'termbidi' */
+EXTERN int	p_tbidi;	// 'termbidi'
 #endif
-EXTERN char_u	*p_tenc;	/* 'termencoding' */
+EXTERN char_u	*p_tenc;	// 'termencoding'
 #ifdef FEAT_TERMGUICOLORS
-EXTERN int	p_tgc;		/* 'termguicolors' */
+EXTERN int	p_tgc;		// 'termguicolors'
 #endif
 #if defined(MSWIN) && defined(FEAT_TERMINAL)
 EXTERN char_u	*p_twt;		// 'termwintype'
 #endif
-EXTERN int	p_terse;	/* 'terse' */
-EXTERN int	p_ta;		/* 'textauto' */
-EXTERN int	p_to;		/* 'tildeop' */
-EXTERN int	p_timeout;	/* 'timeout' */
-EXTERN long	p_tm;		/* 'timeoutlen' */
+EXTERN int	p_terse;	// 'terse'
+EXTERN int	p_ta;		// 'textauto'
+EXTERN int	p_to;		// 'tildeop'
+EXTERN int	p_timeout;	// 'timeout'
+EXTERN long	p_tm;		// 'timeoutlen'
 #ifdef FEAT_TITLE
-EXTERN int	p_title;	/* 'title' */
-EXTERN long	p_titlelen;	/* 'titlelen' */
-EXTERN char_u	*p_titleold;	/* 'titleold' */
-EXTERN char_u	*p_titlestring;	/* 'titlestring' */
+EXTERN int	p_title;	// 'title'
+EXTERN long	p_titlelen;	// 'titlelen'
+EXTERN char_u	*p_titleold;	// 'titleold'
+EXTERN char_u	*p_titlestring;	// 'titlestring'
 #endif
 #ifdef FEAT_INS_EXPAND
-EXTERN char_u	*p_tsr;		/* 'thesaurus' */
+EXTERN char_u	*p_tsr;		// 'thesaurus'
 #endif
-EXTERN int	p_ttimeout;	/* 'ttimeout' */
-EXTERN long	p_ttm;		/* 'ttimeoutlen' */
-EXTERN int	p_tbi;		/* 'ttybuiltin' */
-EXTERN int	p_tf;		/* 'ttyfast' */
+EXTERN int	p_ttimeout;	// 'ttimeout'
+EXTERN long	p_ttm;		// 'ttimeoutlen'
+EXTERN int	p_tbi;		// 'ttybuiltin'
+EXTERN int	p_tf;		// 'ttyfast'
 #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_MSWIN)
-EXTERN char_u	*p_toolbar;	/* 'toolbar' */
+EXTERN char_u	*p_toolbar;	// 'toolbar'
 EXTERN unsigned toolbar_flags;
 # ifdef IN_OPTION_C
 static char *(p_toolbar_values[]) = {"text", "icons", "tooltips", "horiz", NULL};
@@ -862,7 +862,7 @@
 # define TOOLBAR_HORIZ		0x08
 #endif
 #if defined(FEAT_TOOLBAR) && defined(FEAT_GUI_GTK)
-EXTERN char_u	*p_tbis;	/* 'toolbariconsize' */
+EXTERN char_u	*p_tbis;	// 'toolbariconsize'
 EXTERN unsigned tbis_flags;
 # ifdef IN_OPTION_C
 static char *(p_tbis_values[]) = {"tiny", "small", "medium", "large", "huge", "giant", NULL};
@@ -874,9 +874,9 @@
 # define TBIS_HUGE		0x10
 # define TBIS_GIANT		0x20
 #endif
-EXTERN long	p_ttyscroll;	/* 'ttyscroll' */
+EXTERN long	p_ttyscroll;	// 'ttyscroll'
 #if defined(FEAT_MOUSE) && (defined(UNIX) || defined(VMS))
-EXTERN char_u	*p_ttym;	/* 'ttymouse' */
+EXTERN char_u	*p_ttym;	// 'ttymouse'
 EXTERN unsigned ttym_flags;
 # ifdef IN_OPTION_C
 static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", "sgr", NULL};
@@ -890,71 +890,71 @@
 # define TTYM_URXVT		0x40
 # define TTYM_SGR		0x80
 #endif
-EXTERN char_u	*p_udir;	/* 'undodir' */
-EXTERN long	p_ul;		/* 'undolevels' */
-EXTERN long	p_ur;		/* 'undoreload' */
-EXTERN long	p_uc;		/* 'updatecount' */
-EXTERN long	p_ut;		/* 'updatetime' */
-EXTERN char_u	*p_fcs;		/* 'fillchar' */
+EXTERN char_u	*p_udir;	// 'undodir'
+EXTERN long	p_ul;		// 'undolevels'
+EXTERN long	p_ur;		// 'undoreload'
+EXTERN long	p_uc;		// 'updatecount'
+EXTERN long	p_ut;		// 'updatetime'
+EXTERN char_u	*p_fcs;		// 'fillchar'
 #ifdef FEAT_VIMINFO
-EXTERN char_u	*p_viminfo;	/* 'viminfo' */
-EXTERN char_u	*p_viminfofile;	/* 'viminfofile' */
+EXTERN char_u	*p_viminfo;	// 'viminfo'
+EXTERN char_u	*p_viminfofile;	// 'viminfofile'
 #endif
 #ifdef FEAT_SESSION
-EXTERN char_u	*p_vdir;	/* 'viewdir' */
-EXTERN char_u	*p_vop;		/* 'viewoptions' */
-EXTERN unsigned	vop_flags;	/* uses SSOP_ flags */
+EXTERN char_u	*p_vdir;	// 'viewdir'
+EXTERN char_u	*p_vop;		// 'viewoptions'
+EXTERN unsigned	vop_flags;	// uses SSOP_ flags
 #endif
-EXTERN int	p_vb;		/* 'visualbell' */
-EXTERN char_u	*p_ve;		/* 'virtualedit' */
+EXTERN int	p_vb;		// 'visualbell'
+EXTERN char_u	*p_ve;		// 'virtualedit'
 EXTERN unsigned ve_flags;
 #ifdef IN_OPTION_C
 static char *(p_ve_values[]) = {"block", "insert", "all", "onemore", NULL};
 #endif
-#define VE_BLOCK	5	/* includes "all" */
-#define VE_INSERT	6	/* includes "all" */
+#define VE_BLOCK	5	// includes "all"
+#define VE_INSERT	6	// includes "all"
 #define VE_ALL		4
 #define VE_ONEMORE	8
-EXTERN long	p_verbose;	/* 'verbose' */
+EXTERN long	p_verbose;	// 'verbose'
 #ifdef IN_OPTION_C
-char_u	*p_vfile = (char_u *)""; /* used before options are initialized */
+char_u	*p_vfile = (char_u *)""; // used before options are initialized
 #else
-extern char_u	*p_vfile;	/* 'verbosefile' */
+extern char_u	*p_vfile;	// 'verbosefile'
 #endif
-EXTERN int	p_warn;		/* 'warn' */
+EXTERN int	p_warn;		// 'warn'
 #ifdef FEAT_CMDL_COMPL
-EXTERN char_u	*p_wop;		/* 'wildoptions' */
+EXTERN char_u	*p_wop;		// 'wildoptions'
 #endif
-EXTERN long	p_window;	/* 'window' */
+EXTERN long	p_window;	// 'window'
 #if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(LINT) \
 	|| defined (FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON)
 #define FEAT_WAK
-EXTERN char_u	*p_wak;		/* 'winaltkeys' */
+EXTERN char_u	*p_wak;		// 'winaltkeys'
 #endif
 #ifdef FEAT_WILDIGN
-EXTERN char_u	*p_wig;		/* 'wildignore' */
+EXTERN char_u	*p_wig;		// 'wildignore'
 #endif
-EXTERN int	p_wiv;		/* 'weirdinvert' */
-EXTERN char_u	*p_ww;		/* 'whichwrap' */
-EXTERN long	p_wc;		/* 'wildchar' */
-EXTERN long	p_wcm;		/* 'wildcharm' */
-EXTERN long	p_wic;		/* 'wildignorecase' */
-EXTERN char_u	*p_wim;		/* 'wildmode' */
+EXTERN int	p_wiv;		// 'weirdinvert'
+EXTERN char_u	*p_ww;		// 'whichwrap'
+EXTERN long	p_wc;		// 'wildchar'
+EXTERN long	p_wcm;		// 'wildcharm'
+EXTERN long	p_wic;		// 'wildignorecase'
+EXTERN char_u	*p_wim;		// 'wildmode'
 #ifdef FEAT_WILDMENU
-EXTERN int	p_wmnu;		/* 'wildmenu' */
+EXTERN int	p_wmnu;		// 'wildmenu'
 #endif
-EXTERN long	p_wh;		/* 'winheight' */
-EXTERN long	p_wmh;		/* 'winminheight' */
-EXTERN long	p_wmw;		/* 'winminwidth' */
-EXTERN long	p_wiw;		/* 'winwidth' */
+EXTERN long	p_wh;		// 'winheight'
+EXTERN long	p_wmh;		// 'winminheight'
+EXTERN long	p_wmw;		// 'winminwidth'
+EXTERN long	p_wiw;		// 'winwidth'
 #if defined(MSWIN) && defined(FEAT_TERMINAL)
-EXTERN char_u	*p_winptydll;	/* 'winptydll' */
+EXTERN char_u	*p_winptydll;	// 'winptydll'
 #endif
-EXTERN int	p_ws;		/* 'wrapscan' */
-EXTERN int	p_write;	/* 'write' */
-EXTERN int	p_wa;		/* 'writeany' */
-EXTERN int	p_wb;		/* 'writebackup' */
-EXTERN long	p_wd;		/* 'writedelay' */
+EXTERN int	p_ws;		// 'wrapscan'
+EXTERN int	p_write;	// 'write'
+EXTERN int	p_wa;		// 'writeany'
+EXTERN int	p_wb;		// 'writebackup'
+EXTERN long	p_wd;		// 'writedelay'
 
 /*
  * "indir" values for buffer-local opions.
@@ -1092,7 +1092,7 @@
     , BV_VSTS
     , BV_VTS
 #endif
-    , BV_COUNT	    /* must be the last one */
+    , BV_COUNT	    // must be the last one
 };
 
 /*
@@ -1173,8 +1173,8 @@
 #ifdef FEAT_SIGNS
     , WV_SCL
 #endif
-    , WV_COUNT	    /* must be the last one */
+    , WV_COUNT	    // must be the last one
 };
 
-/* Value for b_p_ul indicating the global value must be used. */
+// Value for b_p_ul indicating the global value must be used.
 #define NO_LOCAL_UNDOLEVEL -123456
diff --git a/src/version.c b/src/version.c
index af9caa4..20fdb1e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1716,
+/**/
     1715,
 /**/
     1714,
