diff --git a/runtime/autoload/csscomplete.vim b/runtime/autoload/csscomplete.vim
index 50048a3..f6c5a6c 100644
--- a/runtime/autoload/csscomplete.vim
+++ b/runtime/autoload/csscomplete.vim
@@ -4,7 +4,7 @@
 "           plus CSS Speech Module <http://www.w3.org/TR/css3-speech/>
 " Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
 " Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change: 2016 Jan 11
+" Last Change: 2018 Jul 02
 
 let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom")
 
@@ -19,7 +19,6 @@
     while start >= 0 && line[start - 1] =~ '\%(\k\|-\)'
       let start -= 1
     endwhile
-    let b:after = line[compl_begin :]
     let b:compl_context = line[0:compl_begin]
     return start
   endif
@@ -37,11 +36,14 @@
   " 5. if @ complete at-rule
   " 6. if ! complete important
   if exists("b:compl_context")
+    let line = getline('.')
+    let compl_begin = col('.') - 2
+    let after = line[compl_begin:]
     let line = b:compl_context
-    let after = b:after
     unlet! b:compl_context
   else
     let line = a:base
+    let after = ''
   endif
 
   let res = []
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index e553d46..4e97457 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -901,8 +901,8 @@
 Note: When the 'write' option is off, you are not able to write any file.
 
 							*:w* *:write*
-						*E502* *E503* *E504* *E505*
-						*E512* *E514* *E667* *E796* *E949*
+					*E502* *E503* *E504* *E505*
+					*E512* *E514* *E667* *E796* *E949*
 :w[rite] [++opt]	Write the whole buffer to the current file.  This is
 			the normal way to save changes to a file.  It fails
 			when the 'readonly' option is set or when there is
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 46903bc..bd538d5 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -3629,6 +3629,7 @@
 			1	exists
 			0	does not exist
 			-1	not implemented on this system
+		|exepath()| can be used to get the full path of an executable.
 
 execute({command} [, {silent}])					*execute()*
 		Execute an Ex command or commands and return the output as a
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index f41dc70..0c33845 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -320,8 +320,8 @@
 Note that the last one is the value of $VIMRUNTIME which has been expanded.
 
 Note that when using a plugin manager or |packages| many directories will be
-added to 'runtimepath'.  These plugins earch require their own directory,
-don't put them directly in ~/.vim/plugin.
+added to 'runtimepath'.  These plugins each require their own directory, don't
+put them directly in ~/.vim/plugin.
 
 What if it looks like your plugin is not being loaded?  You can find out what
 happens when Vim starts up by using the |-V| argument: >
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 0aeac14..ca19136 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1535,7 +1535,7 @@
 
 If you wish non-filetype syntax items to also be included, you can use a
 regular expression syntax (added in version 13.0 of
-autoload\syntaxcomplete.vim) to add items.  Looking at the output from
+autoload/syntaxcomplete.vim) to add items.  Looking at the output from
 ":syntax list" while editing a PHP file I can see some of these entries: >
     htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
 
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 65a9d17..aac95ac 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -8489,11 +8489,11 @@
 	final value applying to all subsequent tabs.
 
 	For example, when editing assembly language files where statements
-	start in the 8th column and comments in the 40th, it may be useful
+	start in the 9th column and comments in the 41st, it may be useful
 	to use the following: >
 		:set varsofttabstop=8,32,8
-<	This will set soft tabstops at the 8th and 40th columns, and at every
-	8th column thereafter.
+<	This will set soft tabstops with 8 and 8 + 32 spaces, and 8 more
+	for every column thereafter.
 
 	Note that the value of |'softtabstop'| will be ignored while
 	'varsofttabstop' is set.
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 6246478..ff1d68d 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -265,7 +265,7 @@
 			loaded during initialization, see |load-plugins|.
 
 			Also see |pack-add|.
-			{only available when compiled with +eval}
+			{only available when compiled with |+eval|}
 
 						*:packl* *:packloadall*
 :packl[oadall][!]	Load all packages in the "start" directory under each
@@ -289,7 +289,7 @@
 			An error only causes sourcing the script where it
 			happens to be aborted, further plugins will be loaded.
 			See |packages|.
