diff options
Diffstat (limited to 'src/filepath.c')
-rw-r--r-- | src/filepath.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/filepath.c b/src/filepath.c index 0db0dcfb1..81fe74924 100644 --- a/src/filepath.c +++ b/src/filepath.c @@ -1640,11 +1640,11 @@ f_readdirex(typval_T *argvars, typval_T *rettv) /* * "readfile()" function */ - void -f_readfile(typval_T *argvars, typval_T *rettv) + static void +read_file_or_blob(typval_T *argvars, typval_T *rettv, int always_blob) { int binary = FALSE; - int blob = FALSE; + int blob = always_blob; int failed = FALSE; char_u *fname; FILE *fd; @@ -1796,7 +1796,8 @@ f_readfile(typval_T *argvars, typval_T *rettv) if (dest < buf) { - adjust_prevlen = (int)(buf - dest); // must be 1 or 2 + // must be 1 or 2 + adjust_prevlen = (int)(buf - dest); dest = buf; } if (readlen > p - buf + 1) @@ -1867,6 +1868,24 @@ f_readfile(typval_T *argvars, typval_T *rettv) } /* + * "readblob()" function + */ + void +f_readblob(typval_T *argvars, typval_T *rettv) +{ + read_file_or_blob(argvars, rettv, TRUE); +} + +/* + * "readfile()" function + */ + void +f_readfile(typval_T *argvars, typval_T *rettv) +{ + read_file_or_blob(argvars, rettv, FALSE); +} + +/* * "resolve()" function */ void |