Commit Graph

4183 Commits

Author SHA1 Message Date
ZyX
0fe11fe70a shada: Add generator key to the header
For use in viminfo→shada converters, plugins that allow editing ShaDa files or
any other software which generates ShaDa files for whatever purpose.
2015-10-08 22:00:49 +03:00
ZyX
127e63fc17 shada: Use same iteration end conditions as with other iterators 2015-10-08 22:00:49 +03:00
ZyX
b87c65d7b9 eval: Use proper iteration end condition 2015-10-08 22:00:48 +03:00
ZyX
aa4d0bb728 eval: Reorder checks in var_shada_iter 2015-10-08 22:00:48 +03:00
ZyX
c57c569000 shada: Also expand file name obtained from &shada option 2015-10-08 22:00:48 +03:00
ZyX
5d47fe124a shada.h: Remove newline after INCLUDE_GENERATED_DECLARATIONS section 2015-10-08 22:00:47 +03:00
ZyX
f59ef120e1 eval: Remove incorrect NONNULL_RET attributes 2015-10-08 22:00:47 +03:00
ZyX
2ba138b2f9 *: Fix problems with clang+asan Release build 2015-10-08 22:00:47 +03:00
ZyX
22906265a2 mark: Clear marks in some cases, but do not do useless job in free_\* 2015-10-08 22:00:46 +03:00
ZyX
be45e75026 shada: Refuse to write ShaDa file when ShaDa was disabled 2015-10-08 22:00:46 +03:00
ZyX
e2c3ea4445 os/time: Make Timestamp be 64-bit unsigned integer 2015-10-08 22:00:46 +03:00
ZyX
0caf17d0e8 search: When freeing search patterns also clear them 2015-10-08 22:00:45 +03:00
ZyX
d1830e1433 config: Check order and endianess even when cross-compiling 2015-10-08 22:00:45 +03:00
ZyX
b249529676 functests: Make one recover_spec test also use gdb or valgrind 2015-10-08 22:00:45 +03:00
ZyX
804e074096 eval,functests: Reference all additional_* items created by ShaDa 2015-10-08 22:00:45 +03:00
ZyX
0d15b35d49 shada,config: Use CMake to determine endianess and be64toh existence 2015-10-08 22:00:44 +03:00
ZyX
8f7ddfb9a4 documentation: Update vim differences list, reference critical errors 2015-10-08 22:00:44 +03:00
ZyX
369081d1c4 shada: Fix crash in hmll_insert
This problem made test64 to crash. Description of the bug: when removing entry
from history when removed entry is not the last one it puts one element to
free_entries list, but ignores free entries starting from last_free_element.

Possible solutions:
1. First working: simply populate free_entries list with entries which are still
   free, starting from last_free_element.
2. Better (wastes less CPU): after free_entries list size goes to zero (which is
   the initial value) continue using last_free_element.
3. Even better (less memory): note that element from the list is *only* removed
   before adding another one. So replace free_entries array with one item.