-			{only available when compiled with +eval}
+			{only available when compiled with |+eval|}
 
 :scripte[ncoding] [encoding]		*:scripte* *:scriptencoding* *E167*
 			Specify the character encoding used in the script.
diff --git a/runtime/doc/tags b/runtime/doc/tags
index f2e4556..58f3a6b 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -5176,6 +5176,7 @@
 autocommand	autocmd.txt	/*autocommand*
 autocommand-events	autocmd.txt	/*autocommand-events*
 autocommand-pattern	autocmd.txt	/*autocommand-pattern*
+autocommands	autocmd.txt	/*autocommands*
 autoformat	change.txt	/*autoformat*
 autoload	eval.txt	/*autoload*
 autoload-functions	eval.txt	/*autoload-functions*
@@ -5762,6 +5763,7 @@
 debug-win32	debug.txt	/*debug-win32*
 debug-windbg	debug.txt	/*debug-windbg*
 debug.txt	debug.txt	/*debug.txt*
+debugbreak()	eval.txt	/*debugbreak()*
 debugger-compilation	debugger.txt	/*debugger-compilation*
 debugger-features	debugger.txt	/*debugger-features*
 debugger-integration	debugger.txt	/*debugger-integration*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 262b162..cd2c664 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -523,9 +523,9 @@
 
 Functions ~
 
-term_sendkeys()		send keystrokes to a terminal (not subject to tmap)
-term_wait()		wait for screen to be updated
-term_scrape()		inspect terminal screen
+|term_sendkeys()|	send keystrokes to a terminal (not subject to tmap)
+|term_wait()|		wait for screen to be updated
+|term_scrape()|		inspect terminal screen
 
 
 ==============================================================================
@@ -552,7 +552,7 @@
   characters.  This makes sure the dump is always this size.  The function
   RunVimInTerminal() takes care of this.  Pass it the arguments for the Vim
   command.
-- Send any commands to Vim using term_sendkeys().  For example: >
+- Send any commands to Vim using |term_sendkeys()|.  For example: >
 	call term_sendkeys(buf, ":echo &lines &columns\<CR>")
 - Check that the screen is now in the expected state, using
   VerifyScreenDump().  This expects the reference screen dump to be in the
@@ -580,13 +580,13 @@
 							*terminal-screendump*
 
 To create the screen dump, run Vim (or any other program) in a terminal and
-make it show the desired state.  Then use the term_dumpwrite() function to
+make it show the desired state.  Then use the |term_dumpwrite()| function to
 create a screen dump file.  For example: >
 	:call term_dumpwrite(77, "mysyntax.dump")
 
 Here "77" is the buffer number of the terminal.  Use `:ls!` to see it.
 
-You can view the screen dump with term_dumpload(): >
+You can view the screen dump with |term_dumpload()|: >
 	:call term_dumpload("mysyntax.dump")
 
 To verify that Vim still shows exactly the same screen, run Vim again with
@@ -594,7 +594,7 @@
 again, using a different file name: >
 	:call term_dumpwrite(88, "test.dump")
 
-To assert that the files are exactly the same use assert_equalfile(): >
+To assert that the files are exactly the same use |assert_equalfile()|: >
 	call assert_equalfile("mysyntax.dump", "test.dump")
 
 If there are differences then v:errors will contain the error message.
@@ -603,8 +603,8 @@
 Comparing screen dumps ~
 						*terminal-diffscreendump*
 
-assert_equalfile() does not make it easy to see what is different.
-To spot the problem use term_dumpdiff(): >
+|assert_equalfile()| does not make it easy to see what is different.
+To spot the problem use |term_dumpdiff()|: >
 	call term_dumpdiff("mysyntax.dump", "test.dump")
 
 This will open a window consisting of three parts:
@@ -900,7 +900,7 @@
 To change the width of the Vim window when debugging starts, and use a
 vertical split: >
   let g:termdebug_wide = 163
-This will set &columns to 163 when :Termdebug is used.  The value is restored
+This will set &columns to 163 when `:Termdebug` is used.  The value is restored
 when quitting the debugger.
 If g:termdebug_wide is set and &columns is already larger than
 g:termdebug_wide then a vertical split will be used without changing &columns.
diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index 3698348..619c955 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -408,14 +408,13 @@
 ==============================================================================
 Executing shell commands in a window			*shell-window*
 
-There have been questions for the possibility to execute a shell in a window
-inside Vim.  The answer: you can't!  Including this would add a lot of code to
-Vim, which is a good reason not to do this.  After all, Vim is an editor, it
-is not supposed to do non-editing tasks.  However, to get something like this,
-you might try splitting your terminal screen or display window with the
+See |terminal|.
+
+Another solution is splitting your terminal screen or display window with the
 "splitvt" program.  You can probably find it on some ftp server.  The person
 that knows more about this is Sam Lantinga <slouken@cs.ucdavis.edu>.
-An alternative is the "window" command, found on BSD Unix systems, which
+
+Another alternative is the "window" command, found on BSD Unix systems, which
 supports multiple overlapped windows.  Or the "screen" program, found at
 www.uni-erlangen.de, which supports a stack of windows.
 
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index c90a771..ca27ba3 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,6 +38,8 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+testdir: remove use of lua.vim from makefiles and test1.in
+
 Prompt buffer:
 - Add a command line history.
 - delay next prompt until plugin gives OK?
@@ -89,8 +91,8 @@
 More warnings from static analysis:
 https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
 
-Patch to fix duplicate entry in tagfiles() and add a test. (Dominique Pelle,
-#2979)
+Patch to fix that :cexpr no longer jumps to first error. (Yegappan 2018 Jun
+25, #3092)
 
 Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
 Related to bracketed paste.  I cannot reproduce it.
@@ -103,13 +105,15 @@
 Patch for xterm and vt320 builtin termcap. (Kouichi Iwamoto, 2018 May 31,
 #2973)
 
+Patch for matchit and matchparen. (Christian, 2018 Jun 25)
+
 Patch to add more testing for :cd command. (Dominique Pelle, 2018 May 30,
 #2972)
 
 Whenever the file name is "~" then expand('%:p') returns $HOME. (Aidan
-Shafran, 2018 Jun 23, #3072)
+Shafran, 2018 Jun 23, #3072)  Proposed patch by Aidan, 2018 Jun 24.
 
-Patch to set w_curswant when setting the cursor in language interfaces.
+Patch to set w_set_curswant when setting the cursor in language interfaces.
 (David Hotham, 2018 Jun 22, #3060)
 
 Patch to make CTRL-W <CR> work properly in a quickfix window. (Jason Franklin,
@@ -169,9 +173,19 @@
 
 Patch for Lua support. (Kazunobu Kuriyama, 2018 May 26)
 
+Make {skip} argument of searchpair() consistent with other places where we
+pass an expression to evaluate.  Allow passing zero for "never skip".
+
 Add an option similar to 'lazyredraw' to skip redrawing while executing a
 script or function.
 
+Universal solution to detect if t_RS is working, using cursor position.
+Koichi Iwamoto, #2126
+
+When using a menu item while the "more" prompt is displayed doesn't work well.
+E.g. after using help->version.  Have a key that ends the "more" prompt and
+does nothing otherwise?
+
 MS-Windows: write may fail if another program is reading the file.
 If 'readonly' is not set but the file appears to be readonly later, try again
 (wait a little while).
@@ -353,9 +367,6 @@
 In an optional package the "after" directory is not scanned?
 (Renato Fabbri, 2018 Feb 22)
 
-Universal solution to detect if t_RS is working, using cursor position.
-Koichi Iwamoto, #2126
-
 Patch for Neovim concerning restoring when closing help window. (glacambre
 neovim #7431)
 
@@ -1405,9 +1416,6 @@
 
 :help gives example for z?, but it does not work.  m? and t? do work.
 
-Patch to add funcref to Lua.  (Luis Carvalho, 2013 Sep 4)
-With tests: Sep 5.
-
 Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
 
 Checking runtime scripts: Thilo Six, 2012 Jun 6.
@@ -4664,10 +4672,7 @@
     command used dos fileformat.  Same for 'fileencoding'.
 -   Add events to autocommands:
     Error	    - When an error happens
-    NormalEnter	    - Entering Normal mode
-    ReplaceEnter    - Entering Replace mode
-    VisualEnter	    - Entering Visual mode
-    *Leave	    - Leaving a mode (in pair with the above *Enter)
+    ModeChange	    - after changing mode (before waiting for a char)
     VimLeaveCheck    - Before Vim decides to exit, so that it can be cancelled
 		      when exiting isn't a good idea.
     CursorHoldC     - CursorHold while command-line editing
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 045bd30..8155176 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1980,7 +1980,7 @@
 flag to 'cpoptions' for this.
 
 Using "I" in a line with only blanks appended to the line.  This is not Vi
-compatible.  Added the 'H' flag in 'coptions' for this.
+compatible.  Added the 'H' flag in 'cpoptions' for this.
 
 When joining multiple lines the cursor would be at the last joint, but Vi
 leaves it at the position where "J" would put it.  Added the 'q' flag in
diff --git a/runtime/gvim.desktop b/runtime/gvim.desktop
index aeeddfc..e280ed9 100644
--- a/runtime/gvim.desktop
+++ b/runtime/gvim.desktop
@@ -1,7 +1,9 @@
 [Desktop Entry]
 Name=GVim
 GenericName=Text Editor
+GenericName[da]=Tekstredigering
 GenericName[de]=Texteditor
+GenericName[pl]=Edytor tekstu
 Comment=Edit text files
 Comment[af]=Redigeer tekslêers
 Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
@@ -14,7 +16,7 @@
 Comment[ca]=Edita fitxers de text
 Comment[cs]=Úprava textových souborů
 Comment[cy]=Golygu ffeiliau testun
-Comment[da]=Redigér tekstfiler
+Comment[da]=Rediger tekstfiler
 Comment[de]=Textdateien bearbeiten
 Comment[el]=Επεξεργασία αρχείων κειμένου
 Comment[en_CA]=Edit text files
@@ -50,7 +52,7 @@
 Comment[no]=Rediger tekstfiler
 Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ
 Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ
-Comment[pl]=Edytor plików tekstowych
+Comment[pl]=Edytuj pliki tekstowe
 Comment[pt]=Editar ficheiros de texto
 Comment[pt_BR]=Edite arquivos de texto
 Comment[ro]=Editare fişiere text
diff --git a/runtime/indent/sas.vim b/runtime/indent/sas.vim
index d591b27..9cc9e02 100644
--- a/runtime/indent/sas.vim
+++ b/runtime/indent/sas.vim
@@ -1,8 +1,8 @@
 " Vim indent file
 " Language:     SAS
 " Maintainer:   Zhen-Huan Hu <wildkeny@gmail.com>
-" Version:      3.0.1
-" Last Change:  Mar 13, 2017
+" Version:      3.0.3
+" Last Change:  Jun 26, 2018
 
 if exists("b:did_indent")
   finish
@@ -27,9 +27,9 @@
 let s:section_end = '\v%(^|;)\s*%(quit|enddata)\s*;'
 
 " Regex that captures the start of a control block (anything inside a section)
-let s:block_str = '\v<%(do>%([^;]+<%(to|over)>[^;]+)=|%(define|layout|method|select)>[^;]+|begingraph)\s*;'
+let s:block_str = '\v<%(do>%([^;]+<%(to|over|while)>[^;]+)=|%(compute|define\s+%(column|footer|header|style|table|tagset|crosstabs|statgraph)|edit|layout|method|select)>[^;]+|begingraph)\s*;'
 " Regex that captures the end of a control block (anything inside a section)
-let s:block_end = '\v<%(end|endlayout|endgraph)\s*;'
+let s:block_end = '\v<%(end|endcomp|endlayout|endgraph)\s*;'
 
 " Regex that captures the start of a macro
 let s:macro_str = '\v%(^|;)\s*\%macro>'
@@ -52,7 +52,7 @@
   let prev_lnum = prevnonblank(a:lnum - 1)
   while prev_lnum > 0
     let prev_line = getline(prev_lnum)
-    if prev_line =~ a:regex
+    if prev_line =~? a:regex
       break
     else
       let prev_lnum = prevnonblank(prev_lnum - 1)
@@ -71,11 +71,11 @@
     let prev_line = getline(prev_lnum)
     " Previous non-blank line contains the start of a macro/section/block
     " while not the end of a macro/section/block (at the same line)
-    if (prev_line =~ s:section_str && prev_line !~ s:section_run && prev_line !~ s:section_end) ||
-          \ (prev_line =~ s:block_str && prev_line !~ s:block_end) ||
-          \ (prev_line =~ s:macro_str && prev_line !~ s:macro_end)
-      let ind = indent(prev_lnum) + &sts
-    elseif prev_line =~ s:section_run && prev_line !~ s:section_end
+    if (prev_line =~? s:section_str && prev_line !~? s:section_run && prev_line !~? s:section_end) ||
+          \ (prev_line =~? s:block_str && prev_line !~? s:block_end) ||
+          \ (prev_line =~? s:macro_str && prev_line !~? s:macro_end)
+      let ind = indent(prev_lnum) + shiftwidth()
+    elseif prev_line =~? s:section_run && prev_line !~? s:section_end
       let prev_section_str_lnum = s:PrevMatch(v:lnum, s:section_str)
       let prev_section_end_lnum = max([
             \ s:PrevMatch(v:lnum, s:section_end),
@@ -83,9 +83,9 @@
             \ s:PrevMatch(v:lnum, s:program_end)])
       " Check if the section supports run-processing
       if prev_section_end_lnum < prev_section_str_lnum &&
-            \ getline(prev_section_str_lnum) =~ '\v%(^|;)\s*proc\s+%(' .
+            \ getline(prev_section_str_lnum) =~? '\v%(^|;)\s*proc\s+%(' .
             \ join(s:run_processing_procs, '|') . ')>'
-        let ind = indent(prev_lnum) + &sts
+        let ind = indent(prev_lnum) + shiftwidth()
       else
         let ind = indent(prev_lnum)
       endif
@@ -95,26 +95,26 @@
   endif
   " Re-adjustments based on the inputs of the current line
   let curr_line = getline(v:lnum)
-  if curr_line =~ s:program_end
+  if curr_line =~? s:program_end
     " End of the program
     " Same indentation as the first non-blank line
     return indent(nextnonblank(1))
-  elseif curr_line =~ s:macro_end
+  elseif curr_line =~? s:macro_end
     " Current line is the end of a macro
     " Match the indentation of the start of the macro
     return indent(s:PrevMatch(v:lnum, s:macro_str))
-  elseif curr_line =~ s:block_end && curr_line !~ s:block_str
+  elseif curr_line =~? s:block_end && curr_line !~? s:block_str
     " Re-adjust if current line is the end of a block
     " while not the beginning of a block (at the same line)
     " Returning the indent of previous block start directly
     " would not work due to nesting
-    let ind = ind - &sts
-  elseif curr_line =~ s:section_str || curr_line =~ s:section_run || curr_line =~ s:section_end
+    let ind = ind - shiftwidth()
+  elseif curr_line =~? s:section_str || curr_line =~? s:section_run || curr_line =~? s:section_end
     " Re-adjust if current line is the start/end of a section
     " since the end of a section could be inexplicit
     let prev_section_str_lnum = s:PrevMatch(v:lnum, s:section_str)
     " Check if the previous section supports run-processing
-    if getline(prev_section_str_lnum) =~ '\v%(^|;)\s*proc\s+%(' .
+    if getline(prev_section_str_lnum) =~? '\v%(^|;)\s*proc\s+%(' .
           \ join(s:run_processing_procs, '|') . ')>'
       let prev_section_end_lnum = max([
             \ s:PrevMatch(v:lnum, s:section_end),
@@ -128,7 +128,7 @@
             \ s:PrevMatch(v:lnum, s:program_end)])
     endif
     if prev_section_end_lnum < prev_section_str_lnum
-      let ind = ind - &sts
+      let ind = ind - shiftwidth()
     endif
   endif
   return ind
diff --git a/runtime/lang/menu_da.latin1.vim b/runtime/lang/menu_da.latin1.vim
new file mode 100644
index 0000000..b258495
--- /dev/null
+++ b/runtime/lang/menu_da.latin1.vim
@@ -0,0 +1,3 @@
+" Menu Translations:	Danish for iso-8859-1 encoding
+
+source <sfile>:p:h/menu_da.utf-8.vim
diff --git a/runtime/menu.vim b/runtime/menu.vim
index fd5d914..b9bd3d8 100644
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -809,7 +809,7 @@
   let name = a:fname
   if name == ''
     if !exists("g:menutrans_no_file")
-      let g:menutrans_no_file = "[No file]"
+      let g:menutrans_no_file = "[No Name]"
     endif
     let name = g:menutrans_no_file
   else
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
index 0fa5c4d..d53fb22 100644
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -1,6 +1,6 @@
 " Vim plugin for showing matching parens
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2017 Sep 30
+" Last Change: 2018 Jun 23
 
 " Exit quickly when:
 " - this plugin was already loaded (or disabled)
diff --git a/runtime/tutor/tutor b/runtime/tutor/tutor
index 2afefbb..a1a9c87 100644
--- a/runtime/tutor/tutor
+++ b/runtime/tutor/tutor
@@ -19,7 +19,7 @@
      properly.  If you only read the text, you will forget the commands!
 
      Now, make sure that your Caps-Lock key is NOT depressed and press
-     the   j   key enough times to move the cursor so that Lesson 1.1
+     the   j   key enough times to move the cursor so that lesson 1.1
      completely fills the screen.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			Lesson 1.1:  MOVING THE CURSOR
@@ -36,7 +36,7 @@
   2. Hold down the down key (j) until it repeats.
      Now you know how to move to the next lesson.
 
-  3. Using the down key, move to Lesson 1.2.
+  3. Using the down key, move to lesson 1.2.
 
 NOTE: If you are ever unsure about something you typed, press <ESC> to place
       you in Normal mode.  Then retype the command you wanted.
@@ -64,7 +64,7 @@
 NOTE:  :q! <ENTER>  discards any changes you made.  In a few lessons you
        will learn how to save the changes to a file.
 
-  5. Move the cursor down to Lesson 1.3.
+  5. Move the cursor down to lesson 1.3.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -84,7 +84,7 @@
 
 ---> The ccow jumpedd ovverr thhe mooon.
 
-  5. Now that the line is correct, go on to Lesson 1.4.
+  5. Now that the line is correct, go on to lesson 1.4.
 
 NOTE: As you go through this tutor, do not try to memorize, learn by usage.
 
@@ -126,7 +126,7 @@
 
   3. As the text has been appended press <ESC> to return to Normal mode.
 
-  4. Move the cursor to the second line marked ---> and repeat 
+  4. Move the cursor to the second line marked ---> and repeat
      steps 2 and 3 to correct this sentence.
 
 ---> There is some text missing from th
@@ -152,13 +152,13 @@
 
   3. Insert and delete text as you learned in the previous lessons.
 
-  4. Save the file with changes and exit Vim with:  :wq  <ENTER>
+  4. Save the file with changes and exit Vim with:  :wq <ENTER>
 
   5. If you have quit vimtutor in step 1 restart the vimtutor and move down to
      the following summary.
 
   6. After reading the above steps and understanding them: do it.
-  
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			       Lesson 1 SUMMARY
 
@@ -180,7 +180,7 @@
 NOTE: Pressing <ESC> will place you in Normal mode or will cancel
       an unwanted and partially completed command.
 
-Now continue with Lesson 2.
+Now continue with lesson 2.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			Lesson 2.1: DELETION COMMANDS
@@ -202,7 +202,7 @@
 
 ---> There are a some words fun that don't belong paper in this sentence.
 
-  5. Repeat steps 3 and 4 until the sentence is correct and go to Lesson 2.2.
+  5. Repeat steps 3 and 4 until the sentence is correct and go to lesson 2.2.
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -222,7 +222,7 @@
 ---> Somebody typed the end of this line twice. end of this line twice.
 
 
-  5. Move on to Lesson 2.3 to understand what is happening.
+  5. Move on to lesson 2.3 to understand what is happening.
 
 
 
@@ -257,7 +257,7 @@
 
    ** Typing a number before a motion repeats it that many times. **
 
-  1. Move the cursor to the start of the line marked ---> below.
+  1. Move the cursor to the start of the line below marked --->.
 
   2. Type  2w  to move the cursor two words forward.
 
@@ -269,7 +269,7 @@
 
 ---> This is just a line with words you can move around in.
 
-  6. Move on to Lesson 2.5.
+  6. Move on to lesson 2.5.
 
 
 
@@ -286,10 +286,10 @@
 
   1. Move the cursor to the first UPPER CASE word in the line marked --->.
 
-  2. Type  d2w  to delete the two UPPER CASE words
+  2. Type  d2w  to delete the two UPPER CASE words.
 
   3. Repeat steps 1 and 2 with a different count to delete the consecutive
-     UPPER CASE words with one command
+     UPPER CASE words with one command.
 
 --->  this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
 
@@ -338,7 +338,7 @@
 
 ---> Fiix the errors oon thhis line and reeplace them witth undo.
 
-  8. These are very useful commands.  Now move on to the Lesson 2 Summary.
+  8. These are very useful commands.  Now move on to the lesson 2 Summary.
 
 
 
@@ -406,7 +406,7 @@
 --->  Whan this lime was tuoed in, someone presswd some wrojg keys!
 --->  When this line was typed in, someone pressed some wrong keys!
 
-  5. Now move on to Lesson 3.3.
+  5. Now move on to lesson 3.3.
 
 NOTE: Remember that you should be learning by doing, not memorization.
 
@@ -558,7 +558,7 @@
 
   1. Move the cursor to the line below marked --->.
 
-  2. Type  :s/thee/the <ENTER> .  Note that this command only changes the
+  2. Type  :s/thee/the <ENTER>  .  Note that this command only changes the
      first occurrence of "thee" in the line.
 
   3. Now type  :s/thee/the/g .  Adding the  g  flag means to substitute
@@ -623,7 +623,7 @@
 		      Lesson 5.2: MORE ON WRITING FILES
 
 
-     ** To save the changes made to the text, type  :w FILENAME. **
+     ** To save the changes made to the text, type  :w FILENAME  **
 
   1. Type  :!dir  or  :!ls  to get a listing of your directory.
      You already know you must hit <ENTER> after this.
@@ -638,7 +638,7 @@
 NOTE: If you were to exit Vim and start it again with  vim TEST , the file
       would be an exact copy of the tutor when you saved it.
 
-  5. Now remove the file by typing (MS-DOS):    :!del TEST
+  5. Now remove the file by typing (Windows):   :!del TEST
 				or (Unix):	:!rm TEST
 
 
@@ -673,7 +673,7 @@
 
   1. Place the cursor just above this line.
 
-NOTE:  After executing Step 2 you will see text from Lesson 5.3.  Then move
+NOTE:  After executing Step 2 you will see text from lesson 5.3.  Then move
        DOWN to see this lesson again.
 
   2. Now retrieve your TEST file using the command   :r TEST   where TEST is
@@ -681,7 +681,7 @@
      The file you retrieve is placed below the cursor line.
 
   3. To verify that a file was retrieved, cursor back and notice that there
-     are now two copies of Lesson 5.3, the original and the file version.
+     are now two copies of lesson 5.3, the original and the file version.
 
 NOTE:  You can also read the output of an external command.  For example,
        :r !ls  reads the output of the ls command and puts it below the
@@ -695,7 +695,7 @@
   1.  :!command  executes an external command.
 
       Some useful examples are:
-	 (MS-DOS)	  (Unix)
+	 (Windows)	  (Unix)
 	  :!dir		   :!ls		   -  shows a directory listing.
 	  :!del FILENAME   :!rm FILENAME   -  removes file FILENAME.
 
@@ -717,7 +717,7 @@
 
  ** Type  o  to open a line below the cursor and place you in Insert mode. **
 
-  1. Move the cursor to the line below marked --->.
+  1. Move the cursor to the first line below marked --->.
 
   2. Type the lowercase letter  o  to open up a line BELOW the cursor and place
      you in Insert mode.
@@ -741,7 +741,7 @@
 	     ** Type  a  to insert text AFTER the cursor. **
 
   1. Move the cursor to the start of the line below marked --->.
-  
+
   2. Press  e  until the cursor is on the end of  li .
 
   3. Type an  a  (lowercase) to append text AFTER the cursor.
@@ -750,7 +750,7 @@
      mode.
 
   5. Use  e  to move to the next incomplete word and repeat steps 3 and 4.
-  
+
 ---> This li will allow you to pract appendi text to a line.
 ---> This line will allow you to practice appending text to a line.
 
@@ -786,10 +786,10 @@
 
 	  ** Use the  y  operator to copy text and  p  to paste it **
 
-  1. Go to the line marked with ---> below and place the cursor after "a)".
-  
+  1. Move to the line below marked ---> and place the cursor after "a)".
+
   2. Start Visual mode with  v  and move the cursor to just before "first".
-  
+
   3. Type  y  to yank (copy) the highlighted text.
 
   4. Move the cursor to the end of the next line:  j$
@@ -802,14 +802,14 @@
 --->  a) this is the first item.
       b)
 
-  NOTE: you can also use  y  as an operator;  yw  yanks one word.
+  NOTE: You can also use  y  as an operator;  yw  yanks one word.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			    Lesson 6.5: SET OPTION
 
 
 	  ** Set an option so a search or substitute ignores case **
 
-  1. Search for 'ignore' by entering:   /ignore  <ENTER>
+  1. Search for 'ignore' by entering:  /ignore <ENTER>
      Repeat several times by pressing  n .
 
   2. Set the 'ic' (Ignore case) option by entering:   :set ic
@@ -823,9 +823,9 @@
 
   6. To disable ignoring case enter:  :set noic
 
-NOTE:  To remove the highlighting of matches enter:   :nohlsearch 
+NOTE:  To remove the highlighting of matches enter:   :nohlsearch
 NOTE:  If you want to ignore case for just one search command, use  \c
-       in the phrase:  /ignore\c  <ENTER>
+       in the phrase:  /ignore\c <ENTER>
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 			       Lesson 6 SUMMARY
 
@@ -883,7 +883,7 @@
 
   1. Start editing the "vimrc" file.  This depends on your system:
 	:e ~/.vimrc		for Unix
-	:e $VIM/_vimrc		for MS-Windows
+	:e $VIM/_vimrc		for Windows
 
   2. Now read the example "vimrc" file contents:
 	:r $VIMRUNTIME/vimrc_example.vim
@@ -909,7 +909,7 @@
 
   4. Press  CTRL-D  and Vim will show a list of commands that start with "e".
 
-  5. Press <TAB>  and Vim will complete the command name to ":edit".
+  5. Type  d<TAB>  and Vim will complete the command name to ":edit".
 
   6. Now add a space and the start of an existing file name:  :edit FIL
 
@@ -922,13 +922,13 @@
 			       Lesson 7 SUMMARY
 
 
-  1. Type  :help  or press <F1> or <Help>  to open a help window.
+  1. Type  :help  or press <F1> or <HELP>  to open a help window.
 
   2. Type  :help cmd  to find help on  cmd .
 
-  3. Type  CTRL-W CTRL-W  to jump to another window
+  3. Type  CTRL-W CTRL-W  to jump to another window.
 
-  4. Type  :q  to close the help window
+  4. Type  :q  to close the help window.
 
   5. Create a vimrc startup script to keep your preferred settings.
 
diff --git a/runtime/vim.desktop b/runtime/vim.desktop
index d4ab844..d6be896 100644
--- a/runtime/vim.desktop
+++ b/runtime/vim.desktop
@@ -1,7 +1,9 @@
 [Desktop Entry]
 Name=Vim
 GenericName=Text Editor
+GenericName[da]=Tekstredigering
 GenericName[de]=Texteditor
+GenericName[pl]=Edytor tekstu
 Comment=Edit text files
 Comment[af]=Redigeer tekslêers
 Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
@@ -50,7 +52,7 @@
 Comment[no]=Rediger tekstfiler
 Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ
 Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ
-Comment[pl]=Edytor plików tekstowych
+Comment[pl]=Edytuj pliki tekstowe
 Comment[pt]=Editar ficheiros de texto
 Comment[pt_BR]=Edite arquivos de texto
 Comment[ro]=Editare fişiere text
