rettv->v_type = VAR_STRING;
#ifdef FEAT_PERSISTENT_UNDO
{
- char_u *ffname = FullName_save(get_tv_string(&argvars[0]), FALSE);
+ char_u *fname = get_tv_string(&argvars[0]);
- if (ffname != NULL)
- rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
- vim_free(ffname);
+ if (*fname == NUL)
+ {
+ /* If there is no file name there will be no undo file. */
+ rettv->vval.v_string = NULL;
+ }
+ else
+ {
+ char_u *ffname = FullName_save(fname, FALSE);
+
+ if (ffname != NULL)
+ rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
+ vim_free(ffname);
+ }
}
#else
rettv->vval.v_string = NULL;