summaryrefslogtreecommitdiffstats
path: root/src/scriptfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/scriptfile.c')
-rw-r--r--src/scriptfile.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/scriptfile.c b/src/scriptfile.c
index cc76260410..54af7597e5 100644
--- a/src/scriptfile.c
+++ b/src/scriptfile.c
@@ -1430,8 +1430,13 @@ do_source_buffer_init(source_cookie_T *sp, exarg_T *eap)
return NULL;
// Use ":source buffer=<num>" as the script name
- vim_snprintf((char *)IObuff, IOSIZE, ":source buffer=%d", curbuf->b_fnum);
- fname = vim_strsave(IObuff);
+ if (curbuf->b_ffname != NULL)
+ fname = vim_strsave(curbuf->b_ffname);
+ else
+ {
+ vim_snprintf((char *)IObuff, IOSIZE, ":source buffer=%d", curbuf->b_fnum);
+ fname = vim_strsave(IObuff);
+ }
if (fname == NULL)
return NULL;