Skip to content

Instantly share code, notes, and snippets.

@mattn
Last active January 2, 2016 08:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattn/8278843 to your computer and use it in GitHub Desktop.
Save mattn/8278843 to your computer and use it in GitHub Desktop.
diff -r 55cd783bbc2d src/Make_ming.mak
--- a/src/Make_ming.mak Sun Jan 05 13:29:26 2014 +0100
+++ b/src/Make_ming.mak Mon Jan 06 15:32:44 2014 +0900
@@ -327,7 +327,7 @@
# 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_PATHDEF -DFEAT_$(FEATURES) -DHAVE_STDINT_H
ifeq ($(ARCH),x86-64)
DEFINES+=-DMS_WIN64
endif
diff -r 55cd783bbc2d src/Make_mvc.mak
--- a/src/Make_mvc.mak Sun Jan 05 13:29:26 2014 +0100
+++ b/src/Make_mvc.mak Mon Jan 06 15:32:44 2014 +0900
@@ -347,6 +347,7 @@
$(SNIFF_DEFS) $(CSCOPE_DEFS) $(NETBEANS_DEFS) \
$(NBDEBUG_DEFS) $(XPM_DEFS) \
$(DEFINES) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
+ -DHAVE_STDINT_H \
/Fo$(OUTDIR)/
#>>>>> end of choices
diff -r 55cd783bbc2d src/charset.c
--- a/src/charset.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/charset.c Mon Jan 06 15:32:44 2014 +0900
@@ -1800,20 +1800,20 @@
*/
void
vim_str2nr(start, hexp, len, dooct, dohex, nptr, unptr)
- char_u *start;
- int *hexp; /* return: type of number 0 = decimal, 'x'
+ char_u *start;
+ int *hexp; /* return: type of number 0 = decimal, 'x'
or 'X' is hex, '0' = octal */
- int *len; /* return: detected length of number */
- int dooct; /* recognize octal number */
- int dohex; /* recognize hex number */
- long *nptr; /* return: signed result */
- unsigned long *unptr; /* return: unsigned result */
+ int *len; /* return: detected length of number */
+ int dooct; /* recognize octal number */
+ int dohex; /* recognize hex number */
+ varnumber_T *nptr; /* return: signed result */
+ uint64_t *unptr; /* return: unsigned result */
{
char_u *ptr = start;
int hex = 0; /* default is decimal */
int negative = FALSE;
- unsigned long un = 0;
- int n;
+ uint64_t un = 0;
+ int64_t n;
if (ptr[0] == '-')
{
@@ -1855,7 +1855,7 @@
/* octal */
while ('0' <= *ptr && *ptr <= '7')
{
- un = 8 * un + (unsigned long)(*ptr - '0');
+ un = 8 * un + (uint64_t)(*ptr - '0');
++ptr;
}
}
@@ -1864,7 +1864,7 @@
/* hex */
while (vim_isxdigit(*ptr))
{
- un = 16 * un + (unsigned long)hex2nr(*ptr);
+ un = 16 * un + (uint64_t)hex2nr(*ptr);
++ptr;
}
}
@@ -1873,7 +1873,7 @@
/* decimal */
while (VIM_ISDIGIT(*ptr))
{
- un = 10 * un + (unsigned long)(*ptr - '0');
+ un = 10 * un + (uint64_t)(*ptr - '0');
++ptr;
}
}
@@ -1885,9 +1885,9 @@
if (nptr != NULL)
{
if (negative) /* account for leading '-' for decimal numbers */
- *nptr = -(long)un;
+ *nptr = -(int64_t)un;
else
- *nptr = (long)un;
+ *nptr = (int64_t)un;
}
if (unptr != NULL)
*unptr = un;
diff -r 55cd783bbc2d src/eval.c
--- a/src/eval.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/eval.c Mon Jan 06 15:32:44 2014 +0900
@@ -775,7 +775,7 @@
static typval_T *alloc_tv __ARGS((void));
static typval_T *alloc_string_tv __ARGS((char_u *string));
static void init_tv __ARGS((typval_T *varp));
-static long get_tv_number __ARGS((typval_T *varp));
+static varnumber_T get_tv_number __ARGS((typval_T *varp));
static linenr_T get_tv_lnum __ARGS((typval_T *argvars));
static linenr_T get_tv_lnum_buf __ARGS((typval_T *argvars, buf_T *buf));
static char_u *get_tv_string __ARGS((typval_T *varp));
@@ -1267,7 +1267,7 @@
int skip; /* only parse, don't execute */
{
typval_T tv;
- int retval = FALSE;
+ varnumber_T retval = FALSE;
if (skip)
++emsg_skip;
@@ -1285,7 +1285,7 @@
if (skip)
--emsg_skip;
- return retval;
+ return (int) retval;
}
/*
@@ -1411,12 +1411,12 @@
* Evaluates "expr" silently.
* Returns -1 for an error.
*/
- int
+ varnumber_T
eval_to_number(expr)
char_u *expr;
{
typval_T rettv;
- int retval;
+ varnumber_T retval;
char_u *p = skipwhite(expr);
++emsg_off;
@@ -1529,7 +1529,7 @@
li = li->li_next;
if (li == NULL)
return -1;
- return get_tv_number(&li->li_tv);
+ return (int) get_tv_number(&li->li_tv);
}
#endif
@@ -1572,7 +1572,7 @@
typval_T *rettv;
{
typval_T *argvars;
- long n;
+ varnumber_T n;
int len;
int i;
int doesrange;
@@ -1638,7 +1638,7 @@
* Returns -1 when calling the function fails.
* Uses argv[argc] for the function arguments.
*/
- long
+ varnumber_T
call_func_retnr(func, argc, argv, safe)
char_u *func;
int argc;
@@ -1646,7 +1646,7 @@
int safe; /* use the sandbox */
{
typval_T rettv;
- long retval;
+ varnumber_T retval;
/* All arguments are passed as strings, no conversion to number. */
if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
@@ -1786,7 +1786,7 @@
int *cp;
{
typval_T tv;
- int retval;
+ varnumber_T retval;
char_u *s;
int use_sandbox = was_set_insecurely((char_u *)"foldexpr",
OPT_LOCAL);
@@ -1821,7 +1821,7 @@
--sandbox;
--textlock;
- return retval;
+ return (int)retval;
}
#endif
@@ -3012,7 +3012,7 @@
typval_T *tv2;
char_u *op;
{
- long n;
+ varnumber_T n;
char_u numbuf[NUMBUFLEN];
char_u *s;
@@ -4306,7 +4306,7 @@
exptype_T type = TYPE_UNKNOWN;
int type_is = FALSE; /* TRUE for "is" and "isnot" */
int len = 2;
- long n1, n2;
+ varnumber_T n1, n2;
char_u *s1, *s2;
char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
regmatch_T regmatch;
@@ -4612,7 +4612,7 @@
typval_T var2;
typval_T var3;
int op;
- long n1, n2;
+ varnumber_T n1, n2;
#ifdef FEAT_FLOAT
float_T f1 = 0, f2 = 0;
#endif
@@ -4797,7 +4797,7 @@
{
typval_T var2;
int op;
- long n1, n2;
+ varnumber_T n1, n2;
#ifdef FEAT_FLOAT
int use_float = FALSE;
float_T f1 = 0, f2;
@@ -4977,7 +4977,7 @@
int evaluate;
int want_string UNUSED; /* after "." operator */
{
- long n;
+ varnumber_T n;
int len;
char_u *s;
char_u *start_leader, *end_leader;
@@ -6232,7 +6232,7 @@
/*
* Get list item "l[idx]" as a number.
*/
- static long
+ static int
list_find_nr(l, idx, errorp)
list_T *l;
long idx;
@@ -6247,7 +6247,7 @@
*errorp = TRUE;
return -1L;
}
- return get_tv_number_chk(&li->li_tv, errorp);
+ return (int)get_tv_number_chk(&li->li_tv, errorp);
}
/*
@@ -7371,7 +7371,7 @@
* Get a number item from a dictionary.
* Returns 0 if the entry doesn't exist or out of memory.
*/
- long
+ varnumber_T
get_dict_number(d, key)
dict_T *d;
char_u *key;
@@ -14957,7 +14957,7 @@
typval_T *arg;
proftime_T *tm;
{
- long n1, n2;
+ int n1, n2;
int error = FALSE;
if (arg->v_type != VAR_LIST || arg->vval.v_list == NULL
@@ -15800,7 +15800,7 @@
#ifdef FEAT_RELTIME
if (argvars[3].v_type != VAR_UNKNOWN)
{
- time_limit = get_tv_number_chk(&argvars[3], NULL);
+ time_limit = (long)get_tv_number_chk(&argvars[3], NULL);
if (time_limit < 0)
goto theend;
}
@@ -15901,8 +15901,8 @@
int col;
int c;
- row = get_tv_number_chk(&argvars[0], NULL) - 1;
- col = get_tv_number_chk(&argvars[1], NULL) - 1;
+ 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;
@@ -15924,8 +15924,8 @@
int off;
int c;
- row = get_tv_number_chk(&argvars[0], NULL) - 1;
- col = get_tv_number_chk(&argvars[1], NULL) - 1;
+ 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;
@@ -17437,7 +17437,7 @@
{
int base = 10;
char_u *p;
- long n;
+ varnumber_T n;
if (argvars[1].v_type != VAR_UNKNOWN)
{
@@ -17803,14 +17803,14 @@
{
int id = 0;
#ifdef FEAT_SYN_HL
- long lnum;
- long col;
+ linenr_T lnum;
+ colnr_T 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);
+ 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)))
@@ -17836,7 +17836,7 @@
char_u modebuf[NUMBUFLEN];
int modec;
- id = get_tv_number(&argvars[0]);
+ id = (int)get_tv_number(&argvars[0]);
what = get_tv_string(&argvars[1]);
if (argvars[2].v_type != VAR_UNKNOWN)
{
@@ -17922,7 +17922,7 @@
int id;
#ifdef FEAT_SYN_HL
- id = get_tv_number(&argvars[0]);
+ id = (int)get_tv_number(&argvars[0]);
if (id > 0)
id = syn_get_final_id(id);
@@ -17942,8 +17942,8 @@
typval_T *rettv;
{
#if defined(FEAT_SYN_HL) && defined(FEAT_CONCEAL)
- long lnum;
- long col;
+ linenr_T lnum;
+ colnr_T col;
int syntax_flags = 0;
int cchar;
int matchid = 0;
@@ -17955,7 +17955,7 @@
#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 */
+ col = (colnr_T)get_tv_number(&argvars[1]) - 1; /* -1 on type error */
vim_memset(str, NUL, sizeof(str));
@@ -18004,8 +18004,8 @@
typval_T *rettv;
{
#ifdef FEAT_SYN_HL
- long lnum;
- long col;
+ linenr_T lnum;
+ colnr_T col;
int i;
int id;
#endif
@@ -18015,7 +18015,7 @@
#ifdef FEAT_SYN_HL
lnum = get_tv_lnum(argvars); /* -1 on type error */
- col = get_tv_number(&argvars[1]) - 1; /* -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))
@@ -18894,20 +18894,20 @@
EMSG(_(e_invarg));
else
{
- curwin->w_cursor.lnum = get_dict_number(dict, (char_u *)"lnum");
- curwin->w_cursor.col = get_dict_number(dict, (char_u *)"col");
+ curwin->w_cursor.lnum = (int)get_dict_number(dict, (char_u *)"lnum");
+ curwin->w_cursor.col = (int)get_dict_number(dict, (char_u *)"col");
#ifdef FEAT_VIRTUALEDIT
- curwin->w_cursor.coladd = get_dict_number(dict, (char_u *)"coladd");
-#endif
- curwin->w_curswant = get_dict_number(dict, (char_u *)"curswant");
+ curwin->w_cursor.coladd = (colnr_T)get_dict_number(dict, (char_u *)"coladd");
+#endif
+ curwin->w_curswant = (colnr_T)get_dict_number(dict, (char_u *)"curswant");
curwin->w_set_curswant = FALSE;
- set_topline(curwin, get_dict_number(dict, (char_u *)"topline"));
+ set_topline(curwin, (linenr_T)get_dict_number(dict, (char_u *)"topline"));
#ifdef FEAT_DIFF
- curwin->w_topfill = get_dict_number(dict, (char_u *)"topfill");
-#endif
- curwin->w_leftcol = get_dict_number(dict, (char_u *)"leftcol");
- curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
+ curwin->w_topfill = (int)get_dict_number(dict, (char_u *)"topfill");
+#endif
+ curwin->w_leftcol = (colnr_T)get_dict_number(dict, (char_u *)"leftcol");
+ curwin->w_skipcol = (colnr_T)get_dict_number(dict, (char_u *)"skipcol");
check_cursor();
win_new_height(curwin, curwin->w_height);
@@ -19532,7 +19532,7 @@
void
set_vim_var_nr(idx, val)
int idx;
- long val;
+ varnumber_T val;
{
vimvars[idx].vv_nr = val;
}
@@ -19540,7 +19540,7 @@
/*
* Get number v: variable value.
*/
- long
+ varnumber_T
get_vim_var_nr(idx)
int idx;
{
@@ -20035,7 +20035,7 @@
* caller of incompatible types: it sets *denote to TRUE if "denote"
* is not NULL or returns -1 otherwise.
*/
- static long
+ static varnumber_T
get_tv_number(varp)
typval_T *varp;
{
@@ -20044,17 +20044,17 @@
return get_tv_number_chk(varp, &error); /* return 0L on error */
}
- long
+ varnumber_T
get_tv_number_chk(varp, denote)
typval_T *varp;
int *denote;
{
- long n = 0L;
+ varnumber_T n = 0L;
switch (varp->v_type)
{
case VAR_NUMBER:
- return (long)(varp->vval.v_number);
+ return varp->vval.v_number;
#ifdef FEAT_FLOAT
case VAR_FLOAT:
EMSG(_("E805: Using a Float as a Number"));
@@ -20097,12 +20097,12 @@
typval_T rettv;
linenr_T lnum;
- lnum = get_tv_number_chk(&argvars[0], NULL);
+ 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 = rettv.vval.v_number;
+ lnum = (linenr_T) rettv.vval.v_number;
clear_tv(&rettv);
}
return lnum;
@@ -20123,7 +20123,7 @@
&& argvars[0].vval.v_string[0] == '$'
&& buf != NULL)
return buf->b_ml.ml_line_count;
- return get_tv_number_chk(&argvars[0], NULL);
+ return (linenr_T) get_tv_number_chk(&argvars[0], NULL);
}
/*
@@ -20172,7 +20172,11 @@
switch (varp->v_type)
{
case VAR_NUMBER:
- sprintf((char *)buf, "%ld", (long)varp->vval.v_number);
+#ifdef _WIN32
+ sprintf((char *)buf, "%I64d", (int64_t)varp->vval.v_number);
+#else
+ sprintf((char *)buf, "%lld", (int64_t)varp->vval.v_number);
+#endif
return buf;
case VAR_FUNC:
EMSG(_("E729: using Funcref as a String"));
diff -r 55cd783bbc2d src/ex_cmds.c
--- a/src/ex_cmds.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/ex_cmds.c Mon Jan 06 15:32:44 2014 +0900
@@ -284,8 +284,8 @@
typedef struct
{
linenr_T lnum; /* line number */
- long start_col_nr; /* starting column number or number */
- long end_col_nr; /* ending column number */
+ varnumber_T start_col_nr; /* starting column number or number */
+ varnumber_T end_col_nr; /* ending column number */
} sorti_T;
static int
diff -r 55cd783bbc2d src/ex_getln.c
--- a/src/ex_getln.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/ex_getln.c Mon Jan 06 15:32:44 2014 +0900
@@ -5877,7 +5877,7 @@
{
int len;
int first = FALSE;
- long num;
+ varnumber_T num;
*str = skipwhite(*str);
if (**str == '-' || vim_isdigit(**str)) /* parse "from" part of range */
diff -r 55cd783bbc2d src/fileio.c
--- a/src/fileio.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/fileio.c Mon Jan 06 15:32:44 2014 +0900
@@ -9492,7 +9492,7 @@
#ifdef FEAT_EVAL
/* set v:cmdarg (only when there is a matching pattern) */
- save_cmdbang = get_vim_var_nr(VV_CMDBANG);
+ save_cmdbang = (long)get_vim_var_nr(VV_CMDBANG);
if (eap != NULL)
{
save_cmdarg = set_cmdarg(eap, NULL);
diff -r 55cd783bbc2d src/fold.c
--- a/src/fold.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/fold.c Mon Jan 06 15:32:44 2014 +0900
@@ -3112,7 +3112,7 @@
/* 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);
+ n = (int)eval_foldexpr(flp->wp->w_p_fde, &c);
KeyTyped = save_keytyped;
switch (c)
diff -r 55cd783bbc2d src/message.c
--- a/src/message.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/message.c Mon Jan 06 15:32:44 2014 +0900
@@ -3921,7 +3921,7 @@
#if defined(HAVE_STDARG_H) && defined(FEAT_EVAL)
static char *e_printf = N_("E766: Insufficient arguments for printf()");
-static long tv_nr __ARGS((typval_T *tvs, int *idxp));
+static varnumber_T tv_nr __ARGS((typval_T *tvs, int *idxp));
static char *tv_str __ARGS((typval_T *tvs, int *idxp));
# ifdef FEAT_FLOAT
static double tv_float __ARGS((typval_T *tvs, int *idxp));
@@ -3930,13 +3930,13 @@
/*
* Get number argument from "idxp" entry in "tvs". First entry is 1.
*/
- static long
+ static varnumber_T
tv_nr(tvs, idxp)
typval_T *tvs;
int *idxp;
{
int idx = *idxp - 1;
- long n = 0;
+ varnumber_T n = 0;
int err = FALSE;
if (tvs[idx].v_type == VAR_UNKNOWN)
@@ -3993,7 +3993,7 @@
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;
+ f = (double) tvs[idx].vval.v_number;
else
EMSG(_("E807: Expected Float argument for printf()"));
}
@@ -4218,7 +4218,7 @@
/* parse field width */
if (*p == '*')
{
- int j;
+ varnumber_T j;
p++;
j =
@@ -4228,13 +4228,13 @@
# if defined(FEAT_EVAL)
tvs != NULL ? tv_nr(tvs, &arg_idx) :
# endif
- va_arg(ap, int);
+ va_arg(ap, varnumber_T);
#endif
if (j >= 0)
- min_field_width = j;
+ min_field_width = (size_t) j;
else
{
- min_field_width = -j;
+ min_field_width = (size_t) -j;
justify_left = 1;
}
}
@@ -4256,7 +4256,7 @@
precision_specified = 1;
if (*p == '*')
{
- int j;
+ varnumber_T j;
j =
#ifndef HAVE_STDARG_H
@@ -4265,11 +4265,11 @@
# if defined(FEAT_EVAL)
tvs != NULL ? tv_nr(tvs, &arg_idx) :
# endif
- va_arg(ap, int);
+ va_arg(ap, varnumber_T);
#endif
p++;
if (j >= 0)
- precision = j;
+ precision = (size_t) j;
else
{
precision_specified = 0;
@@ -4332,7 +4332,7 @@
case 'c':
{
- int j;
+ varnumber_T j;
j =
#ifndef HAVE_STDARG_H
@@ -4341,7 +4341,7 @@
# if defined(FEAT_EVAL)
tvs != NULL ? tv_nr(tvs, &arg_idx) :
# endif
- va_arg(ap, int);
+ va_arg(ap, varnumber_T);
#endif
/* standard demands unsigned char */
uchar_arg = (unsigned char)j;
@@ -4426,12 +4426,12 @@
/* only defined for length modifier h, or for no
* length modifiers */
- int int_arg = 0;
- unsigned int uint_arg = 0;
+ int64_t int_arg = 0;
+ uint64_t uint_arg = 0;
/* only defined for length modifier l */
- long int long_arg = 0;
- unsigned long int ulong_arg = 0;
+ int64_t long_arg = 0;
+ uint64_t ulong_arg = 0;
/* pointer argument value -only defined for p
* conversion */
@@ -4467,7 +4467,7 @@
# if defined(FEAT_EVAL)
tvs != NULL ? tv_nr(tvs, &arg_idx) :
# endif
- va_arg(ap, int);
+ va_arg(ap, varnumber_T);
#endif
if (int_arg > 0)
arg_sign = 1;
diff -r 55cd783bbc2d src/misc1.c
--- a/src/misc1.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/misc1.c Mon Jan 06 15:32:44 2014 +0900
@@ -8843,7 +8843,7 @@
if (use_sandbox)
++sandbox;
++textlock;
- indent = eval_to_number(curbuf->b_p_inde);
+ indent = (int)eval_to_number(curbuf->b_p_inde);
if (use_sandbox)
--sandbox;
--textlock;
diff -r 55cd783bbc2d src/misc2.c
--- a/src/misc2.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/misc2.c Mon Jan 06 15:32:44 2014 +0900
@@ -2773,7 +2773,7 @@
int modifiers;
int bit;
int key;
- unsigned long n;
+ uint64_t n;
int l;
src = *srcp;
diff -r 55cd783bbc2d src/ops.c
--- a/src/ops.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/ops.c Mon Jan 06 15:32:44 2014 +0900
@@ -4803,7 +4803,7 @@
*/
if (use_sandbox)
++sandbox;
- r = eval_to_number(curbuf->b_p_fex);
+ r = (int) eval_to_number(curbuf->b_p_fex);
if (use_sandbox)
--sandbox;
@@ -5414,8 +5414,8 @@
char_u buf2[NUMBUFLEN];
int hex; /* 'X' or 'x': hex; '0': octal */
static int hexupper = FALSE; /* 0xABC */
- unsigned long n;
- long_u oldn;
+ uint64_t n;
+ uint64_t oldn;
char_u *ptr;
int c;
int length = 0; /* character length of the number */
diff -r 55cd783bbc2d src/option.c
--- a/src/option.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/option.c Mon Jan 06 15:32:44 2014 +0900
@@ -8855,7 +8855,7 @@
if ((int *)varp == &curbuf->b_changed)
*numval = curbufIsChanged();
else
- *numval = *(int *)varp;
+ *numval = (long) *(varnumber_T *)varp;
}
return 1;
}
diff -r 55cd783bbc2d src/proto/charset.pro
--- a/src/proto/charset.pro Sun Jan 05 13:29:26 2014 +0100
+++ b/src/proto/charset.pro Mon Jan 06 15:32:44 2014 +0900
@@ -49,7 +49,7 @@
char_u *skiptowhite_esc __ARGS((char_u *p));
long getdigits __ARGS((char_u **pp));
int vim_isblankline __ARGS((char_u *lbuf));
-void vim_str2nr __ARGS((char_u *start, int *hexp, int *len, int dooct, int dohex, long *nptr, unsigned long *unptr));
+void vim_str2nr __ARGS((char_u *start, int *hexp, int *len, int dooct, int dohex, varnumber_T *nptr, uint64_t *unptr));
int hex2nr __ARGS((int c));
int hexhex2nr __ARGS((char_u *p));
int rem_backslash __ARGS((char_u *str));
diff -r 55cd783bbc2d src/proto/eval.pro
--- a/src/proto/eval.pro Sun Jan 05 13:29:26 2014 +0100
+++ b/src/proto/eval.pro Mon Jan 06 15:32:44 2014 +0900
@@ -19,12 +19,12 @@
int skip_expr __ARGS((char_u **pp));
char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int convert));
char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox));
-int eval_to_number __ARGS((char_u *expr));
+varnumber_T eval_to_number __ARGS((char_u *expr));
list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
int get_spellword __ARGS((list_T *list, char_u **pp));
typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, int str_arg_only, typval_T *rettv));
-long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+varnumber_T call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
void *save_funccal __ARGS((void));
@@ -74,7 +74,7 @@
int dict_add_list __ARGS((dict_T *d, char *key, list_T *list));
dictitem_T *dict_find __ARGS((dict_T *d, char_u *key, int len));
char_u *get_dict_string __ARGS((dict_T *d, char_u *key, int save));
-long get_dict_number __ARGS((dict_T *d, char_u *key));
+varnumber_T get_dict_number __ARGS((dict_T *d, char_u *key));
char_u *get_function_name __ARGS((expand_T *xp, int idx));
char_u *get_expr_name __ARGS((expand_T *xp, int idx));
int func_call __ARGS((char_u *name, typval_T *args, dict_T *selfdict, typval_T *rettv));
@@ -82,21 +82,23 @@
void mzscheme_call_vim __ARGS((char_u *name, typval_T *args, typval_T *rettv));
float_T vim_round __ARGS((float_T f));
long do_searchpair __ARGS((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));
-void set_vim_var_nr __ARGS((int idx, long val));
-long get_vim_var_nr __ARGS((int idx));
+void set_vim_var_nr __ARGS((int idx, varnumber_T val));
+varnumber_T get_vim_var_nr __ARGS((int idx));
char_u *get_vim_var_str __ARGS((int idx));
list_T *get_vim_var_list __ARGS((int idx));
+dict_T *get_vim_var_dict __ARGS((int idx));
void set_vim_var_char __ARGS((int c));
void set_vcount __ARGS((long count, long count1, int set_prevcount));
void set_vim_var_string __ARGS((int idx, char_u *val, int len));
void set_vim_var_list __ARGS((int idx, list_T *val));
+void set_vim_var_dict __ARGS((int idx, dict_T *val));
void set_reg_var __ARGS((int c));
char_u *v_exception __ARGS((char_u *oldval));
char_u *v_throwpoint __ARGS((char_u *oldval));
char_u *set_cmdarg __ARGS((exarg_T *eap, char_u *oldarg));
void free_tv __ARGS((typval_T *varp));
void clear_tv __ARGS((typval_T *varp));
-long get_tv_number_chk __ARGS((typval_T *varp, int *denote));
+varnumber_T get_tv_number_chk __ARGS((typval_T *varp, int *denote));
char_u *get_tv_string_chk __ARGS((typval_T *varp));
char_u *get_var_value __ARGS((char_u *name));
void new_script_vars __ARGS((scid_T id));
diff -r 55cd783bbc2d src/quickfix.c
--- a/src/quickfix.c Sun Jan 05 13:29:26 2014 +0100
+++ b/src/quickfix.c Mon Jan 06 15:32:44 2014 +0900
@@ -3841,11 +3841,11 @@
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");
+ 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);
diff -r 55cd783bbc2d src/structs.h
--- a/src/structs.h Sun Jan 05 13:29:26 2014 +0100
+++ b/src/structs.h Mon Jan 06 15:32:44 2014 +0900
@@ -15,8 +15,8 @@
* valid in include files. Has been fixed in version 6.58.
*/
#if defined(SASC) && SASC < 658
-typedef long linenr_T;
-typedef int colnr_T;
+typedef varnumber_T linenr_T;
+typedef varnumber_T colnr_T;
typedef unsigned short short_u;
#endif
@@ -1088,12 +1088,7 @@
typedef long_u hash_T; /* Type for hi_hash */
-
-#if SIZEOF_INT <= 3 /* use long if int is smaller than 32 bits */
-typedef long varnumber_T;
-#else
-typedef int varnumber_T;
-#endif
+typedef int64_t varnumber_T;
typedef double float_T;
typedef struct listvar_S list_T;
@tarrsalah
Copy link

Why do you make gists of diff files ? (any practical reasons ?)

@dpelle
Copy link

dpelle commented Jan 6, 2014

int64_t is not portable C.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment