ZyX
82934e8797
shada: Fix GCC -Wconversion warnings in srni_flags definitions
2015-10-08 22:00:25 +03:00
ZyX
278de872f7
shada: Synchronize sd_writer file before closing
2015-10-08 22:00:24 +03:00
ZyX
21056bad57
documentation: Describe forward compatibility limitations
2015-10-08 22:00:24 +03:00
ZyX
2244db67aa
shada: Do not allow empty keys
2015-10-08 22:00:22 +03:00
ZyX
5b3e668f3e
shada: When reading marks or registers, free items when set fails
2015-10-08 22:00:17 +03:00
ZyX
07d9ab26c6
*: Make ShaDa code use VimL values for additional_\* data
2015-10-08 22:00:16 +03:00
ZyX
56174572bc
shada,documentation: Extend read error handling, handle write errors
...
Modifications:
- If file was not written due to write error then writing stops and temporary
file will not be renamed.
- If NeoVim detects that target file is not a ShaDa file then temporary file
will not be renamed.
2015-10-08 22:00:16 +03:00
ZyX
f8169ff24d
documentation: Document ShaDa compatibility features
2015-10-08 22:00:16 +03:00
ZyX
38b8eb3561
scripts: Also print entry offset in shadacat.py
2015-10-08 22:00:16 +03:00
ZyX
e2994a3c62
shada,functests: Test how ShaDa support code reacts on errors
...
Some notes:
- Replaced msgpack_unpacker usage with regular xmalloc’ed buffer. Also since
msgpack_unpack_next (as well as msgpack_unpacker_next) is not ever going to
return MSGPACK_UNPACK_EXTRA_BYTES this condition was checked manually.
Function that does return this status is msgpack_unpack, but it is marked as
obsolete.
- Zero type is checked prior to main switch in shada_read_next_item because
otherwise check would be skipped.
- Zeroing entry at the start of shada_read_next_item makes it safer.
- dedent('') does not work.
- v:oldfiles list is only replaced with bang, if it is NULL or empty.
2015-10-08 22:00:15 +03:00
ZyX
b7ca976f73
shada: Make all mapping keys have at most 2 byte length
...
Now all keys are defined in a way that makes it easy to redefine if needed.
2015-10-08 22:00:15 +03:00
ZyX
21c12cf4e7
shada: Do not handle EINTR in open_file
...
It is already handled by libuv which is used by os_open.
2015-10-08 22:00:15 +03:00
ZyX
931539d108
shada: Do not export shada_read_file
...
Unlike some wrapper functions it is not used actually, so no need to export it.
Also removed ShadaPosition typedef which was not used.
2015-10-08 22:00:14 +03:00
ZyX
8dafa533db
shada: Translate errors and add error codes
...
Notes:
- E136 code greatly changed its meaning: now it is write error and not read
error.
- E195 was removed because shada_read_everything will already do all the
necessary error reporting.
- E886 can be reported by both :rshada and :wshada, but :rshada comes first and
AFAIR it is the only error which is not E575 and can be reported by :rshada.
2015-10-08 22:00:14 +03:00
ZyX
fa8e3f3f20
shada: Only check errno if read/write returned -1
...
According to the manual (POSIX) this is the only case when errno is set by these
functions. This is needed because some functions (e.g. buflist_new) leave errno
set to non-zero value under some conditions (e.g. when opening non-existing
files).
2015-10-08 22:00:14 +03:00
ZyX
40bbaa757e
shada: Put pointer to the close function into reader/writer structure
2015-10-08 22:00:13 +03:00
ZyX
ebf3c86a55
shada: Handle all possible msgpack_unpacker_next returns
2015-10-08 22:00:13 +03:00
ZyX
83785ef98b
viminfo: Remove old code
2015-10-08 22:00:13 +03:00
ZyX
43fe98c9fb
shada: Add support for merging everything like described in the doc
2015-10-08 22:00:13 +03:00
ZyX
4bc053facd
shada: Do not copy history entries when writing
2015-10-08 22:00:12 +03:00
ZyX
5e7a7fc2da
documentation: Document how ShaDa entries should be merged
2015-10-08 22:00:12 +03:00
ZyX
f10960869f
shada: Do not save search pattern/sub string when it is older
2015-10-08 22:00:12 +03:00
ZyX
9d2615df86
shada: Use os_strerror in place of strerror in some places
2015-10-08 22:00:11 +03:00
ZyX
09cbec6476
shada: Use os_mkdir_recurse to create directory for ShaDa file
2015-10-08 22:00:11 +03:00
ZyX
0018b4f579
shada: Refactor history merger to use statically sized 2linked list
...
Also fixes the error: when writing shada files existing history items may be
freed.
Warning: valgrind reports some memory leaks.
2015-10-08 22:00:10 +03:00
ZyX
875d287d4b
functests: Test that history is still accessible after :wshada
2015-10-08 22:00:10 +03:00
ZyX
6f6497f5e0
shada: Refactor history merging support to separate functions
2015-10-08 22:00:10 +03:00
ZyX
b905c8a942
shada: Preserve existing file permissions
2015-10-08 22:00:09 +03:00
ZyX
1d3823a5c9
shada: Populate v:oldfiles
2015-10-08 22:00:09 +03:00
ZyX
f43a5e6926
shada: Save v:hlsearch value
2015-10-08 22:00:08 +03:00
ZyX
7abe20f3d3
main: Silence -Wunused-result in main.c for shada_read_file
2015-10-08 22:00:07 +03:00
ZyX
45ad810341
shada: Add more size_t casts
...
As usual, GCC is overparanoid with -Wconversion.
2015-10-08 22:00:07 +03:00
ZyX
8663983cc4
Deprecate &viminfo and :[rw]v, add &shada and :[rw]sh
2015-10-08 22:00:07 +03:00
ZyX
9cf9c4a586
Replace references to viminfo in various places
2015-10-08 22:00:06 +03:00
ZyX
749cae8662
functests: Fix change list ShaDa test failures
2015-10-08 22:00:06 +03:00
ZyX
602efe856a
shada: Use “write then rename” variant by default for writing shada
2015-10-08 22:00:05 +03:00
ZyX
55712dcdb4
shada: Test that history string does not contain zero byte
...
This test can safely be ignored for other kinds of strings, but history string
contains separator after the last NUL byte and string containing NUL byte inside
thus means that separator will be placed at one position, but seeked at
another.
2015-10-08 22:00:05 +03:00
ZyX
c8c5da875c
functests: Test &encoding support
2015-10-08 22:00:03 +03:00
ZyX
ee282cf49e
shada: Add support for converting strings that are read or written
2015-10-08 21:59:57 +03:00
ZyX
b7ebd16af0
documentation: Update documentation
2015-10-08 21:59:56 +03:00
ZyX
98e8c1f37c
shada: Refactor file reading/writing to use os_open
2015-10-08 21:59:56 +03:00
ZyX
d1ae27ceec
shada,functests: Refactor shada items skipping
2015-10-08 21:59:56 +03:00
ZyX
cf004c0d41
functests: Test dumping and loading change list
2015-10-08 21:59:56 +03:00
ZyX
941ec54aa1
shada: Reassign some entry types to WantInfo and WantMarks
...
kShaDaWantMarks now loads only local file change list and file-local marks.
kShaDaWantInfo now loads global marks and jump list.
2015-10-08 21:59:55 +03:00
ZyX
42536abd33
functests: Add tests for dumping/restoring registers
2015-10-08 21:59:55 +03:00
ZyX
8c93877e1c
shada: Add support for dumping and restoring buffer list
2015-10-08 21:59:55 +03:00
ZyX
4eeafe7f72
shada: Use pre-populated set of buffers on removable media
...
Should be faster then constantly running shada_removable for each buffer many
times.
2015-10-08 21:59:54 +03:00
ZyX
75c9a7e65b
shada: Do not record removable buffers and marks
2015-10-08 21:59:54 +03:00
ZyX
200e62efeb
shada: Add support for dumping/restoring bufs changes and win jumps
2015-10-08 21:59:53 +03:00
ZyX
9ab08c8256
functests: Test loading last search/substitute pattern/replacement
2015-10-08 21:59:53 +03:00