patch 8.2.2160: various typos

Problem:    Various typos.
Solution:   Fix spelling mistakes. (closes #7494)
diff --git a/src/bufwrite.c b/src/bufwrite.c
index d9f85a3..c6d882c 100644
--- a/src/bufwrite.c
+++ b/src/bufwrite.c
@@ -2138,7 +2138,7 @@
     if (!checking_conversion)
     {
 #if defined(UNIX) && defined(HAVE_FSYNC)
-	// On many journalling file systems there is a bug that causes both the
+	// On many journaling file systems there is a bug that causes both the
 	// original and the backup file to be lost when halting the system
 	// right after writing the file.  That's because only the meta-data is
 	// journalled.  Syncing the file slows down the system, but assures it
diff --git a/src/cindent.c b/src/cindent.c
index aeecc4b..b2fac1a 100644
--- a/src/cindent.c
+++ b/src/cindent.c
@@ -2121,7 +2121,7 @@
     }
 
     // #defines and so on go at the left when included in 'cinkeys',
-    // exluding pragmas when customized in 'cinoptions'
+    // excluding pragmas when customized in 'cinoptions'
     if (*theline == '#' && (*linecopy == '#' || in_cinkeys('#', ' ', TRUE)))
     {
 	char_u *directive = skipwhite(theline + 1);
diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index f3e19bc..11cb0e3 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -1049,7 +1049,7 @@
 		++p;
     }
 
-    // If the cursor is touching the command, and it ends in an alpha-numeric
+    // If the cursor is touching the command, and it ends in an alphanumeric
     // character, complete the command name.
     if (*p == NUL && ASCII_ISALNUM(p[-1]))
 	return NULL;
diff --git a/src/eval.c b/src/eval.c
index 6ce2ebf..06c6ada 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -4631,7 +4631,7 @@
  * "numbuf" is used for a number.
  * When "copyID" is not NULL replace recursive lists and dicts with "...".
  * When both "echo_style" and "composite_val" are FALSE, put quotes around
- * stings as "string()", otherwise does not put quotes around strings, as
+ * strings as "string()", otherwise does not put quotes around strings, as
  * ":echo" displays values.
  * When "restore_copyID" is FALSE, repeated items in dictionaries and lists
  * are replaced with "...".
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 44d8cd8..e7575f9 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2660,7 +2660,7 @@
 		    if (tlnum <= 0)
 			tlnum = 1L;
 		}
-		// Add BLN_NOCURWIN to avoid a new wininfo items are assocated
+		// Add BLN_NOCURWIN to avoid a new wininfo items are associated
 		// with the current window.
 		newbuf = buflist_new(ffname, sfname, tlnum,
 						    BLN_LISTED | BLN_NOCURWIN);
diff --git a/src/feature.h b/src/feature.h
index 8f7322b..5f6f800 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -937,7 +937,7 @@
  * +mouse_sgr		Unix only: Include code for for SGR-styled mouse.
  * +mouse_sysmouse	Unix only: Include code for FreeBSD and DragonFly
  *			console mouse handling.
- * +mouse_urxvt		Unix only: Include code for for urxvt mosue handling.
+ * +mouse_urxvt		Unix only: Include code for for urxvt mouse handling.
  * +mouse		Any mouse support (any of the above enabled).
  *			Always included, since either FEAT_MOUSE_XTERM or
  *			DOS_MOUSE is defined.
