aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| * shada: Call regtilde when reading last replacement stringZyX2015-10-08
| |
| * shada: Use hash for searching for history entriesZyX2015-10-08
| |
| * shada: Allocate all hashes on stackZyX2015-10-08
| |
| * shada,functests: Use special sd_reader function for skippingZyX2015-10-08
| |
| * shada: Add warning about removing/renaming temporary fileZyX2015-10-08
| |
| * shada,functests: Improve detection of invalid ShaDa filesZyX2015-10-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * ex_getln: Refactor HIST_\* list of macros to enumZyX2015-10-08
| |
| * shada: When packing header, pack mapping keys as strings, not binaryZyX2015-10-08
| |
| * shada,functests: Test compatibility supportZyX2015-10-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For compatibility the following things are done: 1. Items with type greater then greatest type are ignored when reading and copied when writing. 2. Registers with unknown name are ignored when reading and blindly copied when writing. 3. Registers with unknown type are ignored when reading and merged as usual when writing. 4. Local and global marks with unknown names are ignored when reading. When writing global marks are blindly copied and local marks are also blindly copied, but only if file they are attached to fits in the `'N` limit defined in &shada. Unknown local mark’s timestamp is also taken into account when calculating which files exactly should fit into this limit. 5. History items with unknown type are ignored when reading and blindly copied when writing. 6. Unknown keys found in register, local marks, global marks, changes, jumps and search pattern entries are read to additional_data Dictionary and dumped (of course, unless any of these elements were not overwritten later). It obviously works only for values conversible to Object type. 7. Additional elements found in replacement string and history entries are read to additional_elements Array and dumped (same: only if they were not overwritten later). Again this works only for elements conversible to Object type. 8. Additional elements found in variable entries are simply ignored when reading. When writing *new* variables they will be preserved during merging, but that’s all. Variable values dumped from current NeoVim session never have additional elements.
| * shada: Fix GCC -Wconversion warnings in srni_flags definitionsZyX2015-10-08
| |
| * shada: Synchronize sd_writer file before closingZyX2015-10-08
| |
| * shada: Do not allow empty keysZyX2015-10-08
| |
| * shada: When reading marks or registers, free items when set failsZyX2015-10-08
| |
| * *: Make ShaDa code use VimL values for additional_\* dataZyX2015-10-08
| |
| * shada,documentation: Extend read error handling, handle write errorsZyX2015-10-08
| | | | | | | | | | | | | | | | 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.
| * shada,functests: Test how ShaDa support code reacts on errorsZyX2015-10-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * shada: Make all mapping keys have at most 2 byte lengthZyX2015-10-08
| | | | | | | | Now all keys are defined in a way that makes it easy to redefine if needed.
| * shada: Do not handle EINTR in open_fileZyX2015-10-08
| | | | | | | | It is already handled by libuv which is used by os_open.
| * shada: Do not export shada_read_fileZyX2015-10-08
| | | | | | | | | | Unlike some wrapper functions it is not used actually, so no need to export it. Also removed ShadaPosition typedef which was not used.
| * shada: Translate errors and add error codesZyX2015-10-08
| | | | | | | | | | | | | | | | | | | | 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.
| * shada: Only check errno if read/write returned -1ZyX2015-10-08
| | | | | | | | | | | | | | 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).
| * shada: Put pointer to the close function into reader/writer structureZyX2015-10-08
| |
| * shada: Handle all possible msgpack_unpacker_next returnsZyX2015-10-08
| |
| * viminfo: Remove old codeZyX2015-10-08
| |
| * shada: Add support for merging everything like described in the docZyX2015-10-08
| |
| * shada: Do not copy history entries when writingZyX2015-10-08
| |
| * shada: Do not save search pattern/sub string when it is olderZyX2015-10-08
| |
| * shada: Use os_strerror in place of strerror in some placesZyX2015-10-08
| |
| * shada: Use os_mkdir_recurse to create directory for ShaDa fileZyX2015-10-08
| |
| * shada: Refactor history merger to use statically sized 2linked listZyX2015-10-08
| | | | | | | | | | | | | | Also fixes the error: when writing shada files existing history items may be freed. Warning: valgrind reports some memory leaks.
| * shada: Refactor history merging support to separate functionsZyX2015-10-08
| |
| * shada: Preserve existing file permissionsZyX2015-10-08
| |
| * shada: Populate v:oldfilesZyX2015-10-08
| |
| * shada: Save v:hlsearch valueZyX2015-10-08
| |
| * main: Silence -Wunused-result in main.c for shada_read_fileZyX2015-10-08
| |
| * shada: Add more size_t castsZyX2015-10-08
| | | | | | | | As usual, GCC is overparanoid with -Wconversion.
| * Deprecate &viminfo and :[rw]v, add &shada and :[rw]shZyX2015-10-08
| |
| * Replace references to viminfo in various placesZyX2015-10-08
| |
| * shada: Use “write then rename” variant by default for writing shadaZyX2015-10-08
| |
| * shada: Test that history string does not contain zero byteZyX2015-10-08
| | | | | | | | | | | | | | 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.
| * shada: Add support for converting strings that are read or writtenZyX2015-10-08
| |
| * shada: Refactor file reading/writing to use os_openZyX2015-10-08
| |
| * shada,functests: Refactor shada items skippingZyX2015-10-08
| |
| * shada: Reassign some entry types to WantInfo and WantMarksZyX2015-10-08
| | | | | | | | | | kShaDaWantMarks now loads only local file change list and file-local marks. kShaDaWantInfo now loads global marks and jump list.
| * shada: Add support for dumping and restoring buffer listZyX2015-10-08
| |
| * shada: Use pre-populated set of buffers on removable mediaZyX2015-10-08
| | | | | | | | | | Should be faster then constantly running shada_removable for each buffer many times.
| * shada: Do not record removable buffers and marksZyX2015-10-08
| |
| * shada: Add support for dumping/restoring bufs changes and win jumpsZyX2015-10-08
| |
| * shada: Initial support for merging historyZyX2015-10-08
| | | | | | | | Currently only merges history when reading ShaDa file. No tests yet.
| * shada: Skip reading some items if neededZyX2015-10-08
| | | | | | | | Avoids unneeded malloc()s/free()s and lots of code for parsing.