aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_cmds2.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-11-18 15:57:42 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-11-18 15:57:42 -0300
commit9e37c1d3b6b9d0d35d7f7558d3efb555757278c0 (patch)
treeabff58ba79dddfbf4d3667c7fdcf1642546f4c51 /src/nvim/ex_cmds2.c
parenta67fd6f21378bc01b41e5349abff2eb214f6c288 (diff)
parentd971cb169184a1fa59e93a5216635261d8c47e11 (diff)
downloadrneovim-9e37c1d3b6b9d0d35d7f7558d3efb555757278c0.tar.gz
rneovim-9e37c1d3b6b9d0d35d7f7558d3efb555757278c0.tar.bz2
rneovim-9e37c1d3b6b9d0d35d7f7558d3efb555757278c0.zip
Merge PR #1454 'Refactor plugin system'
Diffstat (limited to 'src/nvim/ex_cmds2.c')
-rw-r--r--src/nvim/ex_cmds2.c60
1 files changed, 28 insertions, 32 deletions
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index 1636d62c74..96410897df 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -55,7 +55,6 @@
#include "nvim/os/os.h"
#include "nvim/os/shell.h"
#include "nvim/os/fs_defs.h"
-#include "nvim/os/provider.h"
#include "nvim/api/private/helpers.h"
#include "nvim/api/private/defs.h"
@@ -791,17 +790,17 @@ void ex_profile(exarg_T *eap)
void ex_python(exarg_T *eap)
{
- script_host_execute("python_execute", eap);
+ script_host_execute("python", eap);
}
void ex_pyfile(exarg_T *eap)
{
- script_host_execute_file("python_execute_file", eap);
+ script_host_execute_file("python", eap);
}
void ex_pydo(exarg_T *eap)
{
- script_host_do_range("python_do_range", eap);
+ script_host_do_range("python", eap);
}
@@ -3254,46 +3253,43 @@ char_u *get_locales(expand_T *xp, int idx)
#endif
-static void script_host_execute(char *method, exarg_T *eap)
+static void script_host_execute(char *name, exarg_T *eap)
{
- char *script = (char *)script_get(eap, eap->arg);
+ uint8_t *script = script_get(eap, eap->arg);
if (!eap->skip) {
- Array args = ARRAY_DICT_INIT;
- ADD(args, STRING_OBJ(cstr_to_string(script ? script : (char *)eap->arg)));
- // add current range
- ADD(args, INTEGER_OBJ(eap->line1));
- ADD(args, INTEGER_OBJ(eap->line2));
- Object result = provider_call(method, args);
- // We don't care about the result, so free it just in case a bad provider
- // returned something
- api_free_object(result);
+ list_T *args = list_alloc();
+ // script
+ list_append_string(args, script ? script : eap->arg, -1);
+ // current range
+ list_append_number(args, eap->line1);
+ list_append_number(args, eap->line2);
+ (void)eval_call_provider(name, "execute", args);
}
free(script);
}
-static void script_host_execute_file(char *method, exarg_T *eap)
+static void script_host_execute_file(char *name, exarg_T *eap)
{
- char buffer[MAXPATHL];
- vim_FullName(eap->arg, (uint8_t *)buffer, sizeof(buffer), false);
+ uint8_t buffer[MAXPATHL];
+ vim_FullName(eap->arg, buffer, sizeof(buffer), false);
- Array args = ARRAY_DICT_INIT;
- ADD(args, STRING_OBJ(cstr_to_string(buffer)));
- // add current range
- ADD(args, INTEGER_OBJ(eap->line1));
- ADD(args, INTEGER_OBJ(eap->line2));
- Object result = provider_call(method, args);
- api_free_object(result);
+ list_T *args = list_alloc();
+ // filename
+ list_append_string(args, buffer, -1);
+ // current range
+ list_append_number(args, eap->line1);
+ list_append_number(args, eap->line2);
+ (void)eval_call_provider(name, "execute_file", args);
}
-static void script_host_do_range(char *method, exarg_T *eap)
+static void script_host_do_range(char *name, exarg_T *eap)
{
- Array args = ARRAY_DICT_INIT;
- ADD(args, INTEGER_OBJ(eap->line1));
- ADD(args, INTEGER_OBJ(eap->line2));
- ADD(args, STRING_OBJ(cstr_to_string((char *)eap->arg)));
- Object result = provider_call(method, args);
- api_free_object(result);
+ list_T *args = list_alloc();
+ list_append_number(args, eap->line1);
+ list_append_number(args, eap->line2);
+ list_append_string(args, eap->arg, -1);
+ (void)eval_call_provider(name, "do_range", args);
}