From d827ada01c256fb5e952d799a5b31bdf6f32d1d9 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 19 Jun 2007 15:19:55 +0000 Subject: [PATCH] updated for version 7.1-008 --- runtime/doc/eval.txt | 4 +++- src/eval.c | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 5df64f11e..cfc3769a4 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.1. Last change: 2007 May 11 +*eval.txt* For Vim version 7.1. Last change: 2007 Jun 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -2824,6 +2824,8 @@ getfsize({fname}) *getfsize()* given file {fname}. If {fname} is a directory, 0 is returned. If the file {fname} can't be found, -1 is returned. + If the size of {fname} is too big to fit in a Number then -2 + is returned. getfontname([{name}]) *getfontname()* Without an argument returns the name of the normal font being diff --git a/src/eval.c b/src/eval.c index 9429981e0..ac4dc1bb5 100644 --- a/src/eval.c +++ b/src/eval.c @@ -10136,7 +10136,13 @@ f_getfsize(argvars, rettv) if (mch_isdir(fname)) rettv->vval.v_number = 0; else + { rettv->vval.v_number = (varnumber_T)st.st_size; + + /* non-perfect check for overflow */ + if ((off_t)rettv->vval.v_number != (off_t)st.st_size) + rettv->vval.v_number = -2; + } } else rettv->vval.v_number = -1;