diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 2b7b987..8a968b9 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.4.  Last change: 2015 Mar 21
+*autocmd.txt*   For Vim version 7.4.  Last change: 2015 Jul 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 4923273..beb0137 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt*      For Vim version 7.4.  Last change: 2015 Feb 03
+*diff.txt*      For Vim version 7.4.  Last change: 2015 Jul 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -132,8 +132,9 @@
 		if the current window does not have 'diff' set then no options
 		in it are changed.
 
-The ":diffoff" command resets the relevant options to the values they had when
-using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode.
+The `:diffoff` command resets the relevant options to the values they had when
+using `:diffsplit`, `:diffpatch` , `:diffthis`. or starting Vim in diff mode.
+When using `:diffoff` twice the last saved values are restored.
 Otherwise they are set to their default value:
 
 	'diff'		off
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index d139b12..b24a2a3 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2015 Jun 26
+*eval.txt*	For Vim version 7.4.  Last change: 2015 Jul 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1468,7 +1468,9 @@
 		requires |+extra_search|. Setting this variable to zero acts
 		the like |:nohlsearch| command, setting it to one acts like >
 			let &hlsearch = &hlsearch
-<
+<		Note that the value is restored when returning from a
+		function. |function-search-undo|.
+
 					*v:insertmode* *insertmode-variable*
 v:insertmode	Used for the |InsertEnter| and |InsertChange| autocommand
 		events.  Values:
@@ -4895,7 +4897,7 @@
 		separated with CR will result in a single long line (unless a
 		NL appears somewhere).
 		All NUL characters are replaced with a NL character.
-		When {binary/append} contains "b" binary mode is used:
+		When {binary} contains "b" binary mode is used:
 		- When the last line ends in a NL an extra empty list item is
 		  added.
 		- No CR characters are removed.
@@ -5853,6 +5855,24 @@
 		When {skipcc} set to 1, Composing characters are ignored.
 		Also see |strlen()|, |strdisplaywidth()| and |strwidth()|.
 
+		
+		{skipcc} is only available after 7.4.755.  For backward
+		compatibility, you can define a wrapper function: >
+		    if has("patch-7.4.755")
+		      function s:strchars(str, skipcc)
+			return strchars(a:str, a:skipcc)
+		      endfunction
+		    else
+		      function s:strchars(str, skipcc)
+			if a:skipcc
+			  return strlen(substitute(a:str, ".", "x", "g"))
+			else
+			  return strchars(a:str)
+			endif
+		      endfunction
+		    endif
+<
+
 strdisplaywidth({expr}[, {col}])			*strdisplaywidth()*
 		The result is a Number, which is the number of display cells
 		String {expr} occupies on the screen when it starts at {col}.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index e371a74..209e1ba 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.4.  Last change: 2015 Jun 19
