Commit Graph

553 Commits

Author SHA1 Message Date
zeertzjq
f39b33ee49 vim-patch:9.0.0411: only created files can be cleaned up with one call
Problem:    Only created files can be cleaned up with one call.
Solution:   Add flags to mkdir() to delete with a deferred function.
            Expand the writefile() name to a full path to handle changing
            directory.

6f14da15ac

vim-patch:8.2.3742: dec mouse test fails without gnome terminfo entry

Problem:    Dec mouse test fails without gnome terminfo entry.
Solution:   Check if there is a gnome entry. Also fix 'acd' test on
            MS-Windows. (Dominique Pellé, closes vim/vim#9282)

f589fd3e10

Cherry-pick test_autochdir.vim changes from patch 9.0.0313.
Cherry-pick test_autocmd.vim changes from patch 9.0.0323.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-16 15:04:41 +08:00
ii14
04933b1ea9 refactor: remove redundant casts 2023-04-07 21:08:16 +02:00
ii14
9408f2dcf7 refactor: remove redundant const char * casts 2023-04-07 19:40:57 +02:00
ii14
7190dba017 refactor: remove use of reserved c++ keywords
libnvim couldn't be easily used in C++ due to the use of reserved keywords.

Additionally, add explicit casts to *alloc function calls used in inline
functions, as C++ doesn't allow implicit casts from void pointers.
2023-04-06 22:39:50 +02:00
ii14
371823d407 refactor: make error message definitions const
message.c functions now take const char * as a format. Error message
definitions can be made const.
2023-04-05 21:13:53 +02:00
bfredl
d6ecead364 refactor(screen): screen.c delenda est
drawscreen.c vs screen.c makes absolutely no sense.
The screen exists only to draw upon it, therefore helper functions
are distributed randomly between screen.c and the file that
does the redrawing. In addition screen.c does a lot of drawing on the
screen.

It made more sense for vim/vim as our grid.c is their screen.c

Not sure if we want to dump all the code for option chars into
optionstr.c, so keep these in a optionchar.c for now.
2023-03-14 13:37:43 +01:00
Justin M. Keyes
ce0fddf5ae feat: try to recover from missing tempdir #22573
Problem:
If vim_tempdir mysteriously goes missing (typically by "antivirus" on
Windows), any plugins using tempname() will be broken for the rest of
the session. #1432 #9833 https://groups.google.com/g/vim_use/c/ef55jNm5czI
Steps:
    mkdir foo
    TMPDIR=./foo nvim
    :echo tempname()
    !rm -r foo
    :echo tempname()
    tempname() still uses the foo path even though it was deleted.

Solution:
- Don't assume that vim_tempdir exists.
- If it goes missing once, retry vim_mktempdir and log (silently) an error.
- If it goes missing again, retry vim_mktempdir and show an error.

Rejected in Vim for performance reasons:
  https://groups.google.com/g/vim_use/c/qgRob9SWDv8/m/FAOFVVcDTv0J
  https://groups.google.com/g/vim_dev/c/cogp-Vye4oo/m/d_SVFXBbnnoJ
But, logging shows that `vim_gettempdir` is not called frequently.

Fixes #1432
Fixes #9833
Fixes #11250
Related: stdpath("run") f50135a32e
2023-03-09 05:07:36 -08:00
dundargoc
6cab36e5b7 refactor: replace char_u with char or uint8_t (#22400)
Work on https://github.com/neovim/neovim/issues/459
2023-03-04 20:10:00 +08:00
bfredl
166b149d5b refactor(build): remove unused stdlib function and include checks
In addition: merge some checks for the same feature into one
test_compile. This reduces the total number of test compiles
which speeds up the cmake configure stage.
2023-03-03 14:19:46 +01:00
Ghjuvan Lacambre
d34c64e342 feat: $NVIM_APPNAME #22128
This commit implements the ability to control all of the XDG paths
Neovim should use. This is done by setting an environment variable named
NVIM_APPNAME. For example, setting $NVIM_APPNAME makes Neovim look for
its configuration directory in $XDG_CONFIG_HOME/$NVIM_APPNAME instead of
$XDG_CONFIG_HOME/nvim.

If NVIM_APPNAME is not set or is an empty string, "nvim" will be used as
default.

The usecase for this feature is to enable an easy way to switch from
configuration to configuration. One might argue that the various $XDG
environment variables can already be used for this usecase. However,
setting $XDG environment variables also affects tools spawned by Neovim.
For example, while setting $XDG_CONFIG_HOME will enable Neovim to use a
different configuration directory, it will also prevent Git from finding
its "default" configuration.

Closes https://github.com/neovim/neovim/issues/21691
2023-02-16 04:15:02 -08:00
Lewis Russell
f006313e95 Merge pull request #22056 from lewis6991/refactor/fileio_more
refactor `fileio.c`
2023-02-15 16:45:20 +00:00
dundargoc
7224c889e0 build: enable MSVC level 3 warnings (#21934)
MSVC has 4 different warning levels: 1 (severe), 2 (significant), 3
(production quality) and 4 (informational). Enabling level 3 warnings
mostly revealed conversion problems, similar to GCC/clang -Wconversion
flag.
2023-02-11 10:25:24 +01:00
Lewis Russell
6aee2336ca refactor(fileio.c): normalize ifdefs
As well as improving readbability, this also avoids all Treesitter
parsing errors which cannot handle elaborate use of the preprocessor.
2023-02-01 11:14:21 +00:00
Lewis Russell
b3d304df93 refactor(fileio.c): remove HAVE_ACL ifdefs 2023-02-01 11:14:20 +00:00
Lewis Russell
c1a3865c47 refactor(fileio.c): factor out backup creation 2023-01-31 17:20:12 +00:00
Lewis Russell
33a183e898 refactor(fileio.c): make unreadable expression readable 2023-01-31 17:18:57 +00:00
Lewis Russell
eacdece354 refactor(fileio.c): factor out file info calc 2023-01-31 17:18:54 +00:00
Lewis Russell
cb3be2c766 refactor(fileio.c): factor out buf_write post autocmds 2023-01-31 17:16:41 +00:00
Lewis Russell
842cf780a6 refactor(fileio.c): do not use macros for error handling 2023-01-31 17:15:51 +00:00
Lewis Russell
9417a3d98a refactor(fileio.c): reduce scope of locals 2023-01-31 14:00:08 +00:00
Lewis Russell
253a4d7074 refactor(fileio.c): more bools 2023-01-31 11:20:35 +00:00
Lewis Russell
b001f25204 refactor(fileio.c): factor out autocmd handling from buf_write() 2023-01-31 11:20:35 +00:00
Lewis Russell
f4b1f0d042 refactor(fileio.c): remove HAS_BW_FLAGS 2023-01-31 11:20:35 +00:00
Lewis Russell
740f6ae168 refactor(fileio.c): refactor buf_write_bytes (2) 2023-01-31 11:20:34 +00:00
Lewis Russell
f770e05c87 refactor(fileio.c): refactor buf_write_bytes 2023-01-31 11:20:34 +00:00
Lewis Russell
99149153c4 refactor(fileio.c): refactor vim_rename() 2023-01-31 11:20:34 +00:00
Lewis Russell
b7d09695c4 refactor(fileio.c): refactor match_file_path() 2023-01-31 11:20:34 +00:00
zeertzjq
b4c4c232ba fix(fileio.c): don't use uninitialized memory (#22031) 2023-01-28 13:06:45 +08:00
Lewis Russell
3c2bb1b2be refactor(fileio.c): reduce scope of locals 2023-01-26 15:17:23 +00:00
Lewis Russell
f08051c2e6 feat!: make iconv a non-optional dep 2023-01-23 16:33:45 +00:00
zeertzjq
1c16d0994d refactor: change char_u to uint8_t or char in sha256.c/undo.c (#21914)
Use uint8_t for bytes in hashes as it doesn't make sense for them to be signed.
2023-01-21 08:58:57 +08:00
dundargoc
4c531714ff refactor: replace char_u with char 25 (#21838)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-01-19 22:25:56 +08:00
dundargoc
8a4285d563 refactor: replace char_u with char 24 (#21823)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-01-18 21:17:11 +08:00
dundargoc
0344bfad0f refactor: replace char_u with char 22 (#21786)
Work on https://github.com/neovim/neovim/issues/459
2023-01-17 21:17:40 +08:00
dundargoc
e89c39d6f0 refactor: replace char_u with char 21 (#21779)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-01-14 15:58:28 +08:00
dundargoc
50f03773f4 refactor: replace char_u with char 18 (#21237)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-01-09 22:37:34 +08:00
dundargoc
1492094003 refactor: replace char_u with char 17 - remove STRLCPY (#21235)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-01-09 21:13:06 +08:00
dundargoc
08c2c74806 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2023-01-09 17:03:40 +08:00
zeertzjq
4dd793a256 vim-patch:9.0.1132: code is indented more than needed (#21626)
Problem:    Code is indented more than needed.
Solution:   Use an early return to reduce indentation. (Yegappan Lakshmanan,
            closes vim/vim#11769)

dc4daa3a39

Omit expand_autoload_callback(): only applies to Vim9 script.

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-01-03 14:55:00 +08:00
Justin M. Keyes
a283a99165 refactor: eliminate os_unix.c #21621 2023-01-02 14:56:17 -08:00
zeertzjq
5322bf99e6 vim-patch:8.2.0711: temp directory might be cleared (#21614)
Problem:    With a long running Vim the temp directory might be cleared on
            some systems.
Solution:   Lock the temp directory. (closes vim/vim#6044)

b2d0e51366
2023-01-02 20:37:13 +08:00
Justin M. Keyes
a5207304dd refactor: rename mch_get_acl => os_get_acl 2022-12-16 17:40:06 +01:00
zeertzjq
1145a9b248 feat(aucmd_win): allow crazy things with hidden buffers (#21250)
Problem:    Crash when doing crazy things with hidden buffers.
Solution:   Dynamically allocate the list of autocommand windows.
2022-12-02 20:39:24 +08:00
zeertzjq
3173d07564 vim-patch:9.0.0965: using one window for executing autocommands is insufficient
Problem:    Using one window for executing autocommands is insufficient.
Solution:   Use up to five windows for executing autocommands.

e76062c078

N/A patches for version.c:

vim-patch:9.0.0966: some compilers don't allow a declaration after a label

Problem:    Some compilers don't allow a declaration after a label.
Solution:   Move the declaration to the start of the block. (John Marriott)

f86490ed4f

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-29 20:36:31 +08:00
dundargoc
3b96ccf7d3 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-11-28 14:53:35 +01:00
Dundar Göc
40f3f75867 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-11-19 16:27:10 +01:00
Gregory Anders
6d9c3d903e refactor: deprecate 'secure' option
Now that 'exrc' files must be explicitly marked trusted there is no need
to constrain what can be done in them.
2022-11-17 08:23:41 -07:00
dundargoc
66360675cf build: allow IWYU to fix includes for all .c files
Allow Include What You Use to remove unnecessary includes and only
include what is necessary. This helps with reducing compilation times
and makes it easier to visualise which dependencies are actually
required.

Work on https://github.com/neovim/neovim/issues/549, but doesn't close
it since this only works fully for .c files and not headers.
2022-11-15 10:30:03 +01:00
zeertzjq
0d8e8d36ec vim-patch:8.2.1919: assert_fails() setting emsg_silent changes normal execution (#20998)
Problem:    Assert_fails() setting emsg_silent changes normal execution.
Solution:   Use a separate flag in_assert_fails.

28ee892ac4

Cherry-pick no_wait_return from patch 9.0.0846.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-11 17:50:52 +08:00
dundargoc
731cdde28e refactor: fix clang-tidy warnings
Enable and fix bugprone-misplaced-widening-cast warning.

Fix some modernize-macro-to-enum and readability-else-after-return
warnings, but don't enable them. While the warnings can be useful, they
are in general too noisy to enable.
2022-11-06 11:44:10 +01:00