What works:
1. ShaDa file dumping: header, registers, jump list, history, search patterns,
substitute strings, variables.
2. ShaDa file reading: registers, global marks, variables.
Most was not tested.
TODO:
1. Merging.
2. Reading history, local marks, jump and buffer lists.
3. Documentation update.
4. Converting some data from &encoding.
5. Safer variant of dumping viminfo (dump to temporary file then rename).
6. Removing old viminfo code (currently masked with `#if 0` in a ShaDa file for
reference).
Problem: YCM was reporting a much disturbing warning about a missing
newline at the end of some files. This was odd, as the
newlines were there and the warning only was shown for some
files, not for all of them.
Cause: After discussing this issue with @Valloric (see
https://github.com/Valloric/YouCompleteMe/issues/950), it
turned out that not YCM, but libclang is responsible for it.
This is, same compilation flags that produce no warnings with
clang-the-binary on the command line, do produce them with
libclang-the-library when used by YCM.
Solution: Add an extra flag (-Wno_newline_eof) to those extracted from
configuration database before passing them to YCM.