]> granicus.if.org Git - vim/commitdiff
patch 7.4.879 v7.4.879
authorBram Moolenaar <Bram@vim.org>
Fri, 25 Sep 2015 15:37:16 +0000 (17:37 +0200)
committerBram Moolenaar <Bram@vim.org>
Fri, 25 Sep 2015 15:37:16 +0000 (17:37 +0200)
Problem:    Can't see line numbers in nested function calls.
Solution:   Add line number to the file name. (Alberto Fanjul)

src/eval.c
src/version.c

index 9a590c74911ed2c84fbb53dd339d41f16416a3b8..064e55f6f2ce3294392253617262972b0e060789 100644 (file)
@@ -23817,6 +23817,7 @@ call_user_func(fp, argcount, argvars, rettv, firstline, lastline, selfdict)
     int                ai;
     char_u     numbuf[NUMBUFLEN];
     char_u     *name;
+    size_t     len;
 #ifdef FEAT_PROFILE
     proftime_T wait_start;
     proftime_T call_start;
@@ -23948,13 +23949,16 @@ call_user_func(fp, argcount, argvars, rettv, firstline, lastline, selfdict)
     save_sourcing_name = sourcing_name;
     save_sourcing_lnum = sourcing_lnum;
     sourcing_lnum = 1;
-    sourcing_name = alloc((unsigned)((save_sourcing_name == NULL ? 0
-               : STRLEN(save_sourcing_name)) + STRLEN(fp->uf_name) + 13));
+    /* need space for function name + ("function " + 3) or "[number]" */
+    len = (save_sourcing_name == NULL ? 0 : STRLEN(save_sourcing_name))
+                                                  + STRLEN(fp->uf_name) + 20;
+    sourcing_name = alloc((unsigned)len);
     if (sourcing_name != NULL)
     {
        if (save_sourcing_name != NULL
                          && STRNCMP(save_sourcing_name, "function ", 9) == 0)
-           sprintf((char *)sourcing_name, "%s..", save_sourcing_name);
+           sprintf((char *)sourcing_name, "%s[%d]..",
+                                save_sourcing_name, (int)save_sourcing_lnum);
        else
            STRCPY(sourcing_name, "function ");
        cat_func_name(sourcing_name + STRLEN(sourcing_name), fp);
index fadd0d489272f1514a3144854a90da633cdfd7f6..f20dc8992e95e01babdf7dd8318611cbade743a1 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    879,
 /**/
     878,
 /**/