Also renamed last_free_element to last_free_entry: in any case most of the lines
which mention it were altered.
2015-10-08 22:00:43 +03:00
ZyX
0960e16908 functests: Disable some tests when running with address sanitizer
Ref #1350
2015-10-08 22:00:43 +03:00
ZyX
9afa45e639 shada: Fix -Wstrict-aliasing gcc error
Also removes theoretically possible unaligned memory access when computing
be64toh() argument.
2015-10-08 22:00:43 +03:00
ZyX
bcb60b0a64 shada: Fix unused variable warning when using Release build 2015-10-08 22:00:42 +03:00
ZyX
bcd8789609 ex_getln: Return something from hist_type2char without asserts
Otherwise QuickBuild shows a warning that control may reach end of non-void
function.
2015-10-08 22:00:42 +03:00
ZyX
5941380f49 mark: Avoid address sanitizer error 2015-10-08 22:00:42 +03:00
ZyX
e4c0741206 ops: Fix access to unsaved register when iterating over registers 2015-10-08 22:00:41 +03:00
ZyX
689390210a mark: Fix out-of-bounds array access when iterating over global marks 2015-10-08 22:00:41 +03:00
ZyX
1a348f8ed8 ops: Fix “conditional … depends on unitialized …” error in op_yank_reg 2015-10-08 22:00:40 +03:00
ZyX
597da19777 shada: Fix incompatible pointer types error in non-glibc builds 2015-10-08 22:00:40 +03:00
ZyX
563f5c2650 shada: Fix memory leak when reading registers from ShaDa file
Occures once register from ShaDa file overwrites non-empty register in the
current instance.
2015-10-08 22:00:40 +03:00
ZyX
9b53acffb5 shada: Avoid “conditional … depends on initialized value” error
Error can be seen in some errors_spec.lua tests.
2015-10-08 22:00:40 +03:00
ZyX
1889ee329f shada: Allow moving jump index past the end
idx == len + 1 indicates that no jumplist entry is currently used.
2015-10-08 22:00:40 +03:00
ZyX
17c69258a7 shada: Use same merging code for jumps and changes 2015-10-08 22:00:39 +03:00
ZyX
9d8184c65a shada: Move common jump/change merging code into a macros 2015-10-08 22:00:39 +03:00
ZyX
f9ae1caf7e shada: Fix jump list merger code 2015-10-08 22:00:39 +03:00
ZyX
a4b2698a1f shada: Move all default values to an array of ShadaEntry structs 2015-10-08 22:00:39 +03:00
ZyX
0564b30ef5 shada: Fix linter errors 2015-10-08 22:00:38 +03:00
ZyX
74d5084139 shada,functests: Add tests for merging ShaDa data 2015-10-08 22:00:38 +03:00
ZyX
0a334f9d33 shada: Merge changes regardless whether they are from current instance 2015-10-08 22:00:37 +03:00
ZyX
fcb3e96cbd undo: When reading persistent undo file give marks current time
Guess this is better then zero time which will give ShaDa marks the priority
almost always.
2015-10-08 22:00:37 +03:00
ZyX
4dc3bc8fc1 shada,functests: Make sure that v:oldfiles list is reset on :rshada! 2015-10-08 22:00:37 +03:00
ZyX
c9963872ef shada: Always use merging when reading jumps and changes 2015-10-08 22:00:36 +03:00
ZyX
4371842bcc shada: Call regtilde when reading last replacement string 2015-10-08 22:00:36 +03:00
ZyX
830c8bd23e functests: Add a number of “generic” functional tests 2015-10-08 22:00:36 +03:00
ZyX
c5554cbb87 shada: Use hash for searching for history entries 2015-10-08 22:00:35 +03:00
ZyX
bcdda63e3a shada: Allocate all hashes on stack 2015-10-08 22:00:35 +03:00
ZyX
fd4d5521a3 shada,functests: Use special sd_reader function for skipping 2015-10-08 22:00:34 +03:00
ZyX
17b5d27d85 functests: Move wshada and sdrcmd commands to helpers 2015-10-08 22:00:34 +03:00
ZyX
42fbfd3aee shada: Add warning about removing/renaming temporary file 2015-10-08 22:00:30 +03:00
ZyX
1542fc221e shada,functests: Improve detection of invalid ShaDa files
It appears that large portion of non-ShaDa ASCII text files may be parsed as
a ShaDa file because it is mostly recognized as a sequence of unknown entries:
all ASCII non-control characters are recognized as FIXUINT shada objects, so
text like

    #!/bin/sh

    powerline "$@" 2>&1 | tee -a powerline

(with trailing newline) will be recognized as a correct ShaDa file containing
single unknown entry with type 0x23 (dec 35, '#'), timestamp 0x21 (dec 33, '!')
and length 0x2F (dec 47, '/') without this commit. With it parsing this entry
will fail.
2015-10-08 22:00:29 +03:00
ZyX
1e06792099 scripts: Improve shadacat to work with unknown items 2015-10-08 22:00:29 +03:00
ZyX
d8b0cd5c17 documentation: Add extended ShaDa format description 2015-10-08 22:00:28 +03:00