+*options.txt*	For Vim version 7.4.  Last change: 2015 Jul 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 37cd8a2..caf1f1f 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -5210,6 +5210,7 @@
 complete_CTRL-Y	insert.txt	/*complete_CTRL-Y*
 complete_add()	eval.txt	/*complete_add()*
 complete_check()	eval.txt	/*complete_check()*
+completed_item-variable	eval.txt	/*completed_item-variable*
 completion-functions	usr_41.txt	/*completion-functions*
 complex-change	change.txt	/*complex-change*
 complex-repeat	repeat.txt	/*complex-repeat*
@@ -8492,6 +8493,7 @@
 v:charconvert_to	eval.txt	/*v:charconvert_to*
 v:cmdarg	eval.txt	/*v:cmdarg*
 v:cmdbang	eval.txt	/*v:cmdbang*
+v:completed_item	eval.txt	/*v:completed_item*
 v:count	eval.txt	/*v:count*
 v:count1	eval.txt	/*v:count1*
 v:ctype	eval.txt	/*v:ctype*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 4a09f17..6c60708 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2015 Jun 25
+*todo.txt*      For Vim version 7.4.  Last change: 2015 Jul 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -76,6 +76,12 @@
 Better .ico file for Windows. (Pat Suwalski, 2015 Feb 13)
 Waiting for response on remark from Edward Fox.
 
+Add Tera Term language plugins. (Ken Takata, 2015 Jul 3)
+
+RXVT sends a different background color response. (Higashi, 2015 Jul 5)
+
+More tests for :diffoff. Olaf Dabrunz, (2015 Jul 4)
+
 Problem that a previous silent ":throw" causes a following try/catch not to
 work. (ZyX, 2013 Sep 28)
 
@@ -96,11 +102,6 @@
 C indent: should recognize C11 raw strings. (Mark Lodato, 2015 Mar 1)
 Need to recognize R"string" for 'cindent'.
 
-Updated phpcomplete. (Mikolaj Machowski, 2015 May 6)
-
-Patch to make ":difoff" not reset the saved values, so that it can be used
-twice. (Olaf Dabrunz, 2015 Jun 21)
-
 Crash when changing the 'tags' option from a remote command.
 (Benjamin Fritz, 2015 Mar 18, stack trace Mar 20)
 
@@ -121,9 +122,6 @@
 (Christian Brabandt, 2015 Jun 12)
 Is this the right solution?
 
-Patch for langmap not working properly with mapping in Command-line mode.
-Issue 376.
-
 Patch to add grepfile(). (Scott Prager, 2015 May 26)
 Work in progress.
 
@@ -136,21 +134,22 @@
 
 Better greek spell checking.  Issue 299.
 
-Patch to make :diffoff work twice. (Olaf Dabrunz, 2015 Jun 23)
-
-Patch to add 'completeselect' option.  Specifies how to select a candidate in
-insert completion. (Shougo, 2013 May 29)
-Update to add to existing 'completeopt'. 2013 May 30
-Updated update: Shougo 2015 Jun 12
+Add 'fixeol' option, default on, so that people who have problems with fixing
+the missing EOL can switch it off?
 
 When complete() first argument is before where insert started and 'backspace'
 is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19)
 
 Patch to fix equivalence classes in regexp. (Dominique Pelle, 2015 Jun 2)
 
+Test 44 fails when [[=A=]] is changed to [[=À=]].  Caused by getcmdline() not
+handling the 0x80 as a second byte correctly?  (Dominique Pelle, 2015 Jun 10)
+
 Weird encryption problems on Windows. (Ben Fritz, 2015 Feb 13)
 Goes away when disabling the swap file. (might1, Feb 16)
 
+Patch to add an OptionSet autocommand event. (Christian Brabandt, 2015 Jun 25)
+
 MS-Windows: Crash opening very long file name starting with "\\".
 (Christian Brock, 2012 Jun 29)
 
@@ -188,9 +187,6 @@
 Patch for an extra argument to matchadd() for conceal. (Christian Brabandt,
 2015 Feb 17, update Feb 19)
 
-Patch to add v:completed_item. (Shougo Matsu, 2013 Nov 29).
-Update 2015 Jun 20.
-
 Patch to add :lockjumps. (Carlo Baldassi, 2015 May 25)
 OK to not block marks?
 
@@ -430,8 +426,6 @@
 Several syntax file match "^\s*" which may get underlined if that's in the
 highlight group.  Add a "\zs" after it?
 
-Go through more coverity reports.
-
 The undo file name can get too long. (Issue 346)
 For the path use a hash instead of dir%dir%dir%name  hash%name.
 
@@ -639,6 +633,8 @@
 
 Patch to add ":ldo" and ":cdo", execute commands over quickfix list and
 location list. (Yegappan Lakshmanan, 2013 Jun 2, update 2015 Mar 21)
+Update by Florian Walch, 2015 Jul 1.
+Yegappan will send an update in July.
 
 8   "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters.
     Patch by Christian Wellenbrock, 2013 Jul 5.
@@ -1088,8 +1084,8 @@
 ":function f(x) keepjumps" creates a function where every command is executed
 like it has ":keepjumps" before it.
 
-Coverity: ask someone to create new user: Dominique.
-Check if there are new reported defects: http://scan.coverity.com/rung2.html
+Coverity: Check if there are new reported defects:
+https://scan.coverity.com/projects/241
 
 Patch to support :undo absolute jump to file save number. (Christian Brabandt,
 2010 Nov 5)
@@ -1125,7 +1121,7 @@
 
 Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
 
-For running gvim on an USB stick: avoid the OLE registration.  Use a command
+For running gvim on a USB stick: avoid the OLE registration.  Use a command
 line argument -noregister.
 
 When using an expression in 'statusline' leading white space sometimes goes
diff --git a/runtime/doc/vim.man b/runtime/doc/vim.man
index 5b9b83c..9390caa 100644
--- a/runtime/doc/vim.man
+++ b/runtime/doc/vim.man
@@ -1,4 +1,4 @@
-VIM(1)                                                                  VIM(1)
+VIM(1)                      General Commands Manual                     VIM(1)
 
 
 
@@ -21,13 +21,13 @@
        to edit all kinds of plain text.  It is especially useful  for  editing
        programs.
 
-       There  are a lot of enhancements above Vi: multi level undo, multi win-
+       There  are a lot of enhancements above Vi: multi level undo, multi win‐
        dows and buffers, syntax highlighting, command line  editing,  filename
        completion,   on-line   help,   visual  selection,  etc..   See  ":help
        vi_diff.txt" for a summary of the differences between Vim and Vi.
 
        While running Vim a lot of help can be obtained from the  on-line  help
-       system,  with the ":help" command.  See the ON-LINE HELP section below.
+       system, with the ":help" command.  See the ON-LINE HELP section below.
 
        Most often Vim is started to edit a single file with the command
 
@@ -38,44 +38,44 @@
             vim [options] [filelist]
 
        If the filelist is missing, the editor will start with an empty buffer.
-       Otherwise  exactly  one out of the following four may be used to choose
+       Otherwise exactly one out of the following four may be used  to  choose
        one or more files to be edited.
 
-       file ..     A list of filenames.  The first one  will  be  the  current
-                   file  and  read  into the buffer.  The cursor will be posi-
+       file ..     A  list  of  filenames.   The first one will be the current
+                   file and read into the buffer.  The cursor  will  be  posi‐
                    tioned on the first line of the buffer.  You can get to the
-                   other  files with the ":next" command.  To edit a file that
+                   other files with the ":next" command.  To edit a file  that
                    starts with a dash, precede the filelist with "--".
 
-       -           The file to edit is read from  stdin.   Commands  are  read
+       -           The  file  to  edit  is read from stdin.  Commands are read
                    from stderr, which should be a tty.
 
        -t {tag}    The file to edit and the initial cursor position depends on
-                   a "tag", a sort of goto label.  {tag} is looked up  in  the
+                   a  "tag",  a sort of goto label.  {tag} is looked up in the
                    tags file, the associated file becomes the current file and
-                   the associated command is executed.  Mostly  this  is  used
-                   for  C  programs,  in  which case {tag} could be a function
+                   the  associated  command  is executed.  Mostly this is used
+                   for C programs, in which case {tag}  could  be  a  function
                    name.  The effect is that the file containing that function
-                   becomes  the  current  file and the cursor is positioned on
+                   becomes the current file and the cursor  is  positioned  on
                    the start of the function.  See ":help tag-commands".
 
        -q [errorfile]
-                   Start in quickFix mode.  The file [errorfile] is  read  and
-                   the  first  error is displayed.  If [errorfile] is omitted,
+                   Start  in  quickFix mode.  The file [errorfile] is read and
+                   the first error is displayed.  If [errorfile]  is  omitted,
                    the  filename  is  obtained  from  the  'errorfile'  option
-                   (defaults  to  "AztecC.Err"  for the Amiga, "errors.err" on
-                   other systems).  Further errors can be jumped to  with  the
+                   (defaults to "AztecC.Err" for the  Amiga,  "errors.err"  on
+                   other  systems).   Further errors can be jumped to with the
                    ":cn" command.  See ":help quickfix".
 
-       Vim behaves differently, depending on the name of the command (the exe-
+       Vim behaves differently, depending on the name of the command (the exe‐
        cutable may still be the same file).
 
        vim       The "normal" way, everything is default.
 
-       ex        Start in Ex mode.  Go to Normal mode with the ":vi"  command.
+       ex        Start  in Ex mode.  Go to Normal mode with the ":vi" command.
                  Can also be done with the "-e" argument.
 
-       view      Start  in read-only mode.  You will be protected from writing
+       view      Start in read-only mode.  You will be protected from  writing
                  the files.  Can also be done with the "-R" argument.
 
        gvim gview
@@ -87,102 +87,102 @@
                  be done with the "-y" argument.
 
        rvim rview rgvim rgview
-                 Like the above, but with restrictions.  It will not be possi-
-                 ble  to  start  shell  commands, or suspend Vim.  Can also be
+                 Like the above, but with restrictions.  It will not be possi‐
+                 ble to start shell commands, or suspend  Vim.   Can  also  be
                  done with the "-Z" argument.
 
 OPTIONS
-       The options may be given in  any  order,  before  or  after  filenames.
+       The  options  may  be  given  in  any order, before or after filenames.
        Options without an argument can be combined after a single dash.
 
-       +[num]      For  the  first  file the cursor will be positioned on line
-                   "num".  If "num" is missing, the cursor will be  positioned
+       +[num]      For the first file the cursor will be  positioned  on  line
+                   "num".   If "num" is missing, the cursor will be positioned
                    on the last line.
 
-       +/{pat}     For  the  first  file  the cursor will be positioned on the
-                   first occurrence of {pat}.  See ":help search-pattern"  for
-                   the available search patterns.
+       +/{pat}     For the first file the cursor will  be  positioned  in  the
+                   line  with  the  first  occurrence  of  {pat}.   See ":help
+                   search-pattern" for the available search patterns.
 
        +{command}
 
        -c {command}
-                   {command}  will  be  executed after the first file has been
-                   read.  {command} is interpreted as an Ex command.   If  the
-                   {command}  contains  spaces  it  must be enclosed in double
-                   quotes (this depends on the shell that is used).   Example:
+                   {command} will be executed after the first  file  has  been
+                   read.   {command}  is interpreted as an Ex command.  If the
+                   {command} contains spaces it must  be  enclosed  in  double
+                   quotes  (this depends on the shell that is used).  Example:
                    Vim "+set si" main.c
                    Note: You can use up to 10 "+" or "-c" commands.
 
-       -S {file}   {file}  will be sourced after the first file has been read.
-                   This is equivalent to -c "source  {file}".   {file}  cannot
+       -S {file}   {file} will be sourced after the first file has been  read.
+                   This  is  equivalent  to -c "source {file}".  {file} cannot
                    start with '-'.  If {file} is omitted "Session.vim" is used
                    (only works when -S is the last argument).
 
        --cmd {command}
-                   Like using "-c", but the command is  executed  just  before
-                   processing  any  vimrc file.  You can use up to 10 of these
+                   Like  using  "-c",  but the command is executed just before
+                   processing any vimrc file.  You can use up to 10  of  these
                    commands, independently from "-c" commands.
 
-       -A          If Vim has been compiled with ARABIC  support  for  editing
-                   right-to-left  oriented  files and Arabic keyboard mapping,
-                   this option starts Vim in Arabic  mode,  i.e.  'arabic'  is
+       -A          If  Vim  has  been compiled with ARABIC support for editing
+                   right-to-left oriented files and Arabic  keyboard  mapping,
+                   this  option  starts  Vim  in Arabic mode, i.e. 'arabic' is
                    set.  Otherwise an error message is given and Vim aborts.
 
-       -b          Binary  mode.  A few options will be set that makes it pos-
+       -b          Binary mode.  A few options will be set that makes it  pos‐
                    sible to edit a binary or executable file.
 
-       -C          Compatible.  Set the 'compatible' option.  This  will  make
-                   Vim  behave  mostly  like  Vi,  even  though  a .vimrc file
+       -C          Compatible.   Set  the 'compatible' option.  This will make
+                   Vim behave mostly  like  Vi,  even  though  a  .vimrc  file
                    exists.
 
-       -d          Start in diff mode.  There should be  two,  three  or  four
-                   file  name arguments.  Vim will open all the files and show
+       -d          Start  in  diff  mode.   There should be two, three or four
+                   file name arguments.  Vim will open all the files and  show
                    differences between them.  Works like vimdiff(1).
 
-       -d {device} Open {device} for use as a terminal.  Only  on  the  Amiga.
+       -d {device} Open  {device}  for  use as a terminal.  Only on the Amiga.
                    Example: "-d con:20/30/600/150".
 
-       -D          Debugging.   Go  to debugging mode when executing the first
+       -D          Debugging.  Go to debugging mode when executing  the  first
                    command from a script.
 
-       -e          Start Vim in Ex mode, just like the executable  was  called
+       -e          Start  Vim  in Ex mode, just like the executable was called
                    "ex".
 
        -E          Start Vim in improved Ex mode, just like the executable was
                    called "exim".
 
-       -f          Foreground.  For the GUI version, Vim  will  not  fork  and
+       -f          Foreground.   For  the  GUI  version, Vim will not fork and
                    detach from the shell it was started in.  On the Amiga, Vim
-                   is not restarted to open a new window.  This option  should
-                   be  used  when  Vim is executed by a program that will wait
-                   for the edit session to finish (e.g. mail).  On  the  Amiga
+                   is  not restarted to open a new window.  This option should
+                   be used when Vim is executed by a program  that  will  wait
+                   for  the  edit session to finish (e.g. mail).  On the Amiga
                    the ":sh" and ":!" commands will not work.
 
-       --nofork    Foreground.   For  the  GUI  version, Vim will not fork and
+       --nofork    Foreground.  For the GUI version, Vim  will  not  fork  and
                    detach from the shell it was started in.
 
-       -F          If Vim has been compiled with  FKMAP  support  for  editing
-                   right-to-left  oriented  files  and Farsi keyboard mapping,
-                   this option starts Vim in  Farsi  mode,  i.e.  'fkmap'  and
-                   'rightleft'  are  set.  Otherwise an error message is given
-                   and Vim aborts.
-
-       -g          If Vim has been compiled  with  GUI  support,  this  option
-                   enables  the  GUI.   If  no GUI support was compiled in, an
-                   error message is given and Vim aborts.
-
-       -h          Give a bit of help about the  command  line  arguments  and
-                   options.  After this Vim exits.
-
-       -H          If Vim has been compiled with RIGHTLEFT support for editing
-                   right-to-left oriented files and Hebrew  keyboard  mapping,
-                   this  option  starts  Vim  in Hebrew mode, i.e. 'hkmap' and
+       -F          If  Vim  has  been  compiled with FKMAP support for editing
+                   right-to-left oriented files and  Farsi  keyboard  mapping,
+                   this  option  starts  Vim  in  Farsi mode, i.e. 'fkmap' and
                    'rightleft' are set.  Otherwise an error message  is  given
                    and Vim aborts.
 
+       -g          If  Vim  has  been  compiled  with GUI support, this option
+                   enables the GUI.  If no GUI support  was  compiled  in,  an
+                   error message is given and Vim aborts.
+
+       -h          Give  a  bit  of  help about the command line arguments and
+                   options.  After this Vim exits.
+
+       -H          If Vim has been compiled with RIGHTLEFT support for editing
+                   right-to-left  oriented  files and Hebrew keyboard mapping,
+                   this option starts Vim in Hebrew  mode,  i.e.  'hkmap'  and
+                   'rightleft'  are  set.  Otherwise an error message is given
+                   and Vim aborts.
+
        -i {viminfo}
-                   When  using  the  viminfo file is enabled, this option sets
-                   the filename to use, instead of the  default  "~/.viminfo".
+                   When using the viminfo file is enabled,  this  option  sets
+                   the  filename  to use, instead of the default "~/.viminfo".
                    This can also be used to skip the use of the .viminfo file,
                    by giving the name "NONE".
 
@@ -190,92 +190,92 @@
 
        -l          Lisp mode.  Sets the 'lisp' and 'showmatch' options on.
 
-       -m          Modifying files is disabled.  Resets  the  'write'  option.
-                   You  can still modify the buffer, but writing a file is not
+       -m          Modifying  files  is  disabled.  Resets the 'write' option.
+                   You can still modify the buffer, but writing a file is  not
                    possible.
 
-       -M          Modifications not allowed.  The  'modifiable'  and  'write'
-                   options  will be unset, so that changes are not allowed and
-                   files can not be written.  Note that these options  can  be
+       -M          Modifications  not  allowed.   The 'modifiable' and 'write'
+                   options will be unset, so that changes are not allowed  and
+                   files  can  not be written.  Note that these options can be
                    set to enable making modifications.
 
-       -N          No-compatible  mode.   Reset the 'compatible' option.  This
-                   will make Vim behave a bit better, but less Vi  compatible,
+       -N          No-compatible mode.  Reset the 'compatible'  option.   This
+                   will  make Vim behave a bit better, but less Vi compatible,
                    even though a .vimrc file does not exist.
 
-       -n          No  swap file will be used.  Recovery after a crash will be
-                   impossible.  Handy if you want to edit a  file  on  a  very
-                   slow  medium  (e.g.  floppy).   Can also be done with ":set
+       -n          No swap file will be used.  Recovery after a crash will  be
+                   impossible.   Handy  if  you  want to edit a file on a very
+                   slow medium (e.g. floppy).  Can also  be  done  with  ":set
                    uc=0".  Can be undone with ":set uc=200".
 
-       -nb         Become an editor server for NetBeans.   See  the  docs  for
+       -nb         Become  an  editor  server  for NetBeans.  See the docs for
                    details.
 
        -o[N]       Open N windows stacked.  When N is omitted, open one window
                    for each file.
 
-       -O[N]       Open N windows side by side.  When N is omitted,  open  one
+       -O[N]       Open  N  windows side by side.  When N is omitted, open one
                    window for each file.
 
        -p[N]       Open N tab pages.  When N is omitted, open one tab page for
                    each file.
 
-       -R          Read-only mode.  The 'readonly' option will  be  set.   You
-                   can still edit the buffer, but will be prevented from acci-
-                   dently overwriting a file.  If you do want to  overwrite  a
-                   file,  add  an  exclamation  mark  to the Ex command, as in
-                   ":w!".  The -R option  also  implies  the  -n  option  (see
-                   below).   The  'readonly'  option  can  be reset with ":set
+       -R          Read-only  mode.   The  'readonly' option will be set.  You
+                   can still edit the buffer, but will be prevented from acci‐
+                   dently  overwriting  a file.  If you do want to overwrite a
+                   file, add an exclamation mark to  the  Ex  command,  as  in
+                   ":w!".   The  -R  option  also  implies  the -n option (see
+                   below).  The 'readonly' option  can  be  reset  with  ":set
                    noro".  See ":help 'readonly'".
 
-       -r          List swap files, with  information  about  using  them  for
+       -r          List  swap  files,  with  information  about using them for
                    recovery.
 
-       -r {file}   Recovery  mode.  The swap file is used to recover a crashed
-                   editing session.  The swap file is a  file  with  the  same
+       -r {file}   Recovery mode.  The swap file is used to recover a  crashed
+                   editing  session.   The  swap  file is a file with the same
                    filename as the text file with ".swp" appended.  See ":help
                    recovery".
 
-       -s          Silent mode.  Only when started as "Ex" or  when  the  "-e"
+       -s          Silent  mode.   Only  when started as "Ex" or when the "-e"
                    option was given before the "-s" option.
 
        -s {scriptin}
-                   The  script file {scriptin} is read.  The characters in the
-                   file are interpreted as if you had typed  them.   The  same
+                   The script file {scriptin} is read.  The characters in  the
+                   file  are  interpreted  as if you had typed them.  The same
                    can be done with the command ":source! {scriptin}".  If the
                    end of the file is reached before the editor exits, further
                    characters are read from the keyboard.
 
        -T {terminal}
-                   Tells  Vim  the  name  of the terminal you are using.  Only
-                   required when the automatic way doesn't work.  Should be  a
-                   terminal  known  to Vim (builtin) or defined in the termcap
+                   Tells Vim the name of the terminal  you  are  using.   Only
+                   required  when the automatic way doesn't work.  Should be a
+                   terminal known to Vim (builtin) or defined in  the  termcap
                    or terminfo file.
 
-       -u {vimrc}  Use the commands in the file {vimrc}  for  initializations.
-                   All  the  other  initializations  are skipped.  Use this to
-                   edit a special kind of files.  It can also be used to  skip
-                   all  initializations by giving the name "NONE".  See ":help
+       -u {vimrc}  Use  the  commands in the file {vimrc} for initializations.
+                   All the other initializations are  skipped.   Use  this  to
+                   edit  a special kind of files.  It can also be used to skip
+                   all initializations by giving the name "NONE".  See  ":help
                    initialization" within vim for more details.
 
-       -U {gvimrc} Use the commands in the file {gvimrc} for  GUI  initializa-
-                   tions.   All the other GUI initializations are skipped.  It
-                   can also be used to skip all GUI initializations by  giving
-                   the  name "NONE".  See ":help gui-init" within vim for more
+       -U {gvimrc} Use  the  commands in the file {gvimrc} for GUI initializa‐
+                   tions.  All the other GUI initializations are skipped.   It
+                   can  also be used to skip all GUI initializations by giving
+                   the name "NONE".  See ":help gui-init" within vim for  more
                    details.
 
-       -V[N]       Verbose.  Give messages about which files are  sourced  and
-                   for  reading and writing a viminfo file.  The optional num-
+       -V[N]       Verbose.   Give  messages about which files are sourced and
+                   for reading and writing a viminfo file.  The optional  num‐
                    ber N is the value for 'verbose'.  Default is 10.
 
-       -v          Start Vim in Vi mode, just like the executable  was  called
-                   "vi".   This  only has effect when the executable is called
+       -v          Start  Vim  in Vi mode, just like the executable was called
+                   "vi".  This only has effect when the executable  is  called
                    "ex".
 
        -w {scriptout}
-                   All the characters that you type are recorded in  the  file
-                   {scriptout},  until  you  exit  Vim.  This is useful if you
-                   want to create a script file to be used with  "vim  -s"  or
+                   All  the  characters that you type are recorded in the file
+                   {scriptout}, until you exit Vim.  This  is  useful  if  you
+                   want  to  create  a script file to be used with "vim -s" or
                    ":source!".  If the {scriptout} file exists, characters are
                    appended.
 
@@ -285,27 +285,27 @@
        -x          Use encryption when writing files.  Will prompt for a crypt
                    key.
 
-       -X          Don't  connect to the X server.  Shortens startup time in a
-                   terminal, but the window title and clipboard  will  not  be
+       -X          Don't connect to the X server.  Shortens startup time in  a
+                   terminal,  but  the  window title and clipboard will not be
                    used.
 
        -y          Start Vim in easy mode, just like the executable was called
-                   "evim" or "eview".  Makes Vim behave like a  click-and-type
+                   "evim"  or "eview".  Makes Vim behave like a click-and-type
                    editor.
 
-       -Z          Restricted  mode.   Works  like  the executable starts with
+       -Z          Restricted mode.  Works like  the  executable  starts  with
                    "r".
 
-       --          Denotes the end of the options.  Arguments after this  will
-                   be  handled  as  a  file  name.  This can be used to edit a
+       --          Denotes  the end of the options.  Arguments after this will
+                   be handled as a file name.  This can  be  used  to  edit  a
                    filename that starts with a '-'.
 
        --echo-wid  GTK GUI only: Echo the Window ID on stdout.
 
        --help      Give a help message and exit, just like "-h".
 
-       --literal   Take file name arguments literally,  do  not  expand  wild-
-                   cards.   This has no effect on Unix where the shell expands
+       --literal   Take  file  name  arguments  literally, do not expand wild‐
+                   cards.  This has no effect on Unix where the shell  expands
                    wildcards.
 
        --noplugin  Skip loading plugins.  Implied by -u NONE.
@@ -315,18 +315,18 @@
                    is given and the files are edited in the current Vim.
 
        --remote-expr {expr}
-                   Connect to a Vim server, evaluate {expr} in  it  and  print
+                   Connect  to  a  Vim server, evaluate {expr} in it and print
                    the result on stdout.
 
        --remote-send {keys}
                    Connect to a Vim server and send {keys} to it.
 
        --remote-silent
-                   As  --remote,  but  without  the  warning when no server is
+                   As --remote, but without the  warning  when  no  server  is
                    found.
 
        --remote-wait
-                   As --remote, but Vim does not exit  until  the  files  have
+                   As  --remote,  but  Vim  does not exit until the files have
                    been edited.
 
        --remote-wait-silent
@@ -337,31 +337,31 @@
                    List the names of all Vim servers that can be found.
 
        --servername {name}
-                   Use {name} as the server name.  Used for the  current  Vim,
+                   Use  {name}  as the server name.  Used for the current Vim,
                    unless used with a --remote argument, then it's the name of
                    the server to connect to.
 
        --socketid {id}
-                   GTK GUI only: Use the GtkPlug  mechanism  to  run  gvim  in
+                   GTK  GUI  only:  Use  the  GtkPlug mechanism to run gvim in
                    another window.
 
        --version   Print version information and exit.
 
 ON-LINE HELP
-       Type  ":help"  in Vim to get started.  Type ":help subject" to get help
-       on a specific subject.  For example: ":help ZZ" to  get  help  for  the
-       "ZZ"  command.   Use <Tab> and CTRL-D to complete subjects (":help cmd-
-       line-completion").  Tags are present to jump from one place to  another
+       Type ":help" in Vim to get started.  Type ":help subject" to  get  help
+       on  a  specific  subject.   For example: ":help ZZ" to get help for the
+       "ZZ" command.  Use <Tab> and CTRL-D to complete subjects  (":help  cmd‐
+       line-completion").   Tags are present to jump from one place to another
        (sort of hypertext links, see ":help").  All documentation files can be
        viewed in this way, for example ":help syntax.txt".
 
 FILES
        /usr/local/lib/vim/doc/*.txt
-                      The Vim documentation files.  Use ":help  doc-file-list"
+                      The  Vim documentation files.  Use ":help doc-file-list"
                       to get the complete list.
 
        /usr/local/lib/vim/doc/tags
-                      The  tags file used for finding information in the docu-
+                      The tags file used for finding information in the  docu‐
                       mentation files.
 
        /usr/local/lib/vim/syntax/syntax.vim
@@ -381,7 +381,7 @@
        ~/.gvimrc      Your personal gvim initializations.
 
        /usr/local/lib/vim/optwin.vim
-                      Script used for the ":options" command, a  nice  way  to
+                      Script  used  for  the ":options" command, a nice way to
                       view and set options.
 
        /usr/local/lib/vim/menu.vim
@@ -391,11 +391,11 @@
                       Script to generate a bug report.  See ":help bugs".
 
        /usr/local/lib/vim/filetype.vim
-                      Script  to  detect  the type of a file by its name.  See
+                      Script to detect the type of a file by  its  name.   See
                       ":help 'filetype'".
 
        /usr/local/lib/vim/scripts.vim
-                      Script to detect the type of a  file  by  its  contents.
+                      Script  to  detect  the  type of a file by its contents.
                       See ":help 'filetype'".
 
        /usr/local/lib/vim/print/*.ps
@@ -410,8 +410,8 @@
 AUTHOR
        Most of Vim was made by Bram Moolenaar, with a lot of help from others.
        See ":help credits" in Vim.
-       Vim is based on Stevie, worked on by: Tim Thompson,  Tony  Andrews  and
-       G.R.  (Fred) Walter.  Although hardly any of the original code remains.
+       Vim  is  based  on Stevie, worked on by: Tim Thompson, Tony Andrews and
+       G.R. (Fred) Walter.  Although hardly any of the original code remains.
 
 BUGS
        Probably.  See ":help todo" for a list of known problems.
diff --git a/runtime/doc/xxd.man b/runtime/doc/xxd.man
index 057c8e9..7e1097f 100644
--- a/runtime/doc/xxd.man
+++ b/runtime/doc/xxd.man
@@ -1,4 +1,4 @@
-XXD(1)                                                                  XXD(1)
+XXD(1)                      General Commands Manual                     XXD(1)
 
 
 
@@ -14,30 +14,29 @@
        xxd  creates a hex dump of a given file or standard input.  It can also
        convert a hex dump back to its original binary form.  Like  uuencode(1)
        and  uudecode(1)  it allows the transmission of binary data in a `mail-
-       safe' ASCII representation, but has the advantage of decoding to  stan-
+       safe' ASCII representation, but has the advantage of decoding to  stan‐
        dard output.  Moreover, it can be used to perform binary file patching.
 
 OPTIONS
-       If no infile is given, standard input is read.  If infile is  specified
-       as  a  `-'  character,  then input is taken from standard input.  If no
+       If  no infile is given, standard input is read.  If infile is specified
+       as a `-' character, then input is taken from  standard  input.   If  no
        outfile is given (or a `-' character is in its place), results are sent
        to standard output.
 
-       Note  that  a  "lazy" parser is used which does not check for more than
-       the first option letter, unless the option is followed by a  parameter.
-       Spaces  between  a single option letter and its parameter are optional.
+       Note that a "lazy" parser is used which does not check  for  more  than
+       the  first option letter, unless the option is followed by a parameter.
+       Spaces between a single option letter and its parameter  are  optional.
        Parameters to options can be specified in decimal, hexadecimal or octal
        notation.  Thus -c8, -c 8, -c 010 and -cols 8 are all equivalent.
 
-
        -a | -autoskip
-              toggle  autoskip: A single '*' replaces nul-lines.  Default off.
+              toggle autoskip: A single '*' replaces nul-lines.  Default off.
 
        -b | -bits
               Switch to bits (binary digits) dump, rather than hexdump.   This
               option  writes octets as eight digits "1"s and "0"s instead of a
               normal hexadecimal dump. Each line is preceded by a line  number
-              in  hexadecimal and followed by an ascii (or ebcdic) representa-
+              in  hexadecimal and followed by an ascii (or ebcdic) representa‐
               tion. The command line switches -r, -p, -i do not work with this
               mode.
 
@@ -50,25 +49,34 @@
               to EBCDIC.  This does not change the hexadecimal representation.
               The option is meaningless in combinations with -r, -p or -i.
 
+       -e     Switch to little-endian hexdump.  This option treats byte groups
+              as words in little-endian byte order.  The default grouping of 4
+              bytes may be changed using -g.  This option only applies to hex‐
+              dump,  leaving  the  ASCII (or EBCDIC) representation unchanged.
+              The command line switches -r, -p, -i do not work with this mode.
+
        -g bytes | -groupsize bytes
               separate the output of every <bytes> bytes (two  hex  characters
-              or eight bit-digits each) by a whitespace.  Specify -g 0 to sup-
-              press grouping.  <Bytes> defaults to 2 in normal mode and  1  in
-              bits  mode.   Grouping  does  not apply to postscript or include
-              style.
+              or eight bit-digits each) by a whitespace.  Specify -g 0 to sup‐
+              press grouping.  <Bytes> defaults to 2 in normal mode, 4 in lit‐
+              tle-endian  mode and 1 in bits mode.  Grouping does not apply to
+              postscript or include style.
 
        -h | -help
               print a summary of available commands and exit.  No hex  dumping
               is performed.
 
        -i | -include
-              output  in C include file style. A complete static array defini-
+              output  in C include file style. A complete static array defini‐
               tion is written (named after the input file), unless  xxd  reads
               from stdin.
 
        -l len | -len len
               stop after writing <len> octets.
 
+       -o offset
+              add <offset> to the displayed file position.
+
        -p | -ps | -postscript | -plain
               output  in  postscript  continuous  hexdump style. Also known as
               plain hexdump style.
@@ -76,8 +84,8 @@
        -r | -revert
               reverse operation: convert (or patch) hexdump into  binary.   If
               not  writing  to stdout, xxd writes into its output file without
-              truncating it. Use the combination -r -p to read plain hexadeci-
-              mal dumps without line number information and without a particu-
+              truncating it. Use the combination -r -p to read plain hexadeci‐
+              mal dumps without line number information and without a particu‐
               lar column layout. Additional  Whitespace  and  line-breaks  are
               allowed anywhere.
 
@@ -101,7 +109,7 @@
 CAVEATS
        xxd -r has some builtin magic while evaluating line number information.
        If the output file is seekable, then the linenumbers at  the  start  of
-       each  hexdump  line may be out of order, lines may be missing, or over-
+       each  hexdump  line may be out of order, lines may be missing, or over‐
        lapping. In these cases xxd will lseek(2) to the next position. If  the
        output  file  is  not  seekable,  only  gaps are allowed, which will be
        filled by null-bytes.
@@ -112,8 +120,8 @@
        input line after reading enough columns of hexadecimal data (see option
        -c). This also means, that changes to the printable ascii  (or  ebcdic)
        columns  are  always  ignored.  Reverting a plain (or postscript) style
-       hexdump with xxd -r -p does not depend on the correct  number  of  col-
-       umns.  Here  anything  that  looks  like a pair of hex-digits is inter-
+       hexdump with xxd -r -p does not depend on the correct  number  of  col‐
+       umns.  Here  anything  that  looks  like a pair of hex-digits is inter‐
        preted.
 
        Note the difference between
@@ -218,7 +226,6 @@
        % stty < /dev/term/b -echo -opost -isig -icanon min 1
        % echo -n foo > /dev/term/b
 
-
 RETURN VALUES
        The following error values are returned:
 
@@ -256,7 +263,4 @@
        <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
        Small changes by Bram Moolenaar.  Edited by Juergen Weigert.
 
-
-
-
 Manual page for xxd               August 1996                           XXD(1)
