aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2015-08-21 13:38:11 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2015-08-21 13:38:11 -0300
commitc75d5010b742db83462fc4508cf6dba455f79ca7 (patch)
treefd9cc6bd7e8a3eb4aa4f33226225efd660702e90 /src/nvim/eval.c
parentd5b5063622ab9764a851fdf56c60d14ad0736583 (diff)
parent3d2d44037f27104207005998d9bcb55af1152892 (diff)
downloadrneovim-c75d5010b742db83462fc4508cf6dba455f79ca7.tar.gz
rneovim-c75d5010b742db83462fc4508cf6dba455f79ca7.tar.bz2
rneovim-c75d5010b742db83462fc4508cf6dba455f79ca7.zip
Merge PR #3210 'Bugfixes'
Helped-by: oni-link <knil.ino@gmail.com> Reviewed-by: oni-link <knil.ino@gmail.com>
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index a5ab57785c..006601211e 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -18987,7 +18987,7 @@ void ex_function(exarg_T *eap)
emsg_funcname(e_funcexts, name);
goto erret;
}
- if (fp->uf_calls > 0) {
+ if (fp->uf_refcount > 1 || fp->uf_calls > 0) {
emsg_funcname(N_("E127: Cannot redefine function %s: It is in use"),
name);
goto erret;
@@ -21136,14 +21136,18 @@ static inline bool common_job_start(TerminalJobData *data, typval_T *rettv)
{
data->refcount++;
Process *proc = (Process *)&data->proc;
+ char *cmd = xstrdup(proc->argv[0]);
if (!process_spawn(proc)) {
- EMSG(_(e_jobexe));
+ EMSG2(_(e_jobspawn), cmd);
+ xfree(cmd);
if (proc->type == kProcessTypePty) {
xfree(data->proc.pty.term_name);
- free_term_job_data(data);
}
+ rettv->vval.v_number = proc->status;
+ term_job_data_decref(data);
return false;
}
+ xfree(cmd);
data->id = current_job_id++;
wstream_init(proc->in, 0);