diff --git a/src/getchar.c b/src/getchar.c
index 3f2ad3c..cf2711b 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2264,7 +2264,7 @@
 }
 
 /*
- * Check if typebuf.tb_buf[] contains a modifer plus key that can be changed
+ * Check if typebuf.tb_buf[] contains a modifier plus key that can be changed
  * into just a key, apply that.
  * Check from typebuf.tb_buf[typebuf.tb_off] to typebuf.tb_buf[typebuf.tb_off
  * + "max_offset"].
diff --git a/src/gui_haiku.cc b/src/gui_haiku.cc
index c929409..a1c7e3e 100644
--- a/src/gui_haiku.cc
+++ b/src/gui_haiku.cc
@@ -3411,7 +3411,7 @@
 	thread_id tid = gui.vimWindow->Thread();
 	gui.vimWindow->Lock();
 	gui.vimWindow->Quit();
-	// Wait until it is truely gone
+	// Wait until it is truly gone
 	int32 exitcode;
 	wait_for_thread(tid, &exitcode);
     }
diff --git a/src/gui_xmdlg.c b/src/gui_xmdlg.c
index 04996ef..ad3146a 100644
--- a/src/gui_xmdlg.c
+++ b/src/gui_xmdlg.c
@@ -497,7 +497,7 @@
     }
 
     /*
-     * Now loop trough the remaining lists and set them up.
+     * Now loop through the remaining lists and set them up.
      */
     for (idx = (int)NAME; idx < (int)NONE; ++idx)
     {
diff --git a/src/help.c b/src/help.c
index d6bdcbb..ee6ff18 100644
--- a/src/help.c
+++ b/src/help.c
@@ -325,7 +325,7 @@
     char_u	*s, *d;
     int		i;
     // Specific tags that either have a specific replacement or won't go
-    // throught the generic rules.
+    // through the generic rules.
     static char *(except_tbl[][2]) = {
 	{"*",		"star"},
 	{"g*",		"gstar"},
@@ -647,6 +647,8 @@
 
     // Always set these options after jumping to a help tag, because the
     // user may have an autocommand that gets in the way.
+    // When adding an option here, also update the help file helphelp.txt.
+
     // Accept all ASCII chars for keywords, except ' ', '*', '"', '|', and
     // latin1 word characters (for translated help files).
     // Only set it when needed, buf_init_chartab() is some work.
diff --git a/src/if_ole.cpp b/src/if_ole.cpp
index e415a19..f7108e4 100644
--- a/src/if_ole.cpp
+++ b/src/if_ole.cpp
@@ -635,7 +635,7 @@
     LPOLESTR wGUID = NULL;
     StringFromCLSID(guid, &wGUID);
 
-    // Covert from wide characters to non-wide
+    // Convert from wide characters to non-wide
     wcstombs(GUID, wGUID, length);
 
     // Free memory
diff --git a/src/insexpand.c b/src/insexpand.c
index 28017d4..8f4f976 100644
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -3628,7 +3628,7 @@
 		    // line (probably) wrapped, set compl_startpos to the
 		    // first non_blank in the line, if it is not a wordchar
 		    // include it to get a better pattern, but then we don't
-		    // want the "\\<" prefix, check it bellow
+		    // want the "\\<" prefix, check it below
 		    compl_col = (colnr_T)getwhitecols(line);
 		    compl_startpos.col = compl_col;
 		    compl_startpos.lnum = curwin->w_cursor.lnum;
diff --git a/src/list.c b/src/list.c
index 6285e01..1c41f07 100644
--- a/src/list.c
+++ b/src/list.c
@@ -2693,7 +2693,7 @@
 }
 
 /*
- * "reduce(list, { accumlator, element -> value } [, initial])" function
+ * "reduce(list, { accumulator, element -> value } [, initial])" function
  */
     void
 f_reduce(typval_T *argvars, typval_T *rettv)
diff --git a/src/map.c b/src/map.c
index 229095b..f3dd569 100644
--- a/src/map.c
+++ b/src/map.c
@@ -2221,7 +2221,7 @@
     if (did_simplify)
     {
 	// When the lhs is being simplified the not-simplified keys are
-	// preferred for priting, like in do_map().
+	// preferred for printing, like in do_map().
 	// The "rhs" and "buffer_local" values are not expected to change.
 	mp_simplified = mp;
 	(void)replace_termcodes(keys, &alt_keys_buf,
diff --git a/src/memline.c b/src/memline.c
index 19b87d7..4137a66 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -5562,7 +5562,7 @@
 		     && buf->b_ml.ml_line_count - line <= 1)
 	{
 	    /*
-	     * We are in the last chunk and it is cheap to crate a new one
+	     * We are in the last chunk and it is cheap to create a new one
 	     * after this. Do it now to avoid the loop above later on
 	     */
 	    curchnk = buf->b_ml.ml_chunksize + curix + 1;
diff --git a/src/normal.c b/src/normal.c
index 8dca538..1c66412 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5372,7 +5372,7 @@
 nv_subst(cmdarg_T *cap)
 {
 #ifdef FEAT_TERMINAL
-    // When showing output of term_dumpdiff() swap the top and botom.
+    // When showing output of term_dumpdiff() swap the top and bottom.
     if (term_swap_diff() == OK)
 	return;
 #endif
diff --git a/src/os_win32.c b/src/os_win32.c
index 2f9ecdc..972f10d 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -7113,13 +7113,12 @@
 /*
  * SUB STREAM (aka info stream) handling:
  *
- * NTFS can have sub streams for each file.  Normal contents of file is
- * stored in the main stream, and extra contents (author information and
- * title and so on) can be stored in sub stream.  After Windows 2000, user
- * can access and store those informations in sub streams via explorer's
- * property menuitem in right click menu.  Those informations in sub streams
- * were lost when copying only the main stream.  So we have to copy sub
- * streams.
+ * NTFS can have sub streams for each file.  The normal contents of a file is
+ * stored in the main stream, and extra contents (author information, title and
+ * so on) can be stored in a sub stream.  After Windows 2000, the user can
+ * access and store this information in sub streams via an explorer's property
+ * menu item in the right click menu.  This information in sub streams was lost
+ * when copying only the main stream.  Therefore we have to copy sub streams.
  *
  * Incomplete explanation:
  *	http://msdn.microsoft.com/library/en-us/dnw2k/html/ntfs5.asp
diff --git a/src/search.c b/src/search.c
index cc7b5a9..f95bf3c 100644
--- a/src/search.c
+++ b/src/search.c
@@ -3753,7 +3753,7 @@
 
 		    // we read a line, set "already" to check this "line" later
 		    // if depth >= 0 we'll increase files[depth].lnum far
-		    // bellow  -- Acevedo
+		    // below  -- Acevedo
 		    already = aux = p = skipwhite(line);
 		    p = find_word_start(p);
 		    p = find_word_end(p);
diff --git a/src/term.c b/src/term.c
index 77675b2..2603172 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3744,7 +3744,7 @@
 #endif
 	LOG_TR(("Sending xterm compatibility test sequence."));
 	// Do this in the third row.  Second row is used by ambiguous
-	// chararacter width check.
+	// character width check.
 	term_windgoto(2, 0);
 	// send the test DCS string.
 	out_str((char_u *)"\033Pzz\033\\");
@@ -4531,7 +4531,7 @@
 
 /*
  * Handle a response to T_CRV: {lead}{first}{x};{vers};{y}c
- * Xterm and alikes use '>' for {first}.
+ * Xterm and alike use '>' for {first}.
  * Rxvt sends "{lead}?1;2c".
  */
     static void
diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim
index f45a0d4..d6c369f 100644
--- a/src/testdir/test_arglist.vim
+++ b/src/testdir/test_arglist.vim
@@ -524,7 +524,7 @@
   bwipe Xa.c Xb.c Xc.c
 endfunc
 
-" Test for quiting Vim with unedited files in the argument list
+" Test for quitting Vim with unedited files in the argument list
 func Test_quit_with_arglist()
   CheckRunVimInTerminal
   let buf = RunVimInTerminal('', {'rows': 6})
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 1873a7a..f796325 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -2324,7 +2324,7 @@
   call writefile(lines, 'XSafeState')
   let buf = RunVimInTerminal('-S XSafeState', #{rows: 6})
 
-  " Sometimes we loop to handle a K_IGNORE, SafeState may be trigered once or
+  " Sometimes we loop to handle a K_IGNORE, SafeState may be triggered once or
   " more often.
   call term_sendkeys(buf, ":echo g:safe\<CR>")
   call WaitForAssert({-> assert_match('^\d ', term_getline(buf, 6))}, 1000)
diff --git a/src/testdir/test_debugger.vim b/src/testdir/test_debugger.vim
index b363640..029b9db 100644
--- a/src/testdir/test_debugger.vim
+++ b/src/testdir/test_debugger.vim
@@ -974,7 +974,7 @@
         \ 'line 1: let s:file1_var = ''file1'''
         \ ], #{msec: 5000})
 
-  " step throught the initial declarations
+  " step through the initial declarations
   call RunDbgCmd(buf, 'step', [ 'line 2: let g:global_var = ''global''' ] )
   call RunDbgCmd(buf, 'step', [ 'line 4: func s:File1Func( arg )' ] )
   call RunDbgCmd(buf, 'echo s:file1_var', [ 'file1' ] )
diff --git a/src/testdir/test_increment.vim b/src/testdir/test_increment.vim
index abd85be..1a631ec 100644
--- a/src/testdir/test_increment.vim
+++ b/src/testdir/test_increment.vim
@@ -284,7 +284,7 @@
 " 1
 "     1
 "     1
-"     Expexted:
+"     Expected:
 "     1) g Ctrl-A on block selected indented lines
 "     2
 " 1
diff --git a/src/testdir/test_menu.vim b/src/testdir/test_menu.vim
index 033d428..3df1560 100644
--- a/src/testdir/test_menu.vim
+++ b/src/testdir/test_menu.vim
@@ -426,7 +426,7 @@
   nunmenu Test.Sign
 endfunc
 
-" Test for "icon=filname" in a toolbar
+" Test for "icon=filename" in a toolbar
 func Test_menu_icon()
   CheckFeature toolbar
   nmenu icon=myicon.xpm Toolbar.Foo  :echo "Foo"<CR>
diff --git a/src/testdir/test_netbeans.vim b/src/testdir/test_netbeans.vim
index d56b468..d792ab9 100644
--- a/src/testdir/test_netbeans.vim
+++ b/src/testdir/test_netbeans.vim
@@ -839,7 +839,7 @@
   call s:run_server('Nb_file_auth')
 endfunc
 
-" Test for quiting Vim with an open netbeans connection
+" Test for quitting Vim with an open netbeans connection
 func Nb_quit_with_conn(port)
   call delete("Xnetbeans")
   call writefile([], "Xnetbeans")
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index a36e0f5..b8641fe 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -3308,7 +3308,7 @@
   call term_sendkeys(buf, "cc\<C-X>\<C-U>")
   call VerifyScreenDump(buf, 'Test_popupwin_infopopup_6', {})
 
-  " Hide the info popup, cycle trough buffers, make sure it didn't get
+  " Hide the info popup, cycle through buffers, make sure it didn't get
   " deleted.
   call term_sendkeys(buf, "\<Esc>")
   call term_sendkeys(buf, ":set hidden\<CR>")
diff --git a/src/testdir/test_python2.vim b/src/testdir/test_python2.vim
index ba73c12..afefd10 100644
--- a/src/testdir/test_python2.vim
+++ b/src/testdir/test_python2.vim
@@ -3692,7 +3692,7 @@
   call assert_equal(expected, getline(2, '$'))
   close!
 
-  " Try to import a non-existing moudle with a dot (.)
+  " Try to import a non-existing module with a dot (.)
   call AssertException(['py import a.b.c'], 'ImportError:')
 endfunc
 
diff --git a/src/testdir/test_python3.vim b/src/testdir/test_python3.vim
index 660ac46..78fe5d4 100644
--- a/src/testdir/test_python3.vim
+++ b/src/testdir/test_python3.vim
@@ -3882,7 +3882,7 @@
   call assert_equal(expected, getline(2, '$'))
   close!
 
-  " Try to import a non-existing moudle with a dot (.)
+  " Try to import a non-existing module with a dot (.)
   call AssertException(['py3 import a.b.c'], "No module named 'a'")
 endfunc
 
diff --git a/src/testdir/test_sort.vim b/src/testdir/test_sort.vim
index 07f0d0c..3900562 100644
--- a/src/testdir/test_sort.vim
+++ b/src/testdir/test_sort.vim
@@ -1328,7 +1328,7 @@
     endif
   endfor
 
-  " Needs atleast two lines for this test
+  " Needs at least two lines for this test
   call setline(1, ['line1', 'line2'])
   call assert_fails('sort no', 'E474:')
   call assert_fails('sort c', 'E475:')
diff --git a/src/testdir/test_terminal2.vim b/src/testdir/test_terminal2.vim
index 64310f6..4dc8350 100644
--- a/src/testdir/test_terminal2.vim
+++ b/src/testdir/test_terminal2.vim
@@ -287,7 +287,7 @@
   unlet g:job
 endfunc
 
-" TODO: reenable when this no longer hangs on Travis
+" TODO: re-enable when this no longer hangs on Travis
 "func Test_zz2_terminal_guioptions_bang()
 "  CheckGui
 "  set guioptions+=!
@@ -338,7 +338,7 @@
   let bnr = bufnr('$')
   call WaitForAssert({-> assert_equal('running', term_getstatus(bnr))})
   " In the GUI the first switch sometimes doesn't work.  Switch twice to avoid
-  " flakyness.
+  " flakiness.
   call feedkeys("\<C-W>N", 'xt')
   call feedkeys("A", 'xt')
   call WaitForAssert({-> assert_equal('running', term_getstatus(bnr))})
diff --git a/src/testdir/test_terminal3.vim b/src/testdir/test_terminal3.vim
index db6ebc0..75882f1 100644
--- a/src/testdir/test_terminal3.vim
+++ b/src/testdir/test_terminal3.vim
@@ -145,7 +145,7 @@
   call delete('XtermPopup')
 endfunc
 
-" Check a terminal in popup window uses the default mininum size.
+" Check a terminal in popup window uses the default minimum size.
 func Test_terminal_in_popup_min_size()
   CheckRunVimInTerminal
 
diff --git a/src/testdir/test_vartabs.vim b/src/testdir/test_vartabs.vim
index 7bdcde5..0ff1ea8 100644
--- a/src/testdir/test_vartabs.vim
+++ b/src/testdir/test_vartabs.vim
@@ -97,7 +97,7 @@
   .retab!
   call assert_equal("\t\t\t\tl", getline(1))
 
-  " Test for 'retab' with same vlaues as vts
+  " Test for 'retab' with same values as vts
   set ts=8 sts=0 vts=5,3,6,2 vsts=
   exe "norm! S                l"
   .retab! 5,3,6,2
diff --git a/src/testdir/test_vimscript.vim b/src/testdir/test_vimscript.vim
index e50e4d5..dba8c73 100644
--- a/src/testdir/test_vimscript.vim
+++ b/src/testdir/test_vimscript.vim
@@ -7374,7 +7374,7 @@
   endtry
   call assert_equal(1, caught_e884)
 
-  " function name folowed by #
+  " function name followed by #
   let caught_e128 = 0
   try
     func! test2() "#
diff --git a/src/textprop.c b/src/textprop.c
index bca0d9e..5a18f6c 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -302,7 +302,7 @@
 	if (length < 0)
 	    length = 0;		// zero-width property
 
-	// Allocate the new line with space for the new proprety.
+	// Allocate the new line with space for the new property.
 	newtext = alloc(buf->b_ml.ml_line_len + sizeof(textprop_T));
 	if (newtext == NULL)
 	    return;
@@ -1485,7 +1485,7 @@
 	end = !(prop.tp_flags & TP_FLAG_CONT_NEXT);
 
 	adjust_prop(&prop, 0, -removed, 0); // Remove leading spaces
-	adjust_prop(&prop, -1, col, 0); // Make line start at its final colum
+	adjust_prop(&prop, -1, col, 0); // Make line start at its final column
 
 	if (add_all || end)
 	    mch_memmove(new_props + --(*props_remaining) * sizeof(prop),
diff --git a/src/userfunc.c b/src/userfunc.c
index 2d71a7f..50088e6 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -1409,7 +1409,7 @@
 
 /*
  * Restore the function call depth.  This is for cases where there is no
- * garantee funcdepth_decrement() can be called exactly the same number of
+ * guarantee funcdepth_decrement() can be called exactly the same number of
  * times as funcdepth_increment().
  */
     void
diff --git a/src/version.c b/src/version.c
index c9d8665..69ec791 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2160,
+/**/
     2159,
 /**/
     2158,
diff --git a/src/vim9.h b/src/vim9.h
index 88cc4fc..26b2080 100644
--- a/src/vim9.h
+++ b/src/vim9.h
@@ -53,7 +53,7 @@
     // ISN_STOREOTHER, // pop into other script variable isn_arg.other.
 
     ISN_STORENR,    // store number into local variable isn_arg.storenr.stnr_idx
-    ISN_STORELIST,	// store into list, value/index/varable on stack
+    ISN_STORELIST,	// store into list, value/index/variable on stack
     ISN_STOREDICT,	// store into dictionary, value/index/variable on stack
 
     ISN_UNLET,		// unlet variable isn_arg.unlet.ul_name
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 2db226c..207ceb4 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -318,7 +318,7 @@
 }
 
 /*
- * Returnd TRUE if the script context is Vim9 script.
+ * Return TRUE if the script context is Vim9 script.
  */
     static int
 script_is_vim9()
@@ -1958,7 +1958,7 @@
 	if (isn->isn_arg.cmdmod.cf_cmdmod == NULL)
 	    return FAIL;
 	mch_memmove(isn->isn_arg.cmdmod.cf_cmdmod, cmod, sizeof(cmdmod_T));
-	// filter progam now belongs to the instruction
+	// filter program now belongs to the instruction
 	cmod->cmod_filter_regmatch.regprog = NULL;
     }
 
@@ -3507,7 +3507,7 @@
 	    }
 	}
 
-	// Do not skip over white space to find the "(", "exeucte 'x' ()" is
+	// Do not skip over white space to find the "(", "execute 'x' ()" is
 	// not a function call.
 	if (**arg == '(')
 	{
@@ -6835,7 +6835,7 @@
  *	    ... try block
  *	" catch {expr}"
  *	    JUMP -> finally
- * catch1:  PUSH exeception
+ * catch1:  PUSH exception
  *	    EVAL {expr}
  *	    MATCH
  *	    JUMP nomatch -> catch2
@@ -7132,7 +7132,7 @@
 }
 
 /*
- * If "eap" has a range that is not a contstant generate an ISN_RANGE
+ * If "eap" has a range that is not a constant generate an ISN_RANGE
  * instruction to compute it and return OK.
  * Otherwise return FAIL, the caller must deal with any range.
  */
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 64b42cb..4fd62ce 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -3137,7 +3137,7 @@
 }
 
 /*
- * ":dissassemble".
+ * ":disassemble".
  * We don't really need this at runtime, but we do have tests that require it,
  * so always include this.
  */