Update runtime files.
diff --git a/runtime/autoload/tohtml.vim b/runtime/autoload/tohtml.vim
index d972ad6..2d874c6 100644
--- a/runtime/autoload/tohtml.vim
+++ b/runtime/autoload/tohtml.vim
@@ -1,6 +1,6 @@
 " Vim autoload file for the tohtml plugin.
 " Maintainer: Ben Fritz <fritzophrenic@gmail.com>
-" Last Change: 2013 Sep 03
+" Last Change: 2018 Nov 11
 "
 " Additional contributors:
 "
@@ -544,12 +544,16 @@
     " add required javascript in reverse order so we can just call append again
     " and again without adjusting {{{
 
-    " insert script closing tag
-    call append(style_start, [
-	  \ '',
-	  \ s:settings.use_xhtml ? '//]]>' : '-->',
-	  \ "</script>"
-	  \ ])
+    let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids || !empty(s:settings.prevent_copy)
+
+    " insert script closing tag if needed
+    if s:uses_script
+      call append(style_start, [
+	    \ '',
+	    \ s:settings.use_xhtml ? '//]]>' : '-->',
+	    \ "</script>"
+	    \ ])
+    endif
 
     " insert script which corrects the size of small input elements in
     " prevent_copy mode. See 2html.vim for details on why this is needed and how
@@ -575,55 +579,61 @@
 	    \ '}'
 	    \ ])
     endif
-    "
+
     " insert javascript to get IDs from line numbers, and to open a fold before
     " jumping to any lines contained therein
-    call append(style_start, [
-	  \ "  /* Always jump to new location even if the line was hidden inside a fold, or",
-	  \ "   * we corrected the raw number to a line ID.",
-	  \ "   */",
-	  \ "  if (lineElem) {",
-	  \ "    lineElem.scrollIntoView(true);",
-	  \ "  }",
-	  \ "  return true;",
-	  \ "}",
-	  \ "if ('onhashchange' in window) {",
-	  \ "  window.onhashchange = JumpToLine;",
-	  \ "}"
-	  \ ])
-    if s:settings.dynamic_folds
+    if s:settings.line_ids
+      call append(style_start, [
+	    \ "  /* Always jump to new location even if the line was hidden inside a fold, or",
+	    \ "   * we corrected the raw number to a line ID.",
+	    \ "   */",
+	    \ "  if (lineElem) {",
+	    \ "    lineElem.scrollIntoView(true);",
+	    \ "  }",
+	    \ "  return true;",
+	    \ "}",
+	    \ "if ('onhashchange' in window) {",
+	    \ "  window.onhashchange = JumpToLine;",
+	    \ "}"
+	    \ ])
+
+      if s:settings.dynamic_folds
+	call append(style_start, [
+	      \ "",
+	      \ "  /* navigate upwards in the DOM tree to open all folds containing the line */",
+	      \ "  var node = lineElem;",
+	      \ "  while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
+	      \ "  {",
+	      \ "    if (node.className == 'closed-fold')",
+	      \ "    {",
+	      \ "      /* toggle open the fold ID (remove window ID) */",
+	      \ "      toggleFold(node.id.substr(4));",
+	      \ "    }",
+	      \ "    node = node.parentNode;",
+	      \ "  }",
+	      \ ])
+      endif
+    endif
+
+    if s:settings.line_ids
       call append(style_start, [
 	    \ "",
-	    \ "  /* navigate upwards in the DOM tree to open all folds containing the line */",
-	    \ "  var node = lineElem;",
-	    \ "  while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
-	    \ "  {",
-	    \ "    if (node.className == 'closed-fold')",
-	    \ "    {",
-	    \ "      /* toggle open the fold ID (remove window ID) */",
-	    \ "      toggleFold(node.id.substr(4));",
-	    \ "    }",
-	    \ "    node = node.parentNode;",
+	    \ "/* function to open any folds containing a jumped-to line before jumping to it */",
+	    \ "function JumpToLine()",
+	    \ "{",
+	    \ "  var lineNum;",
+	    \ "  lineNum = window.location.hash;",
+	    \ "  lineNum = lineNum.substr(1); /* strip off '#' */",
+	    \ "",
+	    \ "  if (lineNum.indexOf('L') == -1) {",
+	    \ "    lineNum = 'L'+lineNum;",
 	    \ "  }",
+	    \ "  if (lineNum.indexOf('W') == -1) {",
+	    \ "    lineNum = 'W1'+lineNum;",
+	    \ "  }",
+	    \ "  var lineElem = document.getElementById(lineNum);"
 	    \ ])
     endif
-    call append(style_start, [
-	  \ "",
-	  \ "/* function to open any folds containing a jumped-to line before jumping to it */",
-	  \ "function JumpToLine()",
-	  \ "{",
-	  \ "  var lineNum;",
-	  \ "  lineNum = window.location.hash;",
-	  \ "  lineNum = lineNum.substr(1); /* strip off '#' */",
-	  \ "",
-	  \ "  if (lineNum.indexOf('L') == -1) {",
-	  \ "    lineNum = 'L'+lineNum;",
-	  \ "  }",
-	  \ "  if (lineNum.indexOf('W') == -1) {",
-	  \ "    lineNum = 'W1'+lineNum;",
-	  \ "  }",
-	  \ "  lineElem = document.getElementById(lineNum);"
-	  \ ])
 
     " Insert javascript to toggle matching folds open and closed in all windows,
     " if dynamic folding is active.
@@ -648,11 +658,13 @@
 	    \ ])
     endif
 
-    " insert script tag; javascript is always needed for the line number
-    " normalization for URL hashes
-    call append(style_start, [
-	  \ "<script type='text/javascript'>",
-	  \ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
+    if s:uses_script
+      " insert script tag; javascript is always needed for the line number
+      " normalization for URL hashes
+      call append(style_start, [
+	    \ "<script type='text/javascript'>",
+	    \ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
+    endif
 
     " Insert styles from all the generated html documents and additional styles
     " for the table-based layout of the side-by-side diff. The diff should take
@@ -767,7 +779,7 @@
     if user_settings.no_pre == 0
       call tohtml#GetOption(user_settings,
 	    \ 'expand_tabs',
-	    \ &expandtab || &ts != 8 || user_settings.number_lines ||
+	    \ &expandtab || &ts != 8 || &vts != '' || user_settings.number_lines ||
 	    \   (user_settings.dynamic_folds && !user_settings.no_foldcolumn))
     else
       let user_settings.expand_tabs = 1