Patch 7.4.1976
Problem: Number variables are not 64 bits while they could be.
Solution: Add the num64 feature. (Ken Takata)
Files: runtime/doc/eval.txt, runtime/doc/various.txt,
src/Make_cyg_ming.mak, src/Make_mvc.mak, src/charset.c,
src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/feature.h,
src/fileio.c, src/fold.c, src/json.c, src/message.c, src/misc1.c,
src/misc2.c, src/ops.c, src/option.c, src/proto/charset.pro,
src/proto/eval.pro, src/quickfix.c, src/structs.h,
src/testdir/test_viml.vim, src/version.c
*** ../vim-7.4.1975/runtime/doc/eval.txt 2016-06-04 18:49:15.386070039
+0200
--- runtime/doc/eval.txt 2016-07-01 18:02:49.378216033 +0200
***************
*** 37,57 ****
1.1 Variable types ~
*E712*
! There are six types of variables:
Number A 32 or 64 bit signed number. |expr-number| *Number*
Examples: -123 0x10 0177
Float A floating point number. |floating-point-format| *Float*
{only when compiled with the |+float| feature}
Examples: 123.456 1.15e-6 -1.1e3
String A NUL terminated string of 8-bit unsigned characters
(bytes).
|expr-string| Examples: "ab\txx\"--" 'x-z''a,c'
- Funcref A reference to a function |Funcref|.
- Example: function("strlen")
-
List An ordered sequence of items |List|.
Example: [1, 2, ['a', 'b']]
--- 37,57 ----
1.1 Variable types ~
*E712*
! There are nine types of variables:
Number A 32 or 64 bit signed number. |expr-number| *Number*
+ 64-bit Number is available only when compiled with the
+ |+num64| feature.
Examples: -123 0x10 0177
Float A floating point number. |floating-point-format| *Float*
{only when compiled with the |+float| feature}
Examples: 123.456 1.15e-6 -1.1e3
+ *E928*
String A NUL terminated string of 8-bit unsigned characters
(bytes).
|expr-string| Examples: "ab\txx\"--" 'x-z''a,c'
List An ordered sequence of items |List|.
Example: [1, 2, ['a', 'b']]
***************
*** 7681,7688 ****
--- 7854,7863 ----
mzscheme Compiled with MzScheme interface |mzscheme|.
netbeans_enabled Compiled with support for |netbeans| and connected.
netbeans_intg Compiled with support for |netbeans|.
+ num64 Compiled with 64-bit |Number| support.
ole Compiled with OLE automation support for Win32.
os2 OS/2 version of Vim.
+ packages Compiled with |packages| support.
path_extra Compiled with up/downwards search in 'path' and 'tags'
perl Compiled with Perl interface.
persistent_undo Compiled with support for persistent undo
history.
*** ../vim-7.4.1975/runtime/doc/various.txt 2016-04-29 22:58:25.610876772
+0200
--- runtime/doc/various.txt 2016-07-01 18:02:49.382215974 +0200
***************
*** 378,384 ****
--- 390,398 ----
m *+mzscheme* Mzscheme interface |mzscheme|
m *+mzscheme/dyn* Mzscheme interface |mzscheme-dynamic| |/dyn|
m *+netbeans_intg* |netbeans|
+ *+num64* 64-bit Number support |Number|
m *+ole* Win32 GUI only: |ole-interface|
+ N *+packages* Loading |packages|
N *+path_extra* Up/downwards search in 'path' and 'tags'
m *+perl* Perl interface |perl|
m *+perl/dyn* Perl interface |perl-dynamic| |/dyn|
*** ../vim-7.4.1975/src/Make_cyg_ming.mak 2016-06-26 20:37:24.563969023
+0200
--- src/Make_cyg_ming.mak 2016-07-01 18:02:49.382215974 +0200
***************
*** 379,385 ****
# Any other defines can be included here.
DEF_GUI=-DFEAT_GUI_W32 -DFEAT_CLIPBOARD
DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
! -DHAVE_PATHDEF -DFEAT_$(FEATURES)
ifeq ($(ARCH),x86-64)
DEFINES+=-DMS_WIN64
endif
--- 379,385 ----
# Any other defines can be included here.
DEF_GUI=-DFEAT_GUI_W32 -DFEAT_CLIPBOARD
DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
! -DHAVE_PATHDEF -DFEAT_$(FEATURES) -DHAVE_STDINT_H
ifeq ($(ARCH),x86-64)
DEFINES+=-DMS_WIN64
endif
*** ../vim-7.4.1975/src/Make_mvc.mak 2016-06-26 20:37:24.567968951 +0200
--- src/Make_mvc.mak 2016-07-01 18:02:49.382215974 +0200
***************
*** 501,506 ****
--- 501,511 ----
CFLAGS=$(CFLAGS) $(WP64CHECK)
!endif
+ # VC10 or later has stdint.h.
+ !if $(MSVC_MAJOR) >= 10
+ CFLAGS = $(CFLAGS) -DHAVE_STDINT_H
+ !endif
+
# Static code analysis generally available starting with VS2012 (VC11) or
# Windows SDK 7.1 (VC10)
!if ("$(ANALYZE)" == "yes") && ($(MSVC_MAJOR) >= 10)
*** ../vim-7.4.1975/src/charset.c 2016-03-19 22:11:47.412675093 +0100
--- src/charset.c 2016-07-01 18:02:49.382215974 +0200
***************
*** 1836,1849 ****
is bin */
int *len, /* return: detected length of
number */
int what, /* what numbers to recognize */
! long *nptr, /* return: signed result */
! unsigned long *unptr, /* return: unsigned result */
int maxlen) /* max length of string to check */
{
char_u *ptr = start;
int pre = 0; /* default is decimal */
int negative = FALSE;
! unsigned long un = 0;
int n;
if (ptr[0] == '-')
--- 1836,1849 ----
is bin */
int *len, /* return: detected length of
number */
int what, /* what numbers to recognize */
! varnumber_T *nptr, /* return: signed result */
! uvarnumber_T *unptr, /* return: unsigned result */
int maxlen) /* max length of string to check */
{
char_u *ptr = start;
int pre = 0; /* default is decimal */
int negative = FALSE;
! uvarnumber_T un = 0;
int n;
if (ptr[0] == '-')
***************
*** 1912,1918 ****
/* octal */
while ('0' <= *ptr && *ptr <= '7')
{
! un = 8 * un + (unsigned long)(*ptr - '0');
++ptr;
if (n++ == maxlen)
break;
--- 1912,1918 ----
/* octal */
while ('0' <= *ptr && *ptr <= '7')
{
! un = 8 * un + (uvarnumber_T)(*ptr - '0');
++ptr;
if (n++ == maxlen)
break;
***************
*** 1925,1931 ****
n += 2; /* skip over "0x" */
while (vim_isxdigit(*ptr))
{
! un = 16 * un + (unsigned long)hex2nr(*ptr);
++ptr;
if (n++ == maxlen)
break;
--- 1925,1931 ----
n += 2; /* skip over "0x" */
while (vim_isxdigit(*ptr))
{
! un = 16 * un + (uvarnumber_T)hex2nr(*ptr);
++ptr;
if (n++ == maxlen)
break;
***************
*** 1936,1942 ****
/* decimal */
while (VIM_ISDIGIT(*ptr))
{
! un = 10 * un + (unsigned long)(*ptr - '0');
++ptr;
if (n++ == maxlen)
break;
--- 1936,1942 ----
/* decimal */
while (VIM_ISDIGIT(*ptr))
{
! un = 10 * un + (uvarnumber_T)(*ptr - '0');
++ptr;
if (n++ == maxlen)
break;
***************
*** 1950,1958 ****
if (nptr != NULL)
{
if (negative) /* account for leading '-' for decimal numbers */
! *nptr = -(long)un;
else
! *nptr = (long)un;
}
if (unptr != NULL)
*unptr = un;
--- 1950,1958 ----
if (nptr != NULL)
{
if (negative) /* account for leading '-' for decimal numbers */
! *nptr = -(varnumber_T)un;
else
! *nptr = (varnumber_T)un;
}
if (unptr != NULL)
*unptr = un;
*** ../vim-7.4.1975/src/eval.c 2016-07-01 17:17:13.278266936 +0200
--- src/eval.c 2016-07-01 18:02:49.390215858 +0200
***************
*** 1376,1382 ****
int skip) /* only parse, don't execute */
{
typval_T tv;
! int retval = FALSE;
if (skip)
++emsg_skip;
--- 1376,1382 ----
int skip) /* only parse, don't execute */
{
typval_T tv;
! varnumber_T retval = FALSE;
if (skip)
++emsg_skip;
***************
*** 1394,1400 ****
if (skip)
--emsg_skip;
! return retval;
}
/*
--- 1394,1400 ----
if (skip)
--emsg_skip;
! return (int)retval;
}
/*
***************
*** 1519,1529 ****
* Evaluates "expr" silently.
* Returns -1 for an error.
*/
! int
eval_to_number(char_u *expr)
{
typval_T rettv;
! int retval;
char_u *p = skipwhite(expr);
++emsg_off;
--- 1519,1529 ----
* Evaluates "expr" silently.
* Returns -1 for an error.
*/
! varnumber_T
eval_to_number(char_u *expr)
{
typval_T rettv;
! varnumber_T retval;
char_u *p = skipwhite(expr);
++emsg_off;
***************
*** 1628,1634 ****
li = li->li_next;
if (li == NULL)
return -1;
! return get_tv_number(&li->li_tv);
}
#endif
--- 1628,1634 ----
li = li->li_next;
if (li == NULL)
return -1;
! return (int)get_tv_number(&li->li_tv);
}
#endif
***************
*** 1669,1675 ****
typval_T *rettv)
{
typval_T *argvars;
! long n;
int len;
int i;
int doesrange;
--- 1669,1675 ----
typval_T *rettv)
{
typval_T *argvars;
! varnumber_T n;
int len;
int i;
int doesrange;
***************
*** 1735,1741 ****
* Returns -1 when calling the function fails.
* Uses argv[argc] for the function arguments.
*/
! long
call_func_retnr(
char_u *func,
int argc,
--- 1735,1741 ----
* Returns -1 when calling the function fails.
* Uses argv[argc] for the function arguments.
*/
! varnumber_T
call_func_retnr(
char_u *func,
int argc,
***************
*** 1743,1749 ****
int safe) /* use the sandbox */
{
typval_T rettv;
! long retval;
/* All arguments are passed as strings, no conversion to number. */
if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
--- 1743,1749 ----
int safe) /* use the sandbox */
{
typval_T rettv;
! varnumber_T retval;
/* All arguments are passed as strings, no conversion to number. */
if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
***************
*** 1880,1886 ****
eval_foldexpr(char_u *arg, int *cp)
{
typval_T tv;
! int retval;
char_u *s;
int use_sandbox = was_set_insecurely((char_u *)"foldexpr",
OPT_LOCAL);
--- 1880,1886 ----
eval_foldexpr(char_u *arg, int *cp)
{
typval_T tv;
! varnumber_T retval;
char_u *s;
int use_sandbox = was_set_insecurely((char_u *)"foldexpr",
OPT_LOCAL);
***************
*** 1915,1921 ****
--sandbox;
--textlock;
! return retval;
}
#endif
--- 1915,1921 ----
--sandbox;
--textlock;
! return (int)retval;
}
#endif
***************
*** 2480,2486 ****
c1 = *p;
*p = NUL;
! n = get_tv_number(tv);
s = get_tv_string_chk(tv); /* != NULL if number or string */
if (s != NULL && op != NULL && *op != '=')
{
--- 2480,2486 ----
c1 = *p;
*p = NUL;
! n = (long)get_tv_number(tv);
s = get_tv_string_chk(tv); /* != NULL if number or string */
if (s != NULL && op != NULL && *op != '=')
{
***************
*** 2888,2894 ****
lp->ll_n1 = 0;
else
{
! lp->ll_n1 = get_tv_number(&var1); /* is number or string */
clear_tv(&var1);
}
lp->ll_dict = NULL;
--- 2888,2895 ----
lp->ll_n1 = 0;
else
{
! lp->ll_n1 = (long)get_tv_number(&var1);
! /* is number or string */
clear_tv(&var1);
}
lp->ll_dict = NULL;
***************
*** 2919,2925 ****
*/
if (lp->ll_range && !lp->ll_empty2)
{
! lp->ll_n2 = get_tv_number(&var2); /* is number or string */
clear_tv(&var2);
if (lp->ll_n2 < 0)
{
--- 2920,2927 ----
*/
if (lp->ll_range && !lp->ll_empty2)
{
! lp->ll_n2 = (long)get_tv_number(&var2);
! /* is number or string */
clear_tv(&var2);
if (lp->ll_n2 < 0)
{
***************
*** 3117,3123 ****
static int
tv_op(typval_T *tv1, typval_T *tv2, char_u *op)
{
! long n;
char_u numbuf[NUMBUFLEN];
char_u *s;
--- 3119,3125 ----
static int
tv_op(typval_T *tv1, typval_T *tv2, char_u *op)
{
! varnumber_T n;
char_u numbuf[NUMBUFLEN];
char_u *s;
***************
*** 4468,4474 ****
exptype_T type = TYPE_UNKNOWN;
int type_is = FALSE; /* TRUE for "is" and "isnot" */
int len = 2;
! long n1, n2;
char_u *s1, *s2;
char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
int ic;
--- 4470,4476 ----
exptype_T type = TYPE_UNKNOWN;
int type_is = FALSE; /* TRUE for "is" and "isnot" */
int len = 2;
! varnumber_T n1, n2;
char_u *s1, *s2;
char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
int ic;
***************
*** 4766,4772 ****
typval_T var2;
typval_T var3;
int op;
! long n1, n2;
#ifdef FEAT_FLOAT
float_T f1 = 0, f2 = 0;
#endif
--- 4768,4774 ----
typval_T var2;
typval_T var3;
int op;
! varnumber_T n1, n2;
#ifdef FEAT_FLOAT
float_T f1 = 0, f2 = 0;
#endif
***************
*** 4951,4957 ****
{
typval_T var2;
int op;
! long n1, n2;
#ifdef FEAT_FLOAT
int use_float = FALSE;
float_T f1 = 0, f2;
--- 4953,4959 ----
{
typval_T var2;
int op;
! varnumber_T n1, n2;
#ifdef FEAT_FLOAT
int use_float = FALSE;
float_T f1 = 0, f2;
***************
*** 5072,5083 ****
--- 5074,5094 ----
{
if (n2 == 0) /* give an error message? */
{
+ #ifdef FEAT_NUM64
+ if (n1 == 0)
+ n1 = -0x7fffffffffffffff - 1; /* similar to NaN */
+ else if (n1 < 0)
+ n1 = -0x7fffffffffffffff;
+ else
+ n1 = 0x7fffffffffffffff;
+ #else
if (n1 == 0)
n1 = -0x7fffffffL - 1L; /* similar to NaN */
else if (n1 < 0)
n1 = -0x7fffffffL;
else
n1 = 0x7fffffffL;
+ #endif
}
else
n1 = n1 / n2;
***************
*** 5131,5137 ****
int evaluate,
int want_string UNUSED) /* after "." operator */
{
! long n;
int len;
char_u *s;
char_u *start_leader, *end_leader;
--- 5142,5148 ----
int evaluate,
int want_string UNUSED) /* after "." operator */
{
! varnumber_T n;
int len;
char_u *s;
char_u *start_leader, *end_leader;
***************
*** 5356,5362 ****
if (ret == OK && evaluate && end_leader > start_leader)
{
int error = FALSE;
! int val = 0;
#ifdef FEAT_FLOAT
float_T f = 0.0;
--- 5367,5373 ----
if (ret == OK && evaluate && end_leader > start_leader)
{
int error = FALSE;
! varnumber_T val = 0;
#ifdef FEAT_FLOAT
float_T f = 0.0;
***************
*** 6525,6531 ****
*errorp = TRUE;
return -1L;
}
! return get_tv_number_chk(&li->li_tv, errorp);
}
/*
--- 6536,6542 ----
*errorp = TRUE;
return -1L;
}
! return (long)get_tv_number_chk(&li->li_tv, errorp);
}
/*
***************
*** 7770,7776 ****
dict_add_nr_str(
dict_T *d,
char *key,
! long nr,
char_u *str)
{
dictitem_T *item;
--- 7781,7787 ----
dict_add_nr_str(
dict_T *d,
char *key,
! varnumber_T nr,
char_u *str)
{
dictitem_T *item;
***************
*** 7894,7900 ****
* Get a number item from a dictionary.
* Returns 0 if the entry doesn't exist.
*/
! long
get_dict_number(dict_T *d, char_u *key)
{
dictitem_T *di;
--- 7905,7911 ----
* Get a number item from a dictionary.
* Returns 0 if the entry doesn't exist.
*/
! varnumber_T
get_dict_number(dict_T *d, char_u *key)
{
dictitem_T *di;
***************
*** 9612,9618 ****
if (argvars[0].v_type != VAR_UNKNOWN)
{
! idx = get_tv_number_chk(&argvars[0], NULL);
if (idx >= 0 && idx < ARGCOUNT)
rettv->vval.v_string = vim_strsave(alist_name(&ARGLIST[idx]));
else
--- 9623,9629 ----
if (argvars[0].v_type != VAR_UNKNOWN)
{
! idx = (int)get_tv_number_chk(&argvars[0], NULL);
if (idx >= 0 && idx < ARGCOUNT)
rettv->vval.v_string = vim_strsave(alist_name(&ARGLIST[idx]));
else
***************
*** 10012,10018 ****
char_u buf2[NUMBUFLEN];
int error = FALSE;
! save = get_tv_number_chk(&argvars[0], &error);
title = get_tv_string_chk(&argvars[1]);
initdir = get_tv_string_buf_chk(&argvars[2], buf);
defname = get_tv_string_buf_chk(&argvars[3], buf2);
--- 10023,10029 ----
char_u buf2[NUMBUFLEN];
int error = FALSE;
! save = (int)get_tv_number_chk(&argvars[0], &error);
title = get_tv_string_chk(&argvars[1]);
initdir = get_tv_string_buf_chk(&argvars[2], buf);
defname = get_tv_string_buf_chk(&argvars[3], buf2);
***************
*** 10290,10296 ****
char_u *t;
#endif
char_u *str;
! long idx;
str = get_tv_string_chk(&argvars[0]);
idx = get_tv_number_chk(&argvars[1], NULL);
--- 10301,10307 ----
char_u *t;
#endif
char_u *str;
! varnumber_T idx;
str = get_tv_string_chk(&argvars[0]);
idx = get_tv_number_chk(&argvars[1], NULL);
***************
*** 10660,10666 ****
int utf8 = 0;
if (argvars[1].v_type != VAR_UNKNOWN)
! utf8 = get_tv_number_chk(&argvars[1], NULL);
if (utf8)
rettv->vval.v_number = (*utf_ptr2char)(get_tv_string(&argvars[0]));
--- 10671,10677 ----
int utf8 = 0;
if (argvars[1].v_type != VAR_UNKNOWN)
! utf8 = (int)get_tv_number_chk(&argvars[1], NULL);
if (utf8)
rettv->vval.v_number = (*utf_ptr2char)(get_tv_string(&argvars[0]));
***************
*** 10783,10789 ****
return;
}
! startcol = get_tv_number_chk(&argvars[0], NULL);
if (startcol <= 0)
return;
--- 10794,10800 ----
return;
}
! startcol = (int)get_tv_number_chk(&argvars[0], NULL);
if (startcol <= 0)
return;
***************
*** 10840,10846 ****
error = TRUE;
if (argvars[2].v_type != VAR_UNKNOWN)
{
! def = get_tv_number_chk(&argvars[2], &error);
if (argvars[3].v_type != VAR_UNKNOWN)
{
typestr = get_tv_string_buf_chk(&argvars[3], buf2);
--- 10851,10857 ----
error = TRUE;
if (argvars[2].v_type != VAR_UNKNOWN)
{
! def = (int)get_tv_number_chk(&argvars[2], &error);
if (argvars[3].v_type != VAR_UNKNOWN)
{
typestr = get_tv_string_buf_chk(&argvars[3], buf2);
***************
*** 10933,10942 ****
{
int error = FALSE;
! ic = get_tv_number_chk(&argvars[2], &error);
if (argvars[3].v_type != VAR_UNKNOWN)
{
! idx = get_tv_number_chk(&argvars[3], &error);
if (!error)
{
li = list_find(l, idx);
--- 10944,10953 ----
{
int error = FALSE;
! ic = (int)get_tv_number_chk(&argvars[2], &error);
if (argvars[3].v_type != VAR_UNKNOWN)
{
! idx = (long)get_tv_number_chk(&argvars[3], &error);
if (!error)
{
li = list_find(l, idx);
***************
*** 10965,10971 ****
if (argvars[2].v_type != VAR_UNKNOWN)
{
! ic = get_tv_number_chk(&argvars[2], &error);
if (argvars[3].v_type != VAR_UNKNOWN)
EMSG(_(e_invarg));
}
--- 10976,10982 ----
if (argvars[2].v_type != VAR_UNKNOWN)
{
! ic = (int)get_tv_number_chk(&argvars[2], &error);
if (argvars[3].v_type != VAR_UNKNOWN)
EMSG(_(e_invarg));
}
***************
*** 11055,11064 ****
else
{
line = get_tv_lnum(argvars);
! col = get_tv_number_chk(&argvars[1], NULL);
#ifdef FEAT_VIRTUALEDIT
if (argvars[2].v_type != VAR_UNKNOWN)
! coladd = get_tv_number_chk(&argvars[2], NULL);
#endif
}
if (line < 0 || col < 0
--- 11066,11075 ----
else
{
line = get_tv_lnum(argvars);
! col = (long)get_tv_number_chk(&argvars[1], NULL);
#ifdef FEAT_VIRTUALEDIT
if (argvars[2].v_type != VAR_UNKNOWN)
! coladd = (long)get_tv_number_chk(&argvars[2], NULL);
#endif
}
if (line < 0 || col < 0
***************
*** 11096,11102 ****
int noref = 0;
if (argvars[1].v_type != VAR_UNKNOWN)
! noref = get_tv_number_chk(&argvars[1], NULL);
if (noref < 0 || noref > 1)
EMSG(_(e_invarg));
else
--- 11107,11113 ----
int noref = 0;
if (argvars[1].v_type != VAR_UNKNOWN)
! noref = (int)get_tv_number_chk(&argvars[1], NULL);
if (noref < 0 || noref > 1)
EMSG(_(e_invarg));
else
***************
*** 11604,11610 ****
{
if (argvars[2].v_type != VAR_UNKNOWN)
{
! before = get_tv_number_chk(&argvars[2], &error);
if (error)
return; /* type error; errmsg already given */
--- 11615,11621 ----
{
if (argvars[2].v_type != VAR_UNKNOWN)
{
! before = (long)get_tv_number_chk(&argvars[2], &error);
if (error)
return; /* type error; errmsg already given */
***************
*** 11807,11813 ****
path = p;
if (argvars[2].v_type != VAR_UNKNOWN)
! count = get_tv_number_chk(&argvars[2], &error);
}
}
--- 11818,11824 ----
path = p;
if (argvars[2].v_type != VAR_UNKNOWN)
! count = (int)get_tv_number_chk(&argvars[2], &error);
}
}
***************
*** 12043,12054 ****
--- 12054,12074 ----
if (get_float_arg(argvars, &f) == OK)
{
+ # ifdef FEAT_NUM64
+ if (f < -0x7fffffffffffffff)
+ rettv->vval.v_number = -0x7fffffffffffffff;
+ else if (f > 0x7fffffffffffffff)
+ rettv->vval.v_number = 0x7fffffffffffffff;
+ else
+ rettv->vval.v_number = (varnumber_T)f;
+ # else
if (f < -0x7fffffff)
rettv->vval.v_number = -0x7fffffff;
else if (f > 0x7fffffff)
rettv->vval.v_number = 0x7fffffff;
else
rettv->vval.v_number = (varnumber_T)f;
+ # endif
}
}
***************
*** 12511,12517 ****
{
int error = FALSE;
! li = list_find(l, get_tv_number_chk(&argvars[1], &error));
if (!error && li != NULL)
tv = &li->li_tv;
}
--- 12531,12537 ----
{
int error = FALSE;
! li = list_find(l, (long)get_tv_number_chk(&argvars[1], &error));
if (!error && li != NULL)
tv = &li->li_tv;
}
***************
*** 13333,13341 ****
error = strregname == NULL;
if (argvars[1].v_type != VAR_UNKNOWN)
{
! arg2 = get_tv_number_chk(&argvars[1], &error);
if (!error && argvars[2].v_type != VAR_UNKNOWN)
! return_list = get_tv_number_chk(&argvars[2], &error);
}
}
else
--- 13353,13361 ----
error = strregname == NULL;
if (argvars[1].v_type != VAR_UNKNOWN)
{
! arg2 = (int)get_tv_number_chk(&argvars[1], &error);
if (!error && argvars[2].v_type != VAR_UNKNOWN)
! return_list = (int)get_tv_number_chk(&argvars[2], &error);
}
}
else
***************
*** 13558,13564 ****
#endif
int nr;
! nr = get_tv_number_chk(vp, NULL);
#ifdef FEAT_WINDOWS
if (nr < 0)
--- 13578,13584 ----
#endif
int nr;
! nr = (int)get_tv_number_chk(vp, NULL);
#ifdef FEAT_WINDOWS
if (nr < 0)
***************
*** 13601,13607 ****
{
if (tvp->v_type != VAR_UNKNOWN)
{
! n = get_tv_number(tvp);
if (n >= 0)
tp = find_tabpage(n);
}
--- 13621,13627 ----
{
if (tvp->v_type != VAR_UNKNOWN)
{
! n = (long)get_tv_number(tvp);
if (n >= 0)
tp = find_tabpage(n);
}
***************
*** 14126,14131 ****
--- 14146,14154 ----
"mzscheme",
#endif
#endif
+ #ifdef FEAT_NUM64
+ "num64",
+ #endif
#ifdef FEAT_OLE
"ole",
#endif
***************
*** 14468,14474 ****
{
mode = get_tv_string_buf(&argvars[1], buf);
if (argvars[2].v_type != VAR_UNKNOWN)
! abbr = get_tv_number(&argvars[2]);
}
if (map_to_exists(name, mode, abbr))
--- 14491,14497 ----
{
mode = get_tv_string_buf(&argvars[1], buf);
if (argvars[2].v_type != VAR_UNKNOWN)
! abbr = (int)get_tv_number(&argvars[2]);
}
if (map_to_exists(name, mode, abbr))
***************
*** 14696,14705 ****
/* Start at specified item. Use the cached index that list_find()
* sets, so that a negative number also works. */
! item = list_find(l, get_tv_number_chk(&argvars[2], &error));
idx = l->lv_idx;
if (argvars[3].v_type != VAR_UNKNOWN)
! ic = get_tv_number_chk(&argvars[3], &error);
if (error)
item = NULL;
}
--- 14719,14728 ----
/* Start at specified item. Use the cached index that list_find()
* sets, so that a negative number also works. */
! item = list_find(l, (long)get_tv_number_chk(&argvars[2], &error));
idx = l->lv_idx;
if (argvars[3].v_type != VAR_UNKNOWN)
! ic = (int)get_tv_number_chk(&argvars[3], &error);
if (error)
item = NULL;
}
***************
*** 14983,14989 ****
&& !tv_check_lock(l->lv_lock, (char_u *)N_("insert() argument"),
TRUE))
{
if (argvars[2].v_type != VAR_UNKNOWN)
! before = get_tv_number_chk(&argvars[2], &error);
if (error)
return; /* type error; errmsg already given */
--- 15006,15012 ----
&& !tv_check_lock(l->lv_lock, (char_u *)N_("insert() argument"),
TRUE))
{
if (argvars[2].v_type != VAR_UNKNOWN)
! before = (long)get_tv_number_chk(&argvars[2], &error);
if (error)
return; /* type error; errmsg already given */
***************
*** 15588,15596 ****
which = get_tv_string_buf_chk(&argvars[1], buf);
if (argvars[2].v_type != VAR_UNKNOWN)
{
! abbr = get_tv_number(&argvars[2]);
if (argvars[3].v_type != VAR_UNKNOWN)
! get_dict = get_tv_number(&argvars[3]);
}
}
else
--- 15611,15619 ----
which = get_tv_string_buf_chk(&argvars[1], buf);
if (argvars[2].v_type != VAR_UNKNOWN)
{
! abbr = (int)get_tv_number(&argvars[2]);
if (argvars[3].v_type != VAR_UNKNOWN)
! get_dict = (int)get_tv_number(&argvars[3]);
}
}
else
***************
*** 15781,15787 ****
{
int error = FALSE;
! start = get_tv_number_chk(&argvars[2], &error);
if (error)
goto theend;
if (l != NULL)
--- 15804,15810 ----
{
int error = FALSE;
! start = (long)get_tv_number_chk(&argvars[2], &error);
if (error)
goto theend;
if (l != NULL)
***************
*** 15810,15816 ****
}
if (argvars[3].v_type != VAR_UNKNOWN)
! nth = get_tv_number_chk(&argvars[3], &error);
if (error)
goto theend;
}
--- 15833,15839 ----
}
if (argvars[3].v_type != VAR_UNKNOWN)
! nth = (long)get_tv_number_chk(&argvars[3], &error);
if (error)
goto theend;
}
***************
*** 15969,15978 ****
return;
if (argvars[2].v_type != VAR_UNKNOWN)
{
! prio = get_tv_number_chk(&argvars[2], &error);
if (argvars[3].v_type != VAR_UNKNOWN)
{
! id = get_tv_number_chk(&argvars[3], &error);
if (argvars[4].v_type != VAR_UNKNOWN)
{
if (argvars[4].v_type != VAR_DICT)
--- 15992,16001 ----
return;
if (argvars[2].v_type != VAR_UNKNOWN)
{
! prio = (int)get_tv_number_chk(&argvars[2], &error);
if (argvars[3].v_type != VAR_UNKNOWN)
{
! id = (int)get_tv_number_chk(&argvars[3], &error);
if (argvars[4].v_type != VAR_UNKNOWN)
{
if (argvars[4].v_type != VAR_DICT)
***************
*** 16032,16041 ****
if (argvars[2].v_type != VAR_UNKNOWN)
{
! prio = get_tv_number_chk(&argvars[2], &error);
if (argvars[3].v_type != VAR_UNKNOWN)
{
! id = get_tv_number_chk(&argvars[3], &error);
if (argvars[4].v_type != VAR_UNKNOWN)
{
if (argvars[4].v_type != VAR_DICT)
--- 16055,16064 ----
if (argvars[2].v_type != VAR_UNKNOWN)
{
! prio = (int)get_tv_number_chk(&argvars[2], &error);
if (argvars[3].v_type != VAR_UNKNOWN)
{
! id = (int)get_tv_number_chk(&argvars[3], &error);
if (argvars[4].v_type != VAR_UNKNOWN)
{
if (argvars[4].v_type != VAR_DICT)
***************
*** 16074,16080 ****
if (rettv_list_alloc(rettv) == OK)
{
#ifdef FEAT_SEARCH_EXTRA
! int id = get_tv_number(&argvars[0]);
matchitem_T *m;
if (id >= 1 && id <= 3)
--- 16097,16103 ----
if (rettv_list_alloc(rettv) == OK)
{
#ifdef FEAT_SEARCH_EXTRA
! int id = (int)get_tv_number(&argvars[0]);
matchitem_T *m;
if (id >= 1 && id <= 3)
***************
*** 16148,16155 ****
static void
max_min(typval_T *argvars, typval_T *rettv, int domax)
{
! long n = 0;
! long i;
int error = FALSE;
if (argvars[0].v_type == VAR_LIST)
--- 16171,16178 ----
static void
max_min(typval_T *argvars, typval_T *rettv, int domax)
{
! varnumber_T n = 0;
! varnumber_T i;
int error = FALSE;
if (argvars[0].v_type == VAR_LIST)
***************
*** 16285,16291 ****
if (argvars[1].v_type != VAR_UNKNOWN)
{
if (argvars[2].v_type != VAR_UNKNOWN)
! prot = get_tv_number_chk(&argvars[2], NULL);
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
mkdir_recurse(dir, prot);
}
--- 16308,16314 ----
if (argvars[1].v_type != VAR_UNKNOWN)
{
if (argvars[2].v_type != VAR_UNKNOWN)
! prot = (int)get_tv_number_chk(&argvars[2], NULL);
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
mkdir_recurse(dir, prot);
}
***************
*** 16428,16434 ****
int utf8 = 0;
if (argvars[1].v_type != VAR_UNKNOWN)
! utf8 = get_tv_number_chk(&argvars[1], NULL);
if (utf8)
buf[(*utf_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
else
--- 16451,16457 ----
int utf8 = 0;
if (argvars[1].v_type != VAR_UNKNOWN)
! utf8 = (int)get_tv_number_chk(&argvars[1], NULL);
if (utf8)
buf[(*utf_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
else
***************
*** 16610,16619 ****
static void
f_range(typval_T *argvars, typval_T *rettv)
{
! long start;
! long end;
! long stride = 1;
! long i;
int error = FALSE;
start = get_tv_number_chk(&argvars[0], &error);
--- 16633,16642 ----
static void
f_range(typval_T *argvars, typval_T *rettv)
{
! varnumber_T start;
! varnumber_T end;
! varnumber_T stride = 1;
! varnumber_T i;
int error = FALSE;
start = get_tv_number_chk(&argvars[0], &error);
***************
*** 16671,16677 ****
if (STRCMP(get_tv_string(&argvars[1]), "b") == 0)
binary = TRUE;
if (argvars[2].v_type != VAR_UNKNOWN)
! maxline = get_tv_number(&argvars[2]);
}
if (rettv_list_alloc(rettv) == FAIL)
--- 16694,16700 ----
if (STRCMP(get_tv_string(&argvars[1]), "b") == 0)
binary = TRUE;
if (argvars[2].v_type != VAR_UNKNOWN)
! maxline = (long)get_tv_number(&argvars[2]);
}
if (rettv_list_alloc(rettv) == FAIL)
***************
*** 17244,17250 ****
{
int error = FALSE;
! idx = get_tv_number_chk(&argvars[1], &error);
if (error)
; /* type error: do nothing, errmsg already given */
else if ((item = list_find(l, idx)) == NULL)
--- 17267,17273 ----
{
int error = FALSE;
! idx = (long)get_tv_number_chk(&argvars[1], &error);
if (error)
; /* type error: do nothing, errmsg already given */
else if ((item = list_find(l, idx)) == NULL)
***************
*** 17261,17267 ****
else
{
/* Remove range of items, return list with values. */
! end = get_tv_number_chk(&argvars[2], &error);
if (error)
; /* type error: do nothing */
else if ((item2 = list_find(l, end)) == NULL)
--- 17284,17290 ----
else
{
/* Remove range of items, return list with values. */
! end = (long)get_tv_number_chk(&argvars[2], &error);
if (error)
; /* type error: do nothing */
else if ((item2 = list_find(l, end)) == NULL)
***************
*** 17325,17331 ****
char_u *r;
int i;
! n = get_tv_number(&argvars[1]);
if (argvars[0].v_type == VAR_LIST)
{
if (rettv_list_alloc(rettv) == OK && argvars[0].vval.v_list != NULL)
--- 17348,17354 ----
char_u *r;
int i;
! n = (int)get_tv_number(&argvars[1]);
if (argvars[0].v_type == VAR_LIST)
{
if (rettv_list_alloc(rettv) == OK && argvars[0].vval.v_list != NULL)
***************
*** 17696,17708 ****
/* Optional arguments: line number to stop searching and timeout. */
if (argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN)
{
! lnum_stop = get_tv_number_chk(&argvars[2], NULL);
if (lnum_stop < 0)
goto theend;
#ifdef FEAT_RELTIME
if (argvars[3].v_type != VAR_UNKNOWN)
{
! time_limit = get_tv_number_chk(&argvars[3], NULL);
if (time_limit < 0)
goto theend;
}
--- 17719,17731 ----
/* Optional arguments: line number to stop searching and timeout. */
if (argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN)
{
! lnum_stop = (long)get_tv_number_chk(&argvars[2], NULL);
if (lnum_stop < 0)
goto theend;
#ifdef FEAT_RELTIME
if (argvars[3].v_type != VAR_UNKNOWN)
{
! time_limit = (long)get_tv_number_chk(&argvars[3], NULL);
if (time_limit < 0)
goto theend;
}
***************
*** 17798,17805 ****
int col;
int c;
! row = get_tv_number_chk(&argvars[0], NULL) - 1;
! col = get_tv_number_chk(&argvars[1], NULL) - 1;
if (row < 0 || row >= screen_Rows
|| col < 0 || col >= screen_Columns)
c = -1;
--- 17821,17828 ----
int col;
int c;
! row = (int)get_tv_number_chk(&argvars[0], NULL) - 1;
! col = (int)get_tv_number_chk(&argvars[1], NULL) - 1;
if (row < 0 || row >= screen_Rows
|| col < 0 || col >= screen_Columns)
c = -1;
***************
*** 17819,17826 ****
int off;
int c;
! row = get_tv_number_chk(&argvars[0], NULL) - 1;
! col = get_tv_number_chk(&argvars[1], NULL) - 1;
if (row < 0 || row >= screen_Rows
|| col < 0 || col >= screen_Columns)
c = -1;
--- 17842,17849 ----
int off;
int c;
! row = (int)get_tv_number_chk(&argvars[0], NULL) - 1;
! col = (int)get_tv_number_chk(&argvars[1], NULL) - 1;
if (row < 0 || row >= screen_Rows
|| col < 0 || col >= screen_Columns)
c = -1;
***************
*** 17884,17892 ****
name = get_tv_string_chk(&argvars[0]);
if (argvars[1].v_type != VAR_UNKNOWN)
{
! locally = get_tv_number_chk(&argvars[1], &error) == 0;
if (!error && argvars[2].v_type != VAR_UNKNOWN)
! thisblock = get_tv_number_chk(&argvars[2], &error) != 0;
}
if (!error && name != NULL)
rettv->vval.v_number = find_decl(name, (int)STRLEN(name),
--- 17907,17915 ----
name = get_tv_string_chk(&argvars[0]);
if (argvars[1].v_type != VAR_UNKNOWN)
{
! locally = (int)get_tv_number_chk(&argvars[1], &error) == 0;
if (!error && argvars[2].v_type != VAR_UNKNOWN)
! thisblock = (int)get_tv_number_chk(&argvars[2], &error) != 0;
}
if (!error && name != NULL)
rettv->vval.v_number = find_decl(name, (int)STRLEN(name),
***************
*** 17946,17958 ****
skip = get_tv_string_buf_chk(&argvars[4], nbuf3);
if (argvars[5].v_type != VAR_UNKNOWN)
{
! lnum_stop = get_tv_number_chk(&argvars[5], NULL);
if (lnum_stop < 0)
goto theend;
#ifdef FEAT_RELTIME
if (argvars[6].v_type != VAR_UNKNOWN)
{
! time_limit = get_tv_number_chk(&argvars[6], NULL);
if (time_limit < 0)
goto theend;
}
--- 17969,17981 ----
skip = get_tv_string_buf_chk(&argvars[4], nbuf3);
if (argvars[5].v_type != VAR_UNKNOWN)
{
! lnum_stop = (long)get_tv_number_chk(&argvars[5], NULL);
if (lnum_stop < 0)
goto theend;
#ifdef FEAT_RELTIME
if (argvars[6].v_type != VAR_UNKNOWN)
{
! time_limit = (long)get_tv_number_chk(&argvars[6], NULL);
if (time_limit < 0)
goto theend;
}
***************
*** 18267,18273 ****
int error = FALSE;
++varname;
! numval = get_tv_number_chk(varp, &error);
strval = get_tv_string_buf_chk(varp, nbuf);
if (!error && strval != NULL)
set_option_value(varname, numval, strval, OPT_LOCAL);
--- 18290,18296 ----
int error = FALSE;
++varname;
! numval = (long)get_tv_number_chk(varp, &error);
strval = get_tv_string_buf_chk(varp, nbuf);
if (!error && strval != NULL)
set_option_value(varname, numval, strval, OPT_LOCAL);
***************
*** 18323,18329 ****
di = dict_find(d, (char_u *)"forward", -1);
if (di != NULL)
! set_csearch_direction(get_tv_number(&di->di_tv)
? FORWARD : BACKWARD);
di = dict_find(d, (char_u *)"until", -1);
--- 18346,18352 ----
di = dict_find(d, (char_u *)"forward", -1);
if (di != NULL)
! set_csearch_direction((int)get_tv_number(&di->di_tv)
? FORWARD : BACKWARD);
di = dict_find(d, (char_u *)"until", -1);
***************
*** 18916,18922 ****
int error = FALSE;
++varname;
! numval = get_tv_number_chk(varp, &error);
strval = get_tv_string_buf_chk(varp, nbuf);
if (!error && strval != NULL)
set_option_value(varname, numval, strval, OPT_LOCAL);
--- 18939,18945 ----
int error = FALSE;
++varname;
! numval = (long)get_tv_number_chk(varp, &error);
strval = get_tv_string_buf_chk(varp, nbuf);
if (!error && strval != NULL)
set_option_value(varname, numval, strval, OPT_LOCAL);
***************
*** 19083,19090 ****
if (sortinfo->item_compare_numbers)
{
! long v1 = get_tv_number(tv1);
! long v2 = get_tv_number(tv2);
return v1 == v2 ? 0 : v1 > v2 ? 1 : -1;
}
--- 19106,19113 ----
if (sortinfo->item_compare_numbers)
{
! varnumber_T v1 = get_tv_number(tv1);
! varnumber_T v2 = get_tv_number(tv2);
return v1 == v2 ? 0 : v1 > v2 ? 1 : -1;
}
***************
*** 19190,19196 ****
if (res == FAIL)
res = ITEM_COMPARE_FAIL;
else
! res = get_tv_number_chk(&rettv, &sortinfo->item_compare_func_err);
if (sortinfo->item_compare_func_err)
res = ITEM_COMPARE_FAIL; /* return value has wrong type */
clear_tv(&rettv);
--- 19213,19219 ----
if (res == FAIL)
res = ITEM_COMPARE_FAIL;
else
! res = (int)get_tv_number_chk(&rettv, &sortinfo->item_compare_func_err);
if (sortinfo->item_compare_func_err)
res = ITEM_COMPARE_FAIL; /* return value has wrong type */
clear_tv(&rettv);
***************
*** 19259,19265 ****
{
int error = FALSE;
! i = get_tv_number_chk(&argvars[1], &error);
if (error)
goto theend; /* type error; errmsg already given */
if (i == 1)
--- 19282,19288 ----
{
int error = FALSE;
! i = (long)get_tv_number_chk(&argvars[1], &error);
if (error)
goto theend; /* type error; errmsg already given */
if (i == 1)
***************
*** 19516,19527 ****
str = get_tv_string(&argvars[0]);
if (argvars[1].v_type != VAR_UNKNOWN)
{
! maxcount = get_tv_number_chk(&argvars[1], &typeerr);
if (maxcount <= 0)
return;
if (argvars[2].v_type != VAR_UNKNOWN)
{
! need_capital = get_tv_number_chk(&argvars[2], &typeerr);
if (typeerr)
return;
}
--- 19539,19550 ----
str = get_tv_string(&argvars[0]);
if (argvars[1].v_type != VAR_UNKNOWN)
{
! maxcount = (int)get_tv_number_chk(&argvars[1], &typeerr);
if (maxcount <= 0)
return;
if (argvars[2].v_type != VAR_UNKNOWN)
{
! need_capital = (int)get_tv_number_chk(&argvars[2], &typeerr);
if (typeerr)
return;
}
***************
*** 19576,19582 ****
if (pat == NULL)
typeerr = TRUE;
if (argvars[2].v_type != VAR_UNKNOWN)
! keepempty = get_tv_number_chk(&argvars[2], &typeerr);
}
if (pat == NULL || *pat == NUL)
pat = (char_u *)"[\\x01- ]\\+";
--- 19599,19605 ----
if (pat == NULL)
typeerr = TRUE;
if (argvars[2].v_type != VAR_UNKNOWN)
! keepempty = (int)get_tv_number_chk(&argvars[2], &typeerr);
}
if (pat == NULL || *pat == NUL)
pat = (char_u *)"[\\x01- ]\\+";
***************
*** 19669,19680 ****
{
int base = 10;
char_u *p;
! long n;
int what;
if (argvars[1].v_type != VAR_UNKNOWN)
{
! base = get_tv_number(&argvars[1]);
if (base != 2 && base != 8 && base != 10 && base != 16)
{
EMSG(_(e_invarg));
--- 19692,19703 ----
{
int base = 10;
char_u *p;
! varnumber_T n;
int what;
if (argvars[1].v_type != VAR_UNKNOWN)
{
! base = (int)get_tv_number(&argvars[1]);
if (base != 2 && base != 8 && base != 10 && base != 16)
{
EMSG(_(e_invarg));
***************
*** 19772,19778 ****
if (str == NULL)
return;
len = (int)STRLEN(str);
! charidx = get_tv_number_chk(&argvars[1], &error);
if (error)
return;
#ifdef FEAT_MBYTE
--- 19795,19801 ----
if (str == NULL)
return;
len = (int)STRLEN(str);
! charidx = (int)get_tv_number_chk(&argvars[1], &error);
if (error)
return;
#ifdef FEAT_MBYTE
***************
*** 19819,19825 ****
{
int error = FALSE;
! start_idx = get_tv_number_chk(&argvars[2], &error);
if (error || start_idx >= (int)STRLEN(haystack))
return;
if (start_idx >= 0)
--- 19842,19848 ----
{
int error = FALSE;
! start_idx = (int)get_tv_number_chk(&argvars[2], &error);
if (error || start_idx >= (int)STRLEN(haystack))
return;
if (start_idx >= 0)
***************
*** 19872,19878 ****
#endif
if (argvars[1].v_type != VAR_UNKNOWN)
! skipcc = get_tv_number_chk(&argvars[1], NULL);
if (skipcc < 0 || skipcc > 1)
EMSG(_(e_invarg));
else
--- 19895,19901 ----
#endif
if (argvars[1].v_type != VAR_UNKNOWN)
! skipcc = (int)get_tv_number_chk(&argvars[1], NULL);
if (skipcc < 0 || skipcc > 1)
EMSG(_(e_invarg));
else
***************
*** 19901,19907 ****
int col = 0;
if (argvars[1].v_type != VAR_UNKNOWN)
! col = get_tv_number(&argvars[1]);
rettv->vval.v_number = (varnumber_T)(linetabsize_col(col, s) - col);
}
--- 19924,19930 ----
int col = 0;
if (argvars[1].v_type != VAR_UNKNOWN)
! col = (int)get_tv_number(&argvars[1]);
rettv->vval.v_number = (varnumber_T)(linetabsize_col(col, s) - col);
}
***************
*** 19941,19947 ****
p = get_tv_string(&argvars[0]);
slen = (int)STRLEN(p);
! nchar = get_tv_number_chk(&argvars[1], &error);
if (!error)
{
if (nchar > 0)
--- 19964,19970 ----
p = get_tv_string(&argvars[0]);
slen = (int)STRLEN(p);
! nchar = (int)get_tv_number_chk(&argvars[1], &error);
if (!error)
{
if (nchar > 0)
***************
*** 19954,19960 ****
nbyte = nchar;
if (argvars[2].v_type != VAR_UNKNOWN)
{
! charlen = get_tv_number(&argvars[2]);
while (charlen > 0 && nbyte + len < slen)
{
int off = nbyte + len;
--- 19977,19983 ----
nbyte = nchar;
if (argvars[2].v_type != VAR_UNKNOWN)
{
! charlen = (int)get_tv_number(&argvars[2]);
while (charlen > 0 && nbyte + len < slen)
{
int off = nbyte + len;
***************
*** 20008,20018 ****
p = get_tv_string(&argvars[0]);
slen = (int)STRLEN(p);
! n = get_tv_number_chk(&argvars[1], &error);
if (error)
len = 0;
else if (argvars[2].v_type != VAR_UNKNOWN)
! len = get_tv_number(&argvars[2]);
else
len = slen - n; /* default len: all bytes that are available. */
--- 20031,20041 ----
p = get_tv_string(&argvars[0]);
slen = (int)STRLEN(p);
! n = (int)get_tv_number_chk(&argvars[1], &error);
if (error)
len = 0;
else if (argvars[2].v_type != VAR_UNKNOWN)
! len = (int)get_tv_number(&argvars[2]);
else
len = slen - n; /* default len: all bytes that are available. */
***************
*** 20060,20066 ****
if (argvars[2].v_type != VAR_UNKNOWN)
{
/* Third argument: upper limit for index */
! end_idx = get_tv_number_chk(&argvars[2], NULL);
if (end_idx < 0)
return; /* can never find a match */
}
--- 20083,20089 ----
if (argvars[2].v_type != VAR_UNKNOWN)
{
/* Third argument: upper limit for index */
! end_idx = (int)get_tv_number_chk(&argvars[2], NULL);
if (end_idx < 0)
return; /* can never find a match */
}
***************
*** 20114,20120 ****
return;
error = FALSE;
if (argvars[1].v_type != VAR_UNKNOWN)
! retList = get_tv_number_chk(&argvars[1], &error);
if (error)
return;
--- 20137,20143 ----
return;
error = FALSE;
if (argvars[1].v_type != VAR_UNKNOWN)
! retList = (int)get_tv_number_chk(&argvars[1], &error);
if (error)
return;
***************
*** 20160,20173 ****
{
int id = 0;
#ifdef FEAT_SYN_HL
! long lnum;
! long col;
int trans;
int transerr = FALSE;
lnum = get_tv_lnum(argvars); /* -1 on type error */
! col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */
! trans = get_tv_number_chk(&argvars[2], &transerr);
if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
&& col >= 0 && col < (long)STRLEN(ml_get(lnum)))
--- 20183,20196 ----
{
int id = 0;
#ifdef FEAT_SYN_HL
! linenr_T lnum;
! colnr_T col;
int trans;
int transerr = FALSE;
lnum = get_tv_lnum(argvars); /* -1 on type error */
! col = (linenr_T)get_tv_number(&argvars[1]) - 1; /* -1 on type error */
! trans = (int)get_tv_number_chk(&argvars[2], &transerr);
if (!transerr && lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
&& col >= 0 && col < (long)STRLEN(ml_get(lnum)))
***************
*** 20191,20197 ****
char_u modebuf[NUMBUFLEN];
int modec;
! id = get_tv_number(&argvars[0]);
what = get_tv_string(&argvars[1]);
if (argvars[2].v_type != VAR_UNKNOWN)
{
--- 20214,20220 ----
char_u modebuf[NUMBUFLEN];
int modec;
! id = (int)get_tv_number(&argvars[0]);
what = get_tv_string(&argvars[1]);
if (argvars[2].v_type != VAR_UNKNOWN)
{
***************
*** 20275,20281 ****
int id;
#ifdef FEAT_SYN_HL
! id = get_tv_number(&argvars[0]);
if (id > 0)
id = syn_get_final_id(id);
--- 20298,20304 ----
int id;
#ifdef FEAT_SYN_HL
! id = (int)get_tv_number(&argvars[0]);
if (id > 0)
id = syn_get_final_id(id);
***************
*** 20293,20300 ****
f_synconcealed(typval_T *argvars UNUSED, typval_T *rettv)
{
#if defined(FEAT_SYN_HL) && defined(FEAT_CONCEAL)
! long lnum;
! long col;
int syntax_flags = 0;
int cchar;
int matchid = 0;
--- 20316,20323 ----
f_synconcealed(typval_T *argvars UNUSED, typval_T *rettv)
{
#if defined(FEAT_SYN_HL) && defined(FEAT_CONCEAL)
! linenr_T lnum;
! colnr_T col;
int syntax_flags = 0;
int cchar;
int matchid = 0;
***************
*** 20306,20312 ****
#if defined(FEAT_SYN_HL) && defined(FEAT_CONCEAL)
lnum = get_tv_lnum(argvars); /* -1 on type error */
! col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */
vim_memset(str, NUL, sizeof(str));
--- 20329,20335 ----
#if defined(FEAT_SYN_HL) && defined(FEAT_CONCEAL)
lnum = get_tv_lnum(argvars); /* -1 on type error */
! col = (colnr_T)get_tv_number(&argvars[1]) - 1; /* -1 on type error */
vim_memset(str, NUL, sizeof(str));
***************
*** 20353,20360 ****
f_synstack(typval_T *argvars UNUSED, typval_T *rettv)
{
#ifdef FEAT_SYN_HL
! long lnum;
! long col;
int i;
int id;
#endif
--- 20376,20383 ----
f_synstack(typval_T *argvars UNUSED, typval_T *rettv)
{
#ifdef FEAT_SYN_HL
! linenr_T lnum;
! colnr_T col;
int i;
int id;
#endif
***************
*** 20364,20370 ****
#ifdef FEAT_SYN_HL
lnum = get_tv_lnum(argvars); /* -1 on type error */
! col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */
if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
&& col >= 0 && col <= (long)STRLEN(ml_get(lnum))
--- 20387,20393 ----
#ifdef FEAT_SYN_HL
lnum = get_tv_lnum(argvars); /* -1 on type error */
! col = (colnr_T)get_tv_number(&argvars[1]) - 1; /* -1 on type error */
if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count
&& col >= 0 && col <= (long)STRLEN(ml_get(lnum))
***************
*** 20835,20841 ****
static void
f_test_disable_char_avail(typval_T *argvars, typval_T *rettv UNUSED)
{
! disable_char_avail_for_testing = get_tv_number(&argvars[0]);
}
/*
--- 20858,20864 ----
static void
f_test_disable_char_avail(typval_T *argvars, typval_T *rettv UNUSED)
{
! disable_char_avail_for_testing = (int)get_tv_number(&argvars[0]);
}
/*
***************
*** 20933,20939 ****
static void
f_timer_start(typval_T *argvars, typval_T *rettv)
{
! long msec = get_tv_number(&argvars[0]);
timer_T *timer;
int repeat = 0;
char_u *callback;
--- 20956,20962 ----
static void
f_timer_start(typval_T *argvars, typval_T *rettv)
{
! long msec = (long)get_tv_number(&argvars[0]);
timer_T *timer;
int repeat = 0;
char_u *callback;
***************
*** 20980,20986 ****
EMSG(_(e_number_exp));
return;
}
! timer = find_timer(get_tv_number(&argvars[0]));
if (timer != NULL)
stop_timer(timer);
}
--- 21003,21009 ----
EMSG(_(e_number_exp));
return;
}
! timer = find_timer((int)get_tv_number(&argvars[0]));
if (timer != NULL)
stop_timer(timer);
}
***************
*** 21436,21464 ****
else
{
if (dict_find(dict, (char_u *)"lnum", -1) != NULL)
! curwin->w_cursor.lnum = get_dict_number(dict, (char_u *)"lnum");
if (dict_find(dict, (char_u *)"col", -1) != NULL)
! curwin->w_cursor.col = get_dict_number(dict, (char_u *)"col");
#ifdef FEAT_VIRTUALEDIT
if (dict_find(dict, (char_u *)"coladd", -1) != NULL)
! curwin->w_cursor.coladd = get_dict_number(dict, (char_u *)"coladd");
#endif
if (dict_find(dict, (char_u *)"curswant", -1) != NULL)
{
! curwin->w_curswant = get_dict_number(dict, (char_u *)"curswant");
curwin->w_set_curswant = FALSE;
}
if (dict_find(dict, (char_u *)"topline", -1) != NULL)
! set_topline(curwin, get_dict_number(dict, (char_u *)"topline"));
#ifdef FEAT_DIFF
if (dict_find(dict, (char_u *)"topfill", -1) != NULL)
! curwin->w_topfill = get_dict_number(dict, (char_u *)"topfill");
#endif
if (dict_find(dict, (char_u *)"leftcol", -1) != NULL)
! curwin->w_leftcol = get_dict_number(dict, (char_u *)"leftcol");
if (dict_find(dict, (char_u *)"skipcol", -1) != NULL)
! curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
check_cursor();
win_new_height(curwin, curwin->w_height);
--- 21459,21487 ----
else
{
if (dict_find(dict, (char_u *)"lnum", -1) != NULL)
! curwin->w_cursor.lnum = (linenr_T)get_dict_number(dict, (char_u
*)"lnum");
if (dict_find(dict, (char_u *)"col", -1) != NULL)
! curwin->w_cursor.col = (colnr_T)get_dict_number(dict, (char_u
*)"col");
#ifdef FEAT_VIRTUALEDIT
if (dict_find(dict, (char_u *)"coladd", -1) != NULL)
! curwin->w_cursor.coladd = (colnr_T)get_dict_number(dict, (char_u
*)"coladd");
#endif
if (dict_find(dict, (char_u *)"curswant", -1) != NULL)
{
! curwin->w_curswant = (colnr_T)get_dict_number(dict, (char_u
*)"curswant");
curwin->w_set_curswant = FALSE;
}
if (dict_find(dict, (char_u *)"topline", -1) != NULL)
! set_topline(curwin, (linenr_T)get_dict_number(dict, (char_u
*)"topline"));
#ifdef FEAT_DIFF
if (dict_find(dict, (char_u *)"topfill", -1) != NULL)
! curwin->w_topfill = (int)get_dict_number(dict, (char_u *)"topfill");
#endif
if (dict_find(dict, (char_u *)"leftcol", -1) != NULL)
! curwin->w_leftcol = (colnr_T)get_dict_number(dict, (char_u
*)"leftcol");
if (dict_find(dict, (char_u *)"skipcol", -1) != NULL)
! curwin->w_skipcol = (colnr_T)get_dict_number(dict, (char_u
*)"skipcol");
check_cursor();
win_new_height(curwin, curwin->w_height);
***************
*** 22120,22126 ****
* Set number v: variable to "val".
*/
void
! set_vim_var_nr(int idx, long val)
{
vimvars[idx].vv_nr = val;
}
--- 22143,22149 ----
* Set number v: variable to "val".
*/
void
! set_vim_var_nr(int idx, varnumber_T val)
{
vimvars[idx].vv_nr = val;
}
***************
*** 22128,22134 ****
/*
* Get number v: variable value.
*/
! long
get_vim_var_nr(int idx)
{
return vimvars[idx].vv_nr;
--- 22151,22157 ----
/*
* Get number v: variable value.
*/
! varnumber_T
get_vim_var_nr(int idx)
{
return vimvars[idx].vv_nr;
***************
*** 22742,22748 ****
* caller of incompatible types: it sets *denote to TRUE if "denote"
* is not NULL or returns -1 otherwise.
*/
! long
get_tv_number(typval_T *varp)
{
int error = FALSE;
--- 22765,22771 ----
* caller of incompatible types: it sets *denote to TRUE if "denote"
* is not NULL or returns -1 otherwise.
*/
! varnumber_T
get_tv_number(typval_T *varp)
{
int error = FALSE;
***************
*** 22750,22764 ****
return get_tv_number_chk(varp, &error); /* return 0L on error */
}
! long
get_tv_number_chk(typval_T *varp, int *denote)
{
! long n = 0L;
switch (varp->v_type)
{
case VAR_NUMBER:
! return (long)(varp->vval.v_number);
case VAR_FLOAT:
#ifdef FEAT_FLOAT
EMSG(_("E805: Using a Float as a Number"));
--- 22773,22787 ----
return get_tv_number_chk(varp, &error); /* return 0L on error */
}
! varnumber_T
get_tv_number_chk(typval_T *varp, int *denote)
{
! varnumber_T n = 0L;
switch (varp->v_type)
{
case VAR_NUMBER:
! return varp->vval.v_number;
case VAR_FLOAT:
#ifdef FEAT_FLOAT
EMSG(_("E805: Using a Float as a Number"));
***************
*** 22858,22869 ****
typval_T rettv;
linenr_T lnum;
! lnum = get_tv_number_chk(&argvars[0], NULL);
if (lnum == 0) /* no valid number, try using line() */
{
rettv.v_type = VAR_NUMBER;
f_line(argvars, &rettv);
! lnum = rettv.vval.v_number;
clear_tv(&rettv);
}
return lnum;
--- 22881,22892 ----
typval_T rettv;
linenr_T lnum;
! lnum = (linenr_T)get_tv_number_chk(&argvars[0], NULL);
if (lnum == 0) /* no valid number, try using line() */
{
rettv.v_type = VAR_NUMBER;
f_line(argvars, &rettv);
! lnum = (linenr_T)rettv.vval.v_number;
clear_tv(&rettv);
}
return lnum;
***************
*** 22882,22888 ****
&& argvars[0].vval.v_string[0] == '$'
&& buf != NULL)
return buf->b_ml.ml_line_count;
! return get_tv_number_chk(&argvars[0], NULL);
}
/*
--- 22905,22911 ----
&& argvars[0].vval.v_string[0] == '$'
&& buf != NULL)
return buf->b_ml.ml_line_count;
! return (linenr_T)get_tv_number_chk(&argvars[0], NULL);
}
/*
***************
*** 22928,22934 ****
switch (varp->v_type)
{
case VAR_NUMBER:
! sprintf((char *)buf, "%ld", (long)varp->vval.v_number);
return buf;
case VAR_FUNC:
case VAR_PARTIAL:
--- 22951,22958 ----
switch (varp->v_type)
{
case VAR_NUMBER:
! vim_snprintf((char *)buf, NUMBUFLEN, "%lld",
! (varnumber_T)varp->vval.v_number);
return buf;
case VAR_FUNC:
case VAR_PARTIAL:
*** ../vim-7.4.1975/src/ex_cmds.c 2016-07-01 17:17:13.278266936 +0200
--- src/ex_cmds.c 2016-07-01 18:02:49.390215858 +0200
***************
*** 289,298 ****
union {
struct
{
! long start_col_nr; /* starting column number */
! long end_col_nr; /* ending column number */
} line;
! long value; /* value if sorting by integer */
#ifdef FEAT_FLOAT
float_T value_flt; /* value if sorting by float */
#endif
--- 289,298 ----
union {
struct
{
! varnumber_T start_col_nr; /* starting column number */
! varnumber_T end_col_nr; /* ending column number */
} line;
! varnumber_T value; /* value if sorting by integer */
#ifdef FEAT_FLOAT
float_T value_flt; /* value if sorting by float */
#endif
*** ../vim-7.4.1975/src/ex_getln.c 2016-06-13 22:47:57.723576003 +0200
--- src/ex_getln.c 2016-07-01 18:02:49.390215858 +0200
***************
*** 6005,6011 ****
{
int len;
int first = FALSE;
! long num;
*str = skipwhite(*str);
if (**str == '-' || vim_isdigit(**str)) /* parse "from" part of range */
--- 6005,6011 ----
{
int len;
int first = FALSE;
! varnumber_T num;
*str = skipwhite(*str);
if (**str == '-' || vim_isdigit(**str)) /* parse "from" part of range */
*** ../vim-7.4.1975/src/feature.h 2016-04-29 22:58:25.618876680 +0200
--- src/feature.h 2016-07-01 18:02:49.390215858 +0200
***************
*** 362,373 ****
--- 362,377 ----
* +eval Built-in script language and expression evaluation,
* ":let", ":if", etc.
* +float Floating point variables.
+ * +num64 64-bit Number.
*/
#ifdef FEAT_NORMAL
# define FEAT_EVAL
# if defined(HAVE_FLOAT_FUNCS) || defined(WIN3264) || defined(MACOS)
# define FEAT_FLOAT
# endif
+ # if defined(HAVE_STDINT_H) || defined(WIN3264) || (VIM_SIZEOF_LONG >= 8)
+ # define FEAT_NUM64
+ # endif
#endif
/*
*** ../vim-7.4.1975/src/fileio.c 2016-07-01 17:17:13.282266878 +0200
--- src/fileio.c 2016-07-01 18:02:49.394215800 +0200
***************
*** 9481,9487 ****
#ifdef FEAT_EVAL
/* set v:cmdarg (only when there is a matching pattern) */
! save_cmdbang = get_vim_var_nr(VV_CMDBANG);
if (eap != NULL)
{
save_cmdarg = set_cmdarg(eap, NULL);
--- 9481,9487 ----
#ifdef FEAT_EVAL
/* set v:cmdarg (only when there is a matching pattern) */
! save_cmdbang = (long)get_vim_var_nr(VV_CMDBANG);
if (eap != NULL)
{
save_cmdarg = set_cmdarg(eap, NULL);
*** ../vim-7.4.1975/src/fold.c 2016-06-08 21:17:39.049193558 +0200
--- src/fold.c 2016-07-01 18:02:49.394215800 +0200
***************
*** 3032,3038 ****
/* KeyTyped may be reset to 0 when calling a function which invokes
* do_cmdline(). To make 'foldopen' work correctly restore KeyTyped. */
save_keytyped = KeyTyped;
! n = eval_foldexpr(flp->wp->w_p_fde, &c);
KeyTyped = save_keytyped;
switch (c)
--- 3032,3038 ----
/* KeyTyped may be reset to 0 when calling a function which invokes
* do_cmdline(). To make 'foldopen' work correctly restore KeyTyped. */
save_keytyped = KeyTyped;
! n = (int)eval_foldexpr(flp->wp->w_p_fde, &c);
KeyTyped = save_keytyped;
switch (c)
*** ../vim-7.4.1975/src/json.c 2016-04-23 14:33:11.333175109 +0200
--- src/json.c 2016-07-01 18:02:49.394215800 +0200
***************
*** 201,208 ****
break;
case VAR_NUMBER:
! vim_snprintf((char *)numbuf, NUMBUFLEN, "%ld",
! (long)val->vval.v_number);
ga_concat(gap, numbuf);
break;
--- 201,208 ----
break;
case VAR_NUMBER:
! vim_snprintf((char *)numbuf, NUMBUFLEN, "%lld",
! val->vval.v_number);
ga_concat(gap, numbuf);
break;
***************
*** 538,544 ****
int len;
char_u *p;
int c;
! long nr;
if (res != NULL)
ga_init2(&ga, 1, 200);
--- 538,544 ----
int len;
char_u *p;
int c;
! varnumber_T nr;
if (res != NULL)
ga_init2(&ga, 1, 200);
***************
*** 600,606 ****
&& (int)(reader->js_end - p) >= 6
&& *p == '\\' && *(p+1) == 'u')
{
! long nr2 = 0;
/* decode surrogate pair: \ud812\u3456 */
len = 0;
--- 600,606 ----
&& (int)(reader->js_end - p) >= 6
&& *p == '\\' && *(p+1) == 'u')
{
! varnumber_T nr2 = 0;
/* decode surrogate pair: \ud812\u3456 */
len = 0;
***************
*** 620,626 ****
buf[utf_char2bytes((int)nr, buf)] = NUL;
ga_concat(&ga, buf);
#else
! ga_append(&ga, nr);
#endif
}
break;
--- 620,626 ----
buf[utf_char2bytes((int)nr, buf)] = NUL;
ga_concat(&ga, buf);
#else
! ga_append(&ga, (int)nr);
#endif
}
break;
***************
*** 766,772 ****
else
#endif
{
! long nr;
vim_str2nr(reader->js_buf + reader->js_used,
NULL, &len, 0, /* what */
--- 766,772 ----
else
#endif
{
! varnumber_T nr;
vim_str2nr(reader->js_buf + reader->js_used,
NULL, &len, 0, /* what */
*** ../vim-7.4.1975/src/message.c 2016-06-02 18:37:00.776457146 +0200
--- src/message.c 2016-07-01 18:02:49.394215800 +0200
***************
*** 3846,3852 ****
#if defined(FEAT_EVAL)
static char *e_printf = N_("E766: Insufficient arguments for printf()");
! static long tv_nr(typval_T *tvs, int *idxp);
static char *tv_str(typval_T *tvs, int *idxp);
# ifdef FEAT_FLOAT
static double tv_float(typval_T *tvs, int *idxp);
--- 3846,3852 ----
#if defined(FEAT_EVAL)
static char *e_printf = N_("E766: Insufficient arguments for printf()");
! static varnumber_T tv_nr(typval_T *tvs, int *idxp);
static char *tv_str(typval_T *tvs, int *idxp);
# ifdef FEAT_FLOAT
static double tv_float(typval_T *tvs, int *idxp);
***************
*** 3855,3865 ****
/*
* Get number argument from "idxp" entry in "tvs". First entry is 1.
*/
! static long
tv_nr(typval_T *tvs, int *idxp)
{
int idx = *idxp - 1;
! long n = 0;
int err = FALSE;
if (tvs[idx].v_type == VAR_UNKNOWN)
--- 3855,3865 ----
/*
* Get number argument from "idxp" entry in "tvs". First entry is 1.
*/
! static varnumber_T
tv_nr(typval_T *tvs, int *idxp)
{
int idx = *idxp - 1;
! varnumber_T n = 0;
int err = FALSE;
if (tvs[idx].v_type == VAR_UNKNOWN)
***************
*** 3912,3918 ****
if (tvs[idx].v_type == VAR_FLOAT)
f = tvs[idx].vval.v_float;
else if (tvs[idx].v_type == VAR_NUMBER)
! f = tvs[idx].vval.v_number;
else
EMSG(_("E807: Expected Float argument for printf()"));
}
--- 3912,3918 ----
if (tvs[idx].v_type == VAR_FLOAT)
f = tvs[idx].vval.v_float;
else if (tvs[idx].v_type == VAR_NUMBER)
! f = (double)tvs[idx].vval.v_number;
else
EMSG(_("E807: Expected Float argument for printf()"));
}
***************
*** 4170,4176 ****
--- 4170,4180 ----
if (length_modifier == 'l' && *p == 'l')
{
/* double l = long long */
+ # ifdef FEAT_NUM64
+ length_modifier = 'L';
+ # else
length_modifier = 'l'; /* treat it as a single 'l' */
+ # endif
p++;
}
}
***************
*** 4299,4304 ****
--- 4303,4314 ----
long int long_arg = 0;
unsigned long int ulong_arg = 0;
+ # ifdef FEAT_NUM64
+ /* only defined for length modifier ll */
+ varnumber_T llong_arg = 0;
+ uvarnumber_T ullong_arg = 0;
+ # endif
+
/* pointer argument value -only defined for p
* conversion */
void *ptr_arg = NULL;
***************
*** 4343,4348 ****
--- 4353,4371 ----
else if (long_arg < 0)
arg_sign = -1;
break;
+ # ifdef FEAT_NUM64
+ case 'L':
+ llong_arg =
+ # if defined(FEAT_EVAL)
+ tvs != NULL ? tv_nr(tvs, &arg_idx) :
+ # endif
+ va_arg(ap, varnumber_T);
+ if (llong_arg > 0)
+ arg_sign = 1;
+ else if (llong_arg < 0)
+ arg_sign = -1;
+ break;
+ # endif
}
}
else
***************
*** 4371,4376 ****
--- 4394,4411 ----
if (ulong_arg != 0)
arg_sign = 1;
break;
+ # ifdef FEAT_NUM64
+ case 'L':
+ ullong_arg =
+ # if defined(FEAT_EVAL)
+ tvs != NULL ? (uvarnumber_T)
+ tv_nr(tvs, &arg_idx) :
+ # endif
+ va_arg(ap, uvarnumber_T);
+ if (ullong_arg != 0)
+ arg_sign = 1;
+ break;
+ # endif
}
}
***************
*** 4415,4431 ****
}
else
{
! char f[5];
int f_l = 0;
/* construct a simple format string for sprintf */
f[f_l++] = '%';
if (!length_modifier)
;
! else if (length_modifier == '2')
{
f[f_l++] = 'l';
f[f_l++] = 'l';
}
else
f[f_l++] = length_modifier;
--- 4450,4476 ----
}
else
{
! char f[6];
int f_l = 0;
/* construct a simple format string for sprintf */
f[f_l++] = '%';
if (!length_modifier)
;
! else if (length_modifier == 'L')
{
+ # ifdef FEAT_NUM64
+ # ifdef WIN3264
+ f[f_l++] = 'I';
+ f[f_l++] = '6';
+ f[f_l++] = '4';
+ # else
f[f_l++] = 'l';
f[f_l++] = 'l';
+ # endif
+ # else
+ f[f_l++] = 'l';
+ # endif
}
else
f[f_l++] = length_modifier;
***************
*** 4446,4451 ****
--- 4491,4501 ----
case 'l': str_arg_l += sprintf(
tmp + str_arg_l, f, long_arg);
break;
+ # ifdef FEAT_NUM64
+ case 'L': str_arg_l += sprintf(
+ tmp + str_arg_l, f, llong_arg);
+ break;
+ # endif
}
}
else
***************
*** 4460,4465 ****
--- 4510,4520 ----
case 'l': str_arg_l += sprintf(
tmp + str_arg_l, f, ulong_arg);
break;
+ # ifdef FEAT_NUM64
+ case 'L': str_arg_l += sprintf(
+ tmp + str_arg_l, f, ullong_arg);
+ break;
+ # endif
}
}
*** ../vim-7.4.1975/src/misc1.c 2016-07-01 17:17:13.290266761 +0200
--- src/misc1.c 2016-07-01 18:02:49.394215800 +0200
***************
*** 9169,9175 ****
if (use_sandbox)
++sandbox;
++textlock;
! indent = eval_to_number(curbuf->b_p_inde);
if (use_sandbox)
--sandbox;
--textlock;
--- 9169,9175 ----
if (use_sandbox)
++sandbox;
++textlock;
! indent = (int)eval_to_number(curbuf->b_p_inde);
if (use_sandbox)
--sandbox;
--textlock;
*** ../vim-7.4.1975/src/misc2.c 2016-07-01 17:17:13.290266761 +0200
--- src/misc2.c 2016-07-01 18:02:49.394215800 +0200
***************
*** 2719,2725 ****
int modifiers;
int bit;
int key;
! unsigned long n;
int l;
src = *srcp;
--- 2719,2725 ----
int modifiers;
int bit;
int key;
! uvarnumber_T n;
int l;
src = *srcp;
*** ../vim-7.4.1975/src/ops.c 2016-06-20 21:26:03.280671551 +0200
--- src/ops.c 2016-07-01 18:02:49.398215741 +0200
***************
*** 1179,1187 ****
static int execreg_lastc = NUL;
/*
! * execute a yank register: copy it into the stuff buffer
*
! * return FAIL for failure, OK otherwise
*/
int
do_execreg(
--- 1179,1187 ----
static int execreg_lastc = NUL;
/*
! * Execute a yank register: copy it into the stuff buffer.
*
! * Return FAIL for failure, OK otherwise.
*/
int
do_execreg(
***************
*** 4755,4761 ****
*/
if (use_sandbox)
++sandbox;
! r = eval_to_number(curbuf->b_p_fex);
if (use_sandbox)
--sandbox;
--- 4755,4761 ----
*/
if (use_sandbox)
++sandbox;
! r = (int)eval_to_number(curbuf->b_p_fex);
if (use_sandbox)
--sandbox;
***************
*** 5449,5456 ****
char_u buf2[NUMBUFLEN];
int pre; /* 'X'/'x': hex; '0': octal; 'B'/'b':
bin */
static int hexupper = FALSE; /* 0xABC */
! unsigned long n;
! long_u oldn;
char_u *ptr;
int c;
int todel;
--- 5449,5456 ----
char_u buf2[NUMBUFLEN];
int pre; /* 'X'/'x': hex; '0': octal; 'B'/'b':
bin */
static int hexupper = FALSE; /* 0xABC */
! uvarnumber_T n;
! uvarnumber_T oldn;
char_u *ptr;
int c;
int todel;
***************
*** 5708,5716 ****
oldn = n;
if (subtract)
! n -= (unsigned long)Prenum1;
else
! n += (unsigned long)Prenum1;
/* handle wraparound for decimal numbers */
if (!pre)
{
--- 5708,5716 ----
oldn = n;
if (subtract)
! n -= (uvarnumber_T)Prenum1;
else
! n += (uvarnumber_T)Prenum1;
/* handle wraparound for decimal numbers */
if (!pre)
{
***************
*** 5718,5724 ****
{
if (n > oldn)
{
! n = 1 + (n ^ (unsigned long)-1);
negative ^= TRUE;
}
}
--- 5718,5724 ----
{
if (n > oldn)
{
! n = 1 + (n ^ (uvarnumber_T)-1);
negative ^= TRUE;
}
}
***************
*** 5727,5733 ****
/* add */
if (n < oldn)
{
! n = (n ^ (unsigned long)-1);
negative ^= TRUE;
}
}
--- 5727,5733 ----
/* add */
if (n < oldn)
{
! n = (n ^ (uvarnumber_T)-1);
negative ^= TRUE;
}
}
***************
*** 5803,5809 ****
{
int i;
int bit = 0;
! int bits = sizeof(unsigned long) * 8;
/* leading zeros */
for (bit = bits; bit > 0; bit--)
--- 5803,5809 ----
{
int i;
int bit = 0;
! int bits = sizeof(uvarnumber_T) * 8;
/* leading zeros */
for (bit = bits; bit > 0; bit--)
***************
*** 5815,5827 ****
buf2[i] = '\0';
}
else if (pre == 0)
! sprintf((char *)buf2, "%lu", n);
else if (pre == '0')
! sprintf((char *)buf2, "%lo", n);
else if (pre && hexupper)
! sprintf((char *)buf2, "%lX", n);
else
! sprintf((char *)buf2, "%lx", n);
length -= (int)STRLEN(buf2);
/*
--- 5815,5827 ----
buf2[i] = '\0';
}
else if (pre == 0)
! vim_snprintf((char *)buf2, NUMBUFLEN, "%llu", n);
else if (pre == '0')
! vim_snprintf((char *)buf2, NUMBUFLEN, "%llo", n);
else if (pre && hexupper)
! vim_snprintf((char *)buf2, NUMBUFLEN, "%llX", n);
else
! vim_snprintf((char *)buf2, NUMBUFLEN, "%llx", n);
length -= (int)STRLEN(buf2);
/*
***************
*** 7086,7092 ****
vim_memset(oap, 0, sizeof(oparg_T));
}
! static long line_count_info(char_u *line, long *wc, long *cc, long limit,
int eol_size);
/*
* Count the number of bytes, characters and "words" in a line.
--- 7086,7092 ----
vim_memset(oap, 0, sizeof(oparg_T));
}
! static varnumber_T line_count_info(char_u *line, varnumber_T *wc, varnumber_T
*cc, varnumber_T limit, int eol_size);
/*
* Count the number of bytes, characters and "words" in a line.
***************
*** 7102,7118 ****
* case, eol_size will be added to the character count to account for
* the size of the EOL character.
*/
! static long
line_count_info(
char_u *line,
! long *wc,
! long *cc,
! long limit,
int eol_size)
{
! long i;
! long words = 0;
! long chars = 0;
int is_word = 0;
for (i = 0; i < limit && line[i] != NUL; )
--- 7102,7118 ----
* case, eol_size will be added to the character count to account for
* the size of the EOL character.
*/
! static varnumber_T
line_count_info(
char_u *line,
! varnumber_T *wc,
! varnumber_T *cc,
! varnumber_T limit,
int eol_size)
{
! varnumber_T i;
! varnumber_T words = 0;
! varnumber_T chars = 0;
int is_word = 0;
for (i = 0; i < limit && line[i] != NUL; )
***************
*** 7162,7178 ****
char_u buf1[50];
char_u buf2[40];
linenr_T lnum;
! long byte_count = 0;
#ifdef FEAT_MBYTE
! long bom_count = 0;
#endif
! long byte_count_cursor = 0;
! long char_count = 0;
! long char_count_cursor = 0;
! long word_count = 0;
! long word_count_cursor = 0;
int eol_size;
! long last_check = 100000L;
long line_count_selected = 0;
pos_T min_pos, max_pos;
oparg_T oparg;
--- 7162,7178 ----
char_u buf1[50];
char_u buf2[40];
linenr_T lnum;
! varnumber_T byte_count = 0;
#ifdef FEAT_MBYTE
! varnumber_T bom_count = 0;
#endif
! varnumber_T byte_count_cursor = 0;
! varnumber_T char_count = 0;
! varnumber_T char_count_cursor = 0;
! varnumber_T word_count = 0;
! varnumber_T word_count_cursor = 0;
int eol_size;
! varnumber_T last_check = 100000L;
long line_count_selected = 0;
pos_T min_pos, max_pos;
oparg_T oparg;
***************
*** 7308,7319 ****
byte_count_cursor = byte_count +
line_count_info(ml_get(lnum),
&word_count_cursor, &char_count_cursor,
! (long)(curwin->w_cursor.col + 1), eol_size);
}
}
/* Add to the running totals */
byte_count += line_count_info(ml_get(lnum), &word_count,
! &char_count, (long)MAXCOL, eol_size);
}
/* Correction for when last line doesn't have an EOL. */
--- 7308,7321 ----
byte_count_cursor = byte_count +
line_count_info(ml_get(lnum),
&word_count_cursor, &char_count_cursor,
! (varnumber_T)(curwin->w_cursor.col + 1),
! eol_size);
}
}
/* Add to the running totals */
byte_count += line_count_info(ml_get(lnum), &word_count,
! &char_count, (varnumber_T)MAXCOL,
! eol_size);
}
/* Correction for when last line doesn't have an EOL. */
***************
*** 7337,7350 ****
if (char_count_cursor == byte_count_cursor
&& char_count == byte_count)
vim_snprintf((char *)IObuff, IOSIZE,
! _("Selected %s%ld of %ld Lines; %ld of %ld Words;
%ld of %ld Bytes"),
buf1, line_count_selected,
(long)curbuf->b_ml.ml_line_count,
word_count_cursor, word_count,
byte_count_cursor, byte_count);
else
vim_snprintf((char *)IObuff, IOSIZE,
! _("Selected %s%ld of %ld Lines; %ld of %ld Words;
%ld of %ld Chars; %ld of %ld Bytes"),
buf1, line_count_selected,
(long)curbuf->b_ml.ml_line_count,
word_count_cursor, word_count,
--- 7339,7352 ----
if (char_count_cursor == byte_count_cursor
&& char_count == byte_count)
vim_snprintf((char *)IObuff, IOSIZE,
! _("Selected %s%ld of %ld Lines; %lld of %lld Words;
%lld of %lld Bytes"),
buf1, line_count_selected,
(long)curbuf->b_ml.ml_line_count,
word_count_cursor, word_count,
byte_count_cursor, byte_count);
else
vim_snprintf((char *)IObuff, IOSIZE,
! _("Selected %s%ld of %ld Lines; %lld of %lld Words;
%lld of %lld Chars; %lld of %lld Bytes"),
buf1, line_count_selected,
(long)curbuf->b_ml.ml_line_count,
word_count_cursor, word_count,
***************
*** 7363,7369 ****
if (char_count_cursor == byte_count_cursor
&& char_count == byte_count)
vim_snprintf((char *)IObuff, IOSIZE,
! _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte
%ld of %ld"),
(char *)buf1, (char *)buf2,
(long)curwin->w_cursor.lnum,
(long)curbuf->b_ml.ml_line_count,
--- 7365,7371 ----
if (char_count_cursor == byte_count_cursor
&& char_count == byte_count)
vim_snprintf((char *)IObuff, IOSIZE,
! _("Col %s of %s; Line %ld of %ld; Word %lld of %lld;
Byte %lld of %lld"),
(char *)buf1, (char *)buf2,
(long)curwin->w_cursor.lnum,
(long)curbuf->b_ml.ml_line_count,
***************
*** 7371,7377 ****
byte_count_cursor, byte_count);
else
vim_snprintf((char *)IObuff, IOSIZE,
! _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char
%ld of %ld; Byte %ld of %ld"),
(char *)buf1, (char *)buf2,
(long)curwin->w_cursor.lnum,
(long)curbuf->b_ml.ml_line_count,
--- 7373,7379 ----
byte_count_cursor, byte_count);
else
vim_snprintf((char *)IObuff, IOSIZE,
! _("Col %s of %s; Line %ld of %ld; Word %lld of %lld;
Char %lld of %lld; Byte %lld of %lld"),
(char *)buf1, (char *)buf2,
(long)curwin->w_cursor.lnum,
(long)curbuf->b_ml.ml_line_count,
***************
*** 7399,7417 ****
#if defined(FEAT_EVAL)
if (dict != NULL)
{
! dict_add_nr_str(dict, "words", (long)word_count, NULL);
! dict_add_nr_str(dict, "chars", (long)char_count, NULL);
! dict_add_nr_str(dict, "bytes", (long)byte_count
# ifdef FEAT_MBYTE
+ bom_count
# endif
, NULL);
dict_add_nr_str(dict, VIsual_active ? "visual_bytes" : "cursor_bytes",
! (long)byte_count_cursor, NULL);
dict_add_nr_str(dict, VIsual_active ? "visual_chars" : "cursor_chars",
! (long)char_count_cursor, NULL);
dict_add_nr_str(dict, VIsual_active ? "visual_words" : "cursor_words",
! (long)word_count_cursor, NULL);
}
#endif
}
--- 7401,7419 ----
#if defined(FEAT_EVAL)
if (dict != NULL)
{
! dict_add_nr_str(dict, "words", word_count, NULL);
! dict_add_nr_str(dict, "chars", char_count, NULL);
! dict_add_nr_str(dict, "bytes", byte_count
# ifdef FEAT_MBYTE
+ bom_count
# endif
, NULL);
dict_add_nr_str(dict, VIsual_active ? "visual_bytes" : "cursor_bytes",
! byte_count_cursor, NULL);
dict_add_nr_str(dict, VIsual_active ? "visual_chars" : "cursor_chars",
! char_count_cursor, NULL);
dict_add_nr_str(dict, VIsual_active ? "visual_words" : "cursor_words",
! word_count_cursor, NULL);
}
#endif
}
*** ../vim-7.4.1975/src/option.c 2016-06-26 18:37:51.890998592 +0200
--- src/option.c 2016-07-01 18:02:49.398215741 +0200
***************
*** 4179,4185 ****
int afterchar; /* character just after option name
*/
int len;
int i;
! long value;
int key;
long_u flags; /* flags for current option */
char_u *varp = NULL; /* pointer to variable for current option */
--- 4179,4185 ----
int afterchar; /* character just after option name
*/
int len;
int i;
! varnumber_T value;
int key;
long_u flags; /* flags for current option */
char_u *varp = NULL; /* pointer to variable for current option */
***************
*** 9102,9108 ****
if ((int *)varp == &curbuf->b_changed)
*numval = curbufIsChanged();
else
! *numval = *(int *)varp;
}
return 1;
}
--- 9102,9108 ----
if ((int *)varp == &curbuf->b_changed)
*numval = curbufIsChanged();
else
! *numval = (long) *(varnumber_T *)varp;
}
return 1;
}
*** ../vim-7.4.1975/src/proto/charset.pro 2016-01-19 13:21:55.833334420
+0100
--- src/proto/charset.pro 2016-07-01 18:02:49.398215741 +0200
***************
*** 52,58 ****
char_u *skiptowhite_esc(char_u *p);
long getdigits(char_u **pp);
int vim_isblankline(char_u *lbuf);
! void vim_str2nr(char_u *start, int *prep, int *len, int what, long *nptr,
unsigned long *unptr, int maxlen);
int hex2nr(int c);
int hexhex2nr(char_u *p);
int rem_backslash(char_u *str);
--- 52,58 ----
char_u *skiptowhite_esc(char_u *p);
long getdigits(char_u **pp);
int vim_isblankline(char_u *lbuf);
! void vim_str2nr(char_u *start, int *prep, int *len, int what, varnumber_T
*nptr, uvarnumber_T *unptr, int maxlen);
int hex2nr(int c);
int hexhex2nr(char_u *p);
int rem_backslash(char_u *str);
*** ../vim-7.4.1975/src/proto/eval.pro 2016-04-14 15:55:58.405348448 +0200
--- src/proto/eval.pro 2016-07-01 18:02:49.398215741 +0200
***************
*** 19,30 ****
int skip_expr(char_u **pp);
char_u *eval_to_string(char_u *arg, char_u **nextcmd, int convert);
char_u *eval_to_string_safe(char_u *arg, char_u **nextcmd, int use_sandbox);
! int eval_to_number(char_u *expr);
list_T *eval_spell_expr(char_u *badword, char_u *expr);
int get_spellword(list_T *list, char_u **pp);
typval_T *eval_expr(char_u *arg, char_u **nextcmd);
int call_vim_function(char_u *func, int argc, char_u **argv, int safe, int
str_arg_only, typval_T *rettv);
! long call_func_retnr(char_u *func, int argc, char_u **argv, int safe);
void *call_func_retstr(char_u *func, int argc, char_u **argv, int safe);
void *call_func_retlist(char_u *func, int argc, char_u **argv, int safe);
void *save_funccal(void);
--- 19,30 ----
int skip_expr(char_u **pp);
char_u *eval_to_string(char_u *arg, char_u **nextcmd, int convert);
char_u *eval_to_string_safe(char_u *arg, char_u **nextcmd, int use_sandbox);
! varnumber_T eval_to_number(char_u *expr);
list_T *eval_spell_expr(char_u *badword, char_u *expr);
int get_spellword(list_T *list, char_u **pp);
typval_T *eval_expr(char_u *arg, char_u **nextcmd);
int call_vim_function(char_u *func, int argc, char_u **argv, int safe, int
str_arg_only, typval_T *rettv);
! varnumber_T call_func_retnr(char_u *func, int argc, char_u **argv, int safe);
void *call_func_retstr(char_u *func, int argc, char_u **argv, int safe);
void *call_func_retlist(char_u *func, int argc, char_u **argv, int safe);
void *save_funccal(void);
***************
*** 76,86 ****
dictitem_T *dictitem_alloc(char_u *key);
void dictitem_free(dictitem_T *item);
int dict_add(dict_T *d, dictitem_T *item);
! int dict_add_nr_str(dict_T *d, char *key, long nr, char_u *str);
int dict_add_list(dict_T *d, char *key, list_T *list);
dictitem_T *dict_find(dict_T *d, char_u *key, int len);
char_u *get_dict_string(dict_T *d, char_u *key, int save);
! long get_dict_number(dict_T *d, char_u *key);
int string2float(char_u *text, float_T *value);
char_u *get_function_name(expand_T *xp, int idx);
char_u *get_expr_name(expand_T *xp, int idx);
--- 76,86 ----
dictitem_T *dictitem_alloc(char_u *key);
void dictitem_free(dictitem_T *item);
int dict_add(dict_T *d, dictitem_T *item);
! int dict_add_nr_str(dict_T *d, char *key, varnumber_T nr, char_u *str);
int dict_add_list(dict_T *d, char *key, list_T *list);
dictitem_T *dict_find(dict_T *d, char_u *key, int len);
char_u *get_dict_string(dict_T *d, char_u *key, int save);
! varnumber_T get_dict_number(dict_T *d, char_u *key);
int string2float(char_u *text, float_T *value);
char_u *get_function_name(expand_T *xp, int idx);
char_u *get_expr_name(expand_T *xp, int idx);
***************
*** 92,99 ****
float_T vim_round(float_T f);
long do_searchpair(char_u *spat, char_u *mpat, char_u *epat, int dir, char_u
*skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit);
char_u *get_callback(typval_T *arg, partial_T **pp);
! void set_vim_var_nr(int idx, long val);
! long get_vim_var_nr(int idx);
char_u *get_vim_var_str(int idx);
list_T *get_vim_var_list(int idx);
void set_vim_var_char(int c);
--- 92,99 ----
float_T vim_round(float_T f);
long do_searchpair(char_u *spat, char_u *mpat, char_u *epat, int dir, char_u
*skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit);
char_u *get_callback(typval_T *arg, partial_T **pp);
! void set_vim_var_nr(int idx, varnumber_T val);
! varnumber_T get_vim_var_nr(int idx);
char_u *get_vim_var_str(int idx);
list_T *get_vim_var_list(int idx);
void set_vim_var_char(int c);
***************
*** 108,115 ****
typval_T *alloc_tv(void);
void free_tv(typval_T *varp);
void clear_tv(typval_T *varp);
! long get_tv_number(typval_T *varp);
! long get_tv_number_chk(typval_T *varp, int *denote);
char_u *get_tv_string(typval_T *varp);
char_u *get_tv_string_buf(typval_T *varp, char_u *buf);
char_u *get_tv_string_chk(typval_T *varp);
--- 108,115 ----
typval_T *alloc_tv(void);
void free_tv(typval_T *varp);
void clear_tv(typval_T *varp);
! varnumber_T get_tv_number(typval_T *varp);
! varnumber_T get_tv_number_chk(typval_T *varp, int *denote);
char_u *get_tv_string(typval_T *varp);
char_u *get_tv_string_buf(typval_T *varp, char_u *buf);
char_u *get_tv_string_chk(typval_T *varp);
*** ../vim-7.4.1975/src/quickfix.c 2016-07-01 17:17:13.294266702 +0200
--- src/quickfix.c 2016-07-01 18:02:49.398215741 +0200
***************
*** 4377,4387 ****
continue;
filename = get_dict_string(d, (char_u *)"filename", TRUE);
! bufnum = get_dict_number(d, (char_u *)"bufnr");
! lnum = get_dict_number(d, (char_u *)"lnum");
! col = get_dict_number(d, (char_u *)"col");
! vcol = get_dict_number(d, (char_u *)"vcol");
! nr = get_dict_number(d, (char_u *)"nr");
type = get_dict_string(d, (char_u *)"type", TRUE);
pattern = get_dict_string(d, (char_u *)"pattern", TRUE);
text = get_dict_string(d, (char_u *)"text", TRUE);
--- 4377,4387 ----
continue;
filename = get_dict_string(d, (char_u *)"filename", TRUE);
! bufnum = (int)get_dict_number(d, (char_u *)"bufnr");
! lnum = (int)get_dict_number(d, (char_u *)"lnum");
! col = (int)get_dict_number(d, (char_u *)"col");
! vcol = (int)get_dict_number(d, (char_u *)"vcol");
! nr = (int)get_dict_number(d, (char_u *)"nr");
type = get_dict_string(d, (char_u *)"type", TRUE);
pattern = get_dict_string(d, (char_u *)"pattern", TRUE);
text = get_dict_string(d, (char_u *)"text", TRUE);
*** ../vim-7.4.1975/src/structs.h 2016-07-01 17:17:13.294266702 +0200
--- src/structs.h 2016-07-01 18:02:49.398215741 +0200
***************
*** 1111,1121 ****
typedef long_u hash_T; /* Type for hi_hash */
! #if VIM_SIZEOF_INT <= 3 /* use long if int is smaller than 32
bits */
! typedef long varnumber_T;
#else
! typedef int varnumber_T;
#endif
typedef double float_T;
typedef struct listvar_S list_T;
--- 1111,1139 ----
typedef long_u hash_T; /* Type for hi_hash */
! #ifdef FEAT_NUM64
! /* Use 64-bit Number. */
! # ifdef WIN3264
! typedef __int64 varnumber_T;
! typedef unsigned __int64 uvarnumber_T;
! # elif defined(HAVE_STDINT_H)
! typedef int64_t varnumber_T;
! typedef uint64_t uvarnumber_T;
! # else
! typedef long varnumber_T;
! typedef unsigned long uvarnumber_T;
! # endif
#else
! /* Use 32-bit Number. */
! # if VIM_SIZEOF_INT <= 3 /* use long if int is smaller than 32 bits */
! typedef long varnumber_T;
! typedef unsigned long uvarnumber_T;
! # else
! typedef int varnumber_T;
! typedef unsigned int uvarnumber_T;
! # endif
#endif
+
typedef double float_T;
typedef struct listvar_S list_T;
*** ../vim-7.4.1975/src/testdir/test_viml.vim 2016-05-31 22:31:19.778640756
+0200
--- src/testdir/test_viml.vim 2016-07-01 18:02:49.398215741 +0200
***************
*** 1197,1202 ****
--- 1197,1230 ----
endfunc
"-------------------------------------------------------------------------------
+ " Test 94: 64-bit Numbers {{{1
+
"-------------------------------------------------------------------------------
+
+ func Test_num64()
+ if !has('num64')
+ return
+ endif
+
+ call assert_notequal( 4294967296, 0)
+ call assert_notequal(-4294967296, 0)
+ call assert_equal( 4294967296, 0xFFFFffff + 1)
+ call assert_equal(-4294967296, -0xFFFFffff - 1)
+
+ call assert_equal( 9223372036854775807, 1 / 0)
+ call assert_equal(-9223372036854775807, -1 / 0)
+ call assert_equal(-9223372036854775808, 0 / 0)
+
+ call assert_equal( 0x7FFFffffFFFFffff, float2nr( 1.0e150))
+ call assert_equal(-0x7FFFffffFFFFffff, float2nr(-1.0e150))
+
+ let rng = range(0xFFFFffff, 0x100000001)
+ call assert_equal([0xFFFFffff, 0x100000000, 0x100000001], rng)
+ call assert_equal(0x100000001, max(rng))
+ call assert_equal(0xFFFFffff, min(rng))
+ call assert_equal(rng, sort(range(0x100000001, 0xFFFFffff, -1), 'N'))
+ endfunc
+
+
"-------------------------------------------------------------------------------
" Modelines {{{1
" vim: ts=8 sw=4 tw=80 fdm=marker
" vim: fdt=substitute(substitute(foldtext(),\
'\\%(^+--\\)\\@<=\\(\\s*\\)\\(.\\{-}\\)\:\ \\%(\"\ \\)\\=\\(Test\
\\d*\\)\:\\s*',\ '\\3\ (\\2)\:\ \\1',\ \"\"),\
'\\(Test\\s*\\)\\(\\d\\)\\D\\@=',\ '\\1\ \\2',\ "")
*** ../vim-7.4.1975/src/version.c 2016-07-01 17:17:13.298266645 +0200
--- src/version.c 2016-07-01 18:09:07.172699440 +0200
***************
*** 455,460 ****
--- 455,465 ----
#else
"-netbeans_intg",
#endif
+ #ifdef FEAT_NUM64
+ "+num64",
+ #else
+ "-num64",
+ #endif
#ifdef FEAT_GUI_W32
# ifdef FEAT_OLE
"+ole",
*** ../vim-7.4.1975/src/version.c 2016-07-01 17:17:13.298266645 +0200
--- src/version.c 2016-07-01 18:09:07.172699440 +0200
***************
*** 755,756 ****
--- 760,763 ----
{ /* Add new patch number below this line */
+ /**/
+ 1976,
/**/
--
hundred-and-one symptoms of being an internet addict:
173. You keep tracking down the email addresses of all your friends
(even childhood friends).
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.