Commit Graph

30 Commits

Author SHA1 Message Date
zeertzjq
a89088b7a0 vim-patch:8.1.1413: error when the drive of the swap file was disconnected (#30009)
Problem:    Error when the drive of the swap file was disconnected.
Solution:   Try closing and re-opening the swap file. (closes vim/vim#4378)

b58a4b938c

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2024-08-08 08:11:53 +00:00
dundargoc
1813661a61 refactor(IWYU): fix headers
Remove `export` pramgas from defs headers as it causes IWYU to believe
that the definitions from the defs headers comes from main header, which
is not what we really want.
2024-01-11 21:37:23 +01:00
dundargoc
735aa4c4c8 refactor: remove redundant struct names
A struct can be anonymous if only its typedef is used.
2024-01-02 21:59:12 +01:00
dundargoc
79b6ff28ad refactor: fix headers with IWYU 2023-11-28 22:23:56 +01:00
dundargoc
6c14ae6bfa refactor: rename types.h to types_defs.h 2023-11-27 21:57:51 +01:00
dundargoc
f4aedbae4c build(IWYU): fix includes for undo_defs.h 2023-11-27 19:33:17 +01:00
dundargoc
4f8941c1a5 refactor: replace manual header guards with #pragma once
It is less error-prone than manually defining header guards. Pretty much
all compilers support it even if it's not part of the C standard.
2023-11-12 22:01:28 +01:00
bfredl
87cde88c41 refactor(memfile): change mf_trans and mf_hash from ad-hoc hashtable to Map
Memfile used a private implementation of an open hash table with intrusive collision chains, but there is
no reason to assume the standard khash_t based Map won't work just fine.

Yes, we are taking full ownership and maintenance over memline and memfile.
No one is going to maintain it for us.

Trust the plan.
2023-09-10 13:09:44 +02:00
zeertzjq
7a8402ac31 vim-patch:9.0.1583: get E304 when using 'cryptmethod' "xchacha20v2" (#23790)
Problem:    Get E304 when using 'cryptmethod' "xchacha20v2". (Steve Mynott)
Solution:   Add 4th crypt method to block zero ID check.  Avoid syncing a swap
            file before reading the file. (closes vim/vim#12433)

3a2a60ce4a

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-05-28 08:06:30 +08:00
dundargoc
f2141de9e4 refactor: replace char_u with char 20 (#21714)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-01-13 07:35:39 +08:00
Dundar Göc
73207cae61 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-09-06 16:44:37 +02:00
dundargoc
40be47e0fa refactor: format all C files under nvim/ #15977
* refactor: format all C files under nvim
* refactor: disable formatting for Vim-owned files:
    * src/nvim/indent_c.c
    * src/nvim/regexp.c
    * src/nvim/regexp_nfa.c
    * src/nvim/testdir/samples/memfile_test.c
2021-10-12 07:56:52 -07:00
Dundar Göc
11dcf15682 refactor: replace TRUE/FALSE macros with C99 true/false 2021-07-25 21:51:50 +02:00
Felipe Oliveira Carvalho
9ea111d1af Remove maxmem and maxmemtot options
> The option 'maxmem' ('mm') is used to set the maximum memory used for one
> buffer (in kilobytes).  'maxmemtot' is used to set the maximum memory used for
> all buffers (in kilobytes).  The defaults depend on the system used.  These
> are not hard limits, but tell Vim when to move text into a swap file.  If you
> don't like Vim to swap to a file, set 'maxmem' and 'maxmemtot' to a very large
> value.  The swap file will then only be used for recovery.  If you don't want
> a swap file at all, set 'updatecount' to 0, or use the "-n" argument when
> starting Vim.

On today's systems these values are huge (4GB in my machine with 8GB of RAM
since it's set as half the available memory by default) so the limits are
never reached in practice, but Vim wastes a lot of time checking if the limit
was reached.

If the limit is reached Vim starts saving pieces of the swap file that were in
memory to the disk. Said in a different way: Vim implements its own memory
swapping mechanism. This is unnecessary and inefficient since the operating
system already virtualized the memory and will swap to the disk if programs
start using too much memory.

This change does...

1. Reduce the number of config options and need for documentation.
2. Make the code more efficient as we don't have to keep track of memory usage
   nor check if the memory limits were reached to start swapping to disk every
   time we need memory for buffers.
3. Simplify the code. Once `memfile.c` is simple enough it could be replaced by
   actual operating system memory mapping (`mmap`, `MemoryViewOfFile`...).

This change does not prevent Vim to recover changes from swap files since the
swapping code is never triggered with the huge limits set by default.
2017-04-11 00:33:09 +02:00
ZyX
ab19fa1552 *: Fix linter errors
Drops comments `// for …` that do not pass linter for them being unmaintainable 
and fast to becoming incomplete or even incorrect.

Mention @dedmass
2017-04-08 19:20:42 +03:00
dedmass
89deb6ff22 refactor/single-include: memline_defs.h #6465 2017-04-08 04:20:37 +02:00
Eliseo Martínez
8386255803 Review: Remove long_u: memfile: Add to clint. 2014-11-06 22:53:43 +01:00
Eliseo Martínez
09d4133a64 Review: Remove long_u: memfile: Refactor: blocknr_T: long -> int64_t.
Replace long with int64_t.
Apart from being convenient, not using long is required by clint.
2014-11-06 22:53:43 +01:00
Eliseo Martínez
7d4ec612b1 Review: Remove long_u: memfile: Refactor: int -> bool.
Replace int with bool where appropriate.
2014-11-06 22:53:43 +01:00
Eliseo Martínez
96e7f229a5 Review: Remove long_u: memfile: Refactor: bhdr_T.bh_data: char_u* -> void*.
This, in addition to being more correct, allows removing a lot of
explicit casts.
2014-11-06 22:53:42 +01:00
Eliseo Martínez
844d64e9ff Review: Remove long_u: memfile: Refactor: mf_hashtab_T.mht_fixed: Remove.
Unused since 457bb26151.
2014-11-06 22:53:42 +01:00
Eliseo Martínez
200f8ee0e5 Review: Remove long_u: memfile: Refactor: long_u -> size_t.
- memfile_defs.h:
    * hashtab_T: mht_mask: long_u -> size_t.
        Masks are used to truncate keys to a value adequate for an index
        in the array of entries. Value of the mask plus one is the
        current size of the array. Both of those reasons imply the
        soundness of size_t for this type.
    * hashtab_T: mht_count: long_u -> size_t.

- memfile.c:
    * total_mem_used: long_u -> size_t.
    * mf_hash_free_all: idx: long_u -> size_t.
    * mf_hash_add_item: idx: long_u -> size_t.
    * mf_hash_find: idx: long_u -> size_t.
    * mf_hash_grow: i: long_u -> size_t.
    * mf_hash_grow: j: long_u -> size_t.
2014-11-06 22:53:42 +01:00
Eliseo Martínez
7ffed667d4 Review: Remove long_u: memfile: Enable -Wconversion.
- Add memfile.c to converted files list.
- Fix conversion issues:
    * bhdr_T          : bh_page_count : int  -> unsigned.
    * bhdr_T          : bh_flags      : char -> unsigned.
    * mf_new()        : page_count    : int  -> unsigned.
    * mf_get()        : page_count    : int  -> unsigned.
    * mf_release()    : page_count    : int  -> unsigned.
    * mf_alloc_bhdr() : page_count    : int  -> unsigned.
    * mf_trans_add()  : page_count    : int  -> unsigned.
    * mf_put()        : flags         : int  -> unsigned.
2014-11-06 22:53:42 +01:00
Eliseo Martínez
fce201e656 Review: Remove long_u: memfile: Cleanup: Fix naming inconsistencies.
- Drop '_S' suffix for struct names.
- Make struct names match corresponding type's name (just removing '_S' suffix).
- Rename NR_TRANS type/struct (just ugly).
2014-11-06 22:53:41 +01:00
Eliseo Martínez
a69b2e3c40 Review: Remove long_u: memfile: Cleanup: Others.
memfile_defs.h:
- Inline struct definitions in typedefs.
- Move memfile_T definition to this file (weirdly, was in buffer_defs.h).

memfile.c:
- Use C99 style variable declarations. This is, move variable declarations as
  near to first-usage point as possible).
- Modernize old-style function declarations.
- Fix indent at some places (some multiline expressions and the like).
2014-11-06 22:53:41 +01:00
Eliseo Martínez
8fb4097fc6 Review: Remove long_u: memfile: Cleanup: Comments.
- Restyle comments (/// when appropiate, // otherwise).
- Improve comments (add new comments, augment/clarify existing ones).
2014-11-06 22:53:40 +01:00
Nicolas Hillegeer
fb72f1ee37 vim: move long_u from vim.h to types.h
Seems to make no difference to the main binary, but it helps the tests a bit
further along.
2014-07-16 19:05:34 +02:00
John Schmidt
85338fe1d5 Remove cryptography
As discussed in #694, vim encryption uses old,
obsolete algorithms that are poorly implemented.
Since insecure cryptography is worse than no
cryptgraphy, the community voted in favor of
removing all crypto.

Various alternatives to the old crypto is
being discussed in #701.

Closes #694.
2014-05-20 08:31:06 -03:00
Eliseo Martínez
5f795225dc Introduce nvim namespace: Fix define guards.
Change define guards from NEOVIM_XXX_H to NVIM_XXX_H:
- Change header files.
- Change clint correct guard name calculation.
2014-05-15 20:46:02 +02:00
Eliseo Martínez
da51dc9cf2 Introduce nvim namespace: Move files.
Move files from src/ to src/nvim/.
- src/nvim/ becomes the new root dir for nvim executable sources.
- src/libnvim/ is planned to become root dir of the neovim library.
2014-05-15 20:46:01 +02:00