summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvimboss <devnull@localhost>2007-06-19 15:19:55 +0000
committervimboss <devnull@localhost>2007-06-19 15:19:55 +0000
commitddd6a9a56a9a207399e28f71a96dd2c6e0172a54 (patch)
tree274332ea9add1f4f7a65d7ba07b020d0785b0ec5
parent31cdab55bed22e6594d90b87524a1264f470752e (diff)
downloadvim-ddd6a9a56a9a207399e28f71a96dd2c6e0172a54.tar.gz
updated for version 7.1-008v7-1-008
-rw-r--r--runtime/doc/eval.txt4
-rw-r--r--src/eval.c6
2 files changed, 9 insertions, 1 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 5df64f11..cfc3769a 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 9429981e..ac4dc1bb 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;