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
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
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
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
ee282cf49e
shada: Add support for converting strings that are read or written
2015-10-08 21:59:57 +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
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
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
0fe9679101
shada: Initial support for merging history
...
Currently only merges history when reading ShaDa file. No tests yet.
2015-10-08 21:59:53 +03:00
ZyX
94ed7ba03b
shada: Skip reading some items if needed
...
Avoids unneeded malloc()s/free()s and lots of code for parsing.
2015-10-08 21:59:53 +03:00
ZyX
5e34d4873b
main: Read marks at startup
...
I do not know why marks were not read originally, but without this change marks
are not going to be read at startup when Vim starts without arguments.
2015-10-08 21:59:52 +03:00
ZyX
38c688d7be
shada: Use glibc functions to convert from big endian, add a fallback
2015-10-08 21:59:51 +03:00
ZyX
244dbe3a77
viminfo: First version of ShaDa file dumping
...
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).
2015-10-08 21:59:51 +03:00
ZyX
0fdaab995e
mark: Fix valgrind error in mark.c
...
Caused by using memcpy for assigning one structure to another.
2015-10-08 21:59:51 +03:00
ZyX
c71dca0cbd
os/fs: Define os_strerror as an alias to uv_strerror
...
It is not needed to know that os/* uses libuv.
2015-10-08 21:59:50 +03:00
Björn Linse
57d3a2a52f
api: represent api type String as msgpack type STR. closes #1250
2015-10-08 20:18:46 +02:00
Daniel Hahler
8cfcf01475
tui: fix_terminfo: Handle "tmux" like "screen". #3422
...
Closes #3399
2015-10-04 14:20:27 -04:00
bambu
2788f7fcc8
menu: support :emenu invoked by cmenu map.
2015-10-03 03:02:05 -04:00
Thiago de Arruda
2182cd6081
ex_docmd: Fix terminal mode check condition for ex_normal
...
Using the `curbuf->terminal` condition alone is wrong since it does not
necessarily mean nvim is in terminal mode. It needs to be used with
`State & TERM_FOCUS` because the current buffer could have changed without
`terminal_enter` exiting.
Close #3403
2015-10-01 15:22:49 -03:00
Thiago de Arruda
0ca3f03c19
tui: Fix queueing of large chunks of input
...
Take the return value of input_enqueue into consideration, waiting for the main
thread to consume input. Close #1714 #3377 .
2015-10-01 15:22:49 -03:00
Thiago de Arruda
394c0c4402
rbuffer: Enhance rbuffer_reset to work with filled RBuffers
2015-10-01 15:22:49 -03:00
Thiago de Arruda
0e4e69e52e
os/input: Don't advance past incomplete sequences in input_enqueue
...
This allows callers to incrementally process buffers that are filled by
incomplete chunks more easily.
2015-10-01 15:22:49 -03:00
Thiago de Arruda
1143b416ab
tui: Don't use 'pastetoggle' for automatic pasting
...
Add a new special key that can be used by UIs to toggle the 'paste' option and
use it in the TUI instead of the user's 'pastetoggle' value.
Close #2843 #2092
2015-10-01 15:22:48 -03:00
Thiago de Arruda
c1edd07990
shell: Ensure silent bang mappings won't cut output
...
Setting `msg_didout` after `call_shell` is enough as it will cause
`hit_return_msg()` to print on next line.
Close #3269
2015-10-01 15:22:48 -03:00
Justin M. Keyes
afe8a32be0
Merge pull request #3410 from oni-link/fix.spell_suggest
...
spell.c: Fix memory leak
2015-10-01 13:22:02 -04:00
Justin M. Keyes
bb5bf96839
Merge pull request #3407 from oni-link/fix.ga_concat
...
garray.c: Prevent ga_concat() using memcpy(NULL,...)
2015-10-01 13:19:49 -04:00
oni-link
2fb77ba6f9
spell.c: Fix memory leak
2015-10-01 12:34:13 +02:00
oni-link
0320d86d3b
garray.c: Prevent ga_concat() using memcpy(NULL,...)
...
Calling ga_grow(gap, 0) does not reallocate memory for garray gap.
Because of this, gap->ga_data can be NULL after such a call, if gap does
not have memory allocated.
2015-09-30 19:11:07 +02:00
ZyX
b6fdb7bd0f
eval/string(): Share code between msgpackdump() and string()+:echo
2015-09-30 10:12:35 +03:00
ZyX
6da3fadd9f
eval/msgpackdump(): Use copyID for protecting against recursive input
...
Should be faster then O(depth) iteration, but removes const qualifiers.
2015-09-30 10:09:21 +03:00