Problem: too many strlen() calls in cmdhist.c
Solution: refactor code and remove strlen() calls
(John Marriott)
closes: vim/vim#158888df07d0ca3
Co-authored-by: John Marriott <basilisk@internode.on.net>
This also makes shada reading slightly faster due to avoiding
some copying and allocation.
Use keysets to drive decoding of msgpack maps for shada entries.
Allow Include What You Use to remove unnecessary includes and only
include what is necessary. This helps with reducing compilation times
and makes it easier to visualise which dependencies are actually
required.
Work on https://github.com/neovim/neovim/issues/549, but doesn't close
it since this only works fully for .c files and not headers.
Problem: Command line history code is spread out.
Solution: Put the code in a new file. (Yegappan Lakshmanan, closesvim/vim#4779)
Also graduate the +cmdline_hist feature.
d7663c22c6