commit 4765d4e0599704b6251fc39346118656341d39e9
parent 00c2e7d89c282db40551918a73900e1e17e0de56
Author: Jan Edmund Lazo <jan.lazo@mail.utoronto.ca>
Date: Sat, 12 Jul 2025 00:17:45 -0400
vim-patch:8.1.1584: the evalfunc.c file is getting too big
Problem: The evalfunc.c file is getting too big.
Solution: Move channel and job related functions to channel.c.
https://github.com/vim/vim/commit/0a1f56fcfe31be929e9cd8c3d81a984c960e4180
---
N/A patches below:
vim-patch:8.1.0770: inconsistent use of ELAPSED_FUNC
Problem: Inconsistent use of ELAPSED_FUNC.
Solution: Consistently use ELAPSED_FUNC. Also turn ELAPSED_TYPE into a
typedef. (Ozaki Kiichi, closes vim/vim#3815)
https://github.com/vim/vim/commit/1ac56c2d11da5ffa44db23e1fd0c533d02ab2f66
vim-patch:8.1.0914: code related to findfile() is spread out
Problem: Code related to findfile() is spread out.
Solution: Put findfile() related code into a new source file. (Yegappan
Lakshmanan, closes vim/vim#3934)
https://github.com/vim/vim/commit/5fd0f5052f9a312bb4cfe7b4176b1211d45127ee
vim-patch:8.1.1004: function "luaV_setref()" not covered with tests
Problem: Function "luaV_setref()" not covered with tests.
Solution: Add a test. (Dominique Pelle, closes vim/vim#4089)
https://github.com/vim/vim/commit/e165f63598b58bfdac0168583aa1ef75fbf7be6d
vim-patch:8.1.1551: warning for shadowing popup_dragwin
Problem: Warning for shadowing popup_dragwin. (Dominique Pelle)
Solution: Add missing change.
https://github.com/vim/vim/commit/6c17543b5634ccccedfbffa4993e9fbd4a990067
vim-patch:8.1.1629: terminal function help is in the wrong file
Problem: Terminal function help is in the wrong file.
Solution: Move the function details to terminal.txt.
https://github.com/vim/vim/commit/6bf2c6264b5ebbe4981751840c5a8b69da08e744
vim-patch:8.1.1641: garbage collection may run at a wrong moment
Problem: Garbage collection may run at a wrong moment. (Trygve Aaberge)
Solution: Postpone garbage collection while parsing messages. (closes vim/vim#4620)
https://github.com/vim/vim/commit/6cc7e21412487ff8bd531c73ac9325f5ba2409a9
vim-patch:8.1.1703: breaking out of loop by checking window pointer insufficient
Problem: Breaking out of loop by checking window pointer is insufficient.
Solution: Check the window ID and the buffer number. (closes vim/vim#4683)
https://github.com/vim/vim/commit/61386408063a2300d7d7f42c5156f66f6252fb54
vim-patch:8.1.1802: missing change to call_callback()
Problem: Missing change to call_callback().
Solution: Add missing change.
https://github.com/vim/vim/commit/b2129068a55261bea1e293a6a1ce8491a03e7de6
vim-patch:8.1.1853: timers test is still flaky
Problem: Timers test is still flaky.
Solution: Compute the time to sleep more accurately.
https://github.com/vim/vim/commit/52953194afccbcb6c2fd013b7a9e2cfbf202b9d0
---
Seems N/A now because of commit 09370eae7756b07bb8f1f116b690b22aec7ec563
---
vim-patch:8.1.2200: crash when memory allocation fails
Problem: Crash when memory allocation fails.
Solution: Check for NULL curwin and curbuf. (Christian Brabandt,
closes vim/vim#4839)
https://github.com/vim/vim/commit/1cac70953d3c012453ea85b1308a8b1f94359c26
vim-patch:8.2.3922: cannot build with dynamic Ruby 3.1
Problem: Cannot build with dynamic Ruby 3.1.
Solution: Add "_EXTRA" variables for CI. Add missing functions. (Ozaki
Kiichi, closes vim/vim#9420)
https://github.com/vim/vim/commit/8bb3fe4d4dcd27c02e903f6772fdc8fe2e9eba70
vim-patch:9.0.0546: supporting Ruby 1.8 makes code complicated
Problem: Supporting Ruby 1.8 makes code complicated.
Solution: Drop Ruby 1.8 support, it is ancient. (Ken Takata, closes vim/vim#11195)
https://github.com/vim/vim/commit/236ccbf6f8a671a45b773de4b34558ecfdf9ac02
vim-patch:9.0.0928: using Ruby LDFLAGS may cause build problems
Problem: Using Ruby LDFLAGS may cause build problems.
Solution: Do not add Ruby LDFLAGS to Vim's LDFLAGS. (Zdenek Dohnal,
closes vim/vim#11592)
https://github.com/vim/vim/commit/1d822afaf66a84fab71c84521fd92db11d2c8925
vim-patch:9.1.1382: if_ruby: unused compiler warnings from ruby internals
Problem: if_ruby: unused compiler warnings from ruby internals
Solution: disable -Wunused-parameter for if_ruby internal code
(Philip H.)
closes: vim/vim#17297
https://github.com/vim/vim/commit/411730e277c408f89c82ae7dbb1ebfa71ec0f4e5
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat:
2 files changed, 64 insertions(+), 62 deletions(-)
diff --git a/src/nvim/channel.c b/src/nvim/channel.c
@@ -17,6 +17,7 @@
#include "nvim/errors.h"
#include "nvim/eval.h"
#include "nvim/eval/encode.h"
+#include "nvim/eval/funcs.h"
#include "nvim/eval/typval.h"
#include "nvim/event/loop.h"
#include "nvim/event/multiqueue.h"
@@ -24,6 +25,7 @@
#include "nvim/event/rstream.h"
#include "nvim/event/socket.h"
#include "nvim/event/wstream.h"
+#include "nvim/ex_cmds.h"
#include "nvim/garray.h"
#include "nvim/gettext_defs.h"
#include "nvim/globals.h"
@@ -1001,3 +1003,65 @@ Array channel_all_info(Arena *arena)
}
return ret;
}
+
+/// "prompt_setcallback({buffer}, {callback})" function
+void f_prompt_setcallback(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
+{
+ Callback prompt_callback = { .type = kCallbackNone };
+
+ if (check_secure()) {
+ return;
+ }
+ buf_T *buf = tv_get_buf(&argvars[0], false);
+ if (buf == NULL) {
+ return;
+ }
+
+ if (argvars[1].v_type != VAR_STRING || *argvars[1].vval.v_string != NUL) {
+ if (!callback_from_typval(&prompt_callback, &argvars[1])) {
+ return;
+ }
+ }
+
+ callback_free(&buf->b_prompt_callback);
+ buf->b_prompt_callback = prompt_callback;
+}
+
+/// "prompt_setinterrupt({buffer}, {callback})" function
+void f_prompt_setinterrupt(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
+{
+ Callback interrupt_callback = { .type = kCallbackNone };
+
+ if (check_secure()) {
+ return;
+ }
+ buf_T *buf = tv_get_buf(&argvars[0], false);
+ if (buf == NULL) {
+ return;
+ }
+
+ if (argvars[1].v_type != VAR_STRING || *argvars[1].vval.v_string != NUL) {
+ if (!callback_from_typval(&interrupt_callback, &argvars[1])) {
+ return;
+ }
+ }
+
+ callback_free(&buf->b_prompt_interrupt);
+ buf->b_prompt_interrupt = interrupt_callback;
+}
+
+/// "prompt_setprompt({buffer}, {text})" function
+void f_prompt_setprompt(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
+{
+ if (check_secure()) {
+ return;
+ }
+ buf_T *buf = tv_get_buf(&argvars[0], false);
+ if (buf == NULL) {
+ return;
+ }
+
+ const char *text = tv_get_string(&argvars[1]);
+ xfree(buf->b_prompt_text);
+ buf->b_prompt_text = xstrdup(text);
+}
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c
@@ -5241,52 +5241,6 @@ static void f_printf(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
}
}
-/// "prompt_setcallback({buffer}, {callback})" function
-static void f_prompt_setcallback(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
-{
- Callback prompt_callback = { .type = kCallbackNone };
-
- if (check_secure()) {
- return;
- }
- buf_T *buf = tv_get_buf(&argvars[0], false);
- if (buf == NULL) {
- return;
- }
-
- if (argvars[1].v_type != VAR_STRING || *argvars[1].vval.v_string != NUL) {
- if (!callback_from_typval(&prompt_callback, &argvars[1])) {
- return;
- }
- }
-
- callback_free(&buf->b_prompt_callback);
- buf->b_prompt_callback = prompt_callback;
-}
-
-/// "prompt_setinterrupt({buffer}, {callback})" function
-static void f_prompt_setinterrupt(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
-{
- Callback interrupt_callback = { .type = kCallbackNone };
-
- if (check_secure()) {
- return;
- }
- buf_T *buf = tv_get_buf(&argvars[0], false);
- if (buf == NULL) {
- return;
- }
-
- if (argvars[1].v_type != VAR_STRING || *argvars[1].vval.v_string != NUL) {
- if (!callback_from_typval(&interrupt_callback, &argvars[1])) {
- return;
- }
- }
-
- callback_free(&buf->b_prompt_interrupt);
- buf->b_prompt_interrupt = interrupt_callback;
-}
-
/// "prompt_getprompt({buffer})" function
static void f_prompt_getprompt(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
FUNC_ATTR_NONNULL_ALL
@@ -5307,22 +5261,6 @@ static void f_prompt_getprompt(typval_T *argvars, typval_T *rettv, EvalFuncData
rettv->vval.v_string = xstrdup(buf_prompt_text(buf));
}
-/// "prompt_setprompt({buffer}, {text})" function
-static void f_prompt_setprompt(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
-{
- if (check_secure()) {
- return;
- }
- buf_T *buf = tv_get_buf(&argvars[0], false);
- if (buf == NULL) {
- return;
- }
-
- const char *text = tv_get_string(&argvars[1]);
- xfree(buf->b_prompt_text);
- buf->b_prompt_text = xstrdup(text);
-}
-
/// "prompt_getinput({buffer})" function
static void f_prompt_getinput(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
FUNC_ATTR_NONNULL_ALL