To: vim_dev@googlegroups.com Subject: Patch 8.2.0067 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.0067 Problem: ERROR_UNKNOWN clashes on some systems. Solution: Rename ERROR_ to FCERR_. (Ola Söder, closes #5415) Files: src/evalfunc.c, src/userfunc.c, src/vim.h *** ../vim-8.2.0066/src/evalfunc.c 2019-12-27 13:49:19.984946890 +0100 --- src/evalfunc.c 2019-12-31 21:24:07.423857495 +0100 *************** *** 976,989 **** i = find_internal_func(name); if (i < 0) ! return ERROR_UNKNOWN; if (argcount < global_functions[i].f_min_argc) ! return ERROR_TOOFEW; if (argcount > global_functions[i].f_max_argc) ! return ERROR_TOOMANY; argvars[argcount].v_type = VAR_UNKNOWN; global_functions[i].f_func(argvars, rettv); ! return ERROR_NONE; } /* --- 976,989 ---- i = find_internal_func(name); if (i < 0) ! return FCERR_UNKNOWN; if (argcount < global_functions[i].f_min_argc) ! return FCERR_TOOFEW; if (argcount > global_functions[i].f_max_argc) ! return FCERR_TOOMANY; argvars[argcount].v_type = VAR_UNKNOWN; global_functions[i].f_func(argvars, rettv); ! return FCERR_NONE; } /* *************** *** 1003,1015 **** fi = find_internal_func(name); if (fi < 0) ! return ERROR_UNKNOWN; if (global_functions[fi].f_argtype == 0) ! return ERROR_NOTMETHOD; if (argcount + 1 < global_functions[fi].f_min_argc) ! return ERROR_TOOFEW; if (argcount + 1 > global_functions[fi].f_max_argc) ! return ERROR_TOOMANY; if (global_functions[fi].f_argtype == FEARG_LAST) { --- 1003,1015 ---- fi = find_internal_func(name); if (fi < 0) ! return FCERR_UNKNOWN; if (global_functions[fi].f_argtype == 0) ! return FCERR_NOTMETHOD; if (argcount + 1 < global_functions[fi].f_min_argc) ! return FCERR_TOOFEW; if (argcount + 1 > global_functions[fi].f_max_argc) ! return FCERR_TOOMANY; if (global_functions[fi].f_argtype == FEARG_LAST) { *************** *** 1055,1061 **** argv[argcount + 1].v_type = VAR_UNKNOWN; global_functions[fi].f_func(argv, rettv); ! return ERROR_NONE; } /* --- 1055,1061 ---- argv[argcount + 1].v_type = VAR_UNKNOWN; global_functions[fi].f_func(argv, rettv); ! return FCERR_NONE; } /* *** ../vim-8.2.0066/src/userfunc.c 2019-12-29 23:04:20.294639884 +0100 --- src/userfunc.c 2019-12-31 21:24:10.475847397 +0100 *************** *** 549,555 **** if (eval_fname_sid(name)) // "" or "s:" { if (current_sctx.sc_sid <= 0) ! *error = ERROR_SCRIPT; else { sprintf((char *)fname_buf + 3, "%ld_", --- 549,555 ---- if (eval_fname_sid(name)) // "" or "s:" { if (current_sctx.sc_sid <= 0) ! *error = FCERR_SCRIPT; else { sprintf((char *)fname_buf + 3, "%ld_", *************** *** 566,572 **** { fname = alloc(i + STRLEN(name + llen) + 1); if (fname == NULL) ! *error = ERROR_OTHER; else { *tofree = fname; --- 566,572 ---- { fname = alloc(i + STRLEN(name + llen) + 1); if (fname == NULL) ! *error = FCERR_OTHER; else { *tofree = fname; *************** *** 1482,1488 **** funcexe_T *funcexe) // more arguments { int ret = FAIL; ! int error = ERROR_NONE; int i; ufunc_T *fp; char_u fname_buf[FLEN_FIXED + 1]; --- 1482,1488 ---- funcexe_T *funcexe) // more arguments { int ret = FAIL; ! int error = FCERR_NONE; int i; ufunc_T *fp; char_u fname_buf[FLEN_FIXED + 1]; *************** *** 1520,1532 **** // When the dict was bound explicitly use the one from the partial. if (partial->pt_dict != NULL && (selfdict == NULL || !partial->pt_auto)) selfdict = partial->pt_dict; ! if (error == ERROR_NONE && partial->pt_argc > 0) { for (argv_clear = 0; argv_clear < partial->pt_argc; ++argv_clear) { if (argv_clear + argcount_in >= MAX_FUNC_ARGS) { ! error = ERROR_TOOMANY; goto theend; } copy_tv(&partial->pt_argv[argv_clear], &argv[argv_clear]); --- 1520,1532 ---- // When the dict was bound explicitly use the one from the partial. if (partial->pt_dict != NULL && (selfdict == NULL || !partial->pt_auto)) selfdict = partial->pt_dict; ! if (error == FCERR_NONE && partial->pt_argc > 0) { for (argv_clear = 0; argv_clear < partial->pt_argc; ++argv_clear) { if (argv_clear + argcount_in >= MAX_FUNC_ARGS) { ! error = FCERR_TOOMANY; goto theend; } copy_tv(&partial->pt_argv[argv_clear], &argv[argv_clear]); *************** *** 1538,1544 **** } } ! if (error == ERROR_NONE && funcexe->evaluate) { char_u *rfname = fname; --- 1538,1544 ---- } } ! if (error == FCERR_NONE && funcexe->evaluate) { char_u *rfname = fname; *************** *** 1548,1554 **** rettv->v_type = VAR_NUMBER; // default rettv is number zero rettv->vval.v_number = 0; ! error = ERROR_UNKNOWN; if (!builtin_function(rfname, -1)) { --- 1548,1554 ---- rettv->v_type = VAR_NUMBER; // default rettv is number zero rettv->vval.v_number = 0; ! error = FCERR_UNKNOWN; if (!builtin_function(rfname, -1)) { *************** *** 1577,1583 **** } if (fp != NULL && (fp->uf_flags & FC_DELETED)) ! error = ERROR_DELETED; else if (fp != NULL) { if (funcexe->argv_func != NULL) --- 1577,1583 ---- } if (fp != NULL && (fp->uf_flags & FC_DELETED)) ! error = FCERR_DELETED; else if (fp != NULL) { if (funcexe->argv_func != NULL) *************** *** 1598,1608 **** if (fp->uf_flags & FC_RANGE && funcexe->doesrange != NULL) *funcexe->doesrange = TRUE; if (argcount < fp->uf_args.ga_len - fp->uf_def_args.ga_len) ! error = ERROR_TOOFEW; else if (!fp->uf_varargs && argcount > fp->uf_args.ga_len) ! error = ERROR_TOOMANY; else if ((fp->uf_flags & FC_DICT) && selfdict == NULL) ! error = ERROR_DICT; else { int did_save_redo = FALSE; --- 1598,1608 ---- if (fp->uf_flags & FC_RANGE && funcexe->doesrange != NULL) *funcexe->doesrange = TRUE; if (argcount < fp->uf_args.ga_len - fp->uf_def_args.ga_len) ! error = FCERR_TOOFEW; else if (!fp->uf_varargs && argcount > fp->uf_args.ga_len) ! error = FCERR_TOOMANY; else if ((fp->uf_flags & FC_DICT) && selfdict == NULL) ! error = FCERR_DICT; else { int did_save_redo = FALSE; *************** *** 1630,1636 **** if (did_save_redo) restoreRedobuff(&save_redo); restore_search_patterns(); ! error = ERROR_NONE; } } } --- 1630,1636 ---- if (did_save_redo) restoreRedobuff(&save_redo); restore_search_patterns(); ! error = FCERR_NONE; } } } *************** *** 1662,1668 **** */ update_force_abort(); } ! if (error == ERROR_NONE) ret = OK; theend: --- 1662,1668 ---- */ update_force_abort(); } ! if (error == FCERR_NONE) ret = OK; theend: *************** *** 1674,1704 **** { switch (error) { ! case ERROR_UNKNOWN: emsg_funcname(N_("E117: Unknown function: %s"), name); break; ! case ERROR_NOTMETHOD: emsg_funcname( N_("E276: Cannot use function as a method: %s"), name); break; ! case ERROR_DELETED: emsg_funcname(N_("E933: Function was deleted: %s"), name); break; ! case ERROR_TOOMANY: emsg_funcname((char *)e_toomanyarg, name); break; ! case ERROR_TOOFEW: emsg_funcname( N_("E119: Not enough arguments for function: %s"), name); break; ! case ERROR_SCRIPT: emsg_funcname( N_("E120: Using not in a script context: %s"), name); break; ! case ERROR_DICT: emsg_funcname( N_("E725: Calling dict function without Dictionary: %s"), name); --- 1674,1704 ---- { switch (error) { ! case FCERR_UNKNOWN: emsg_funcname(N_("E117: Unknown function: %s"), name); break; ! case FCERR_NOTMETHOD: emsg_funcname( N_("E276: Cannot use function as a method: %s"), name); break; ! case FCERR_DELETED: emsg_funcname(N_("E933: Function was deleted: %s"), name); break; ! case FCERR_TOOMANY: emsg_funcname((char *)e_toomanyarg, name); break; ! case FCERR_TOOFEW: emsg_funcname( N_("E119: Not enough arguments for function: %s"), name); break; ! case FCERR_SCRIPT: emsg_funcname( N_("E120: Using not in a script context: %s"), name); break; ! case FCERR_DICT: emsg_funcname( N_("E725: Calling dict function without Dictionary: %s"), name); *************** *** 3847,3853 **** { ufunc_T *fp = fp_in; funccall_T *fc; ! int error = ERROR_NONE; char_u fname_buf[FLEN_FIXED + 1]; char_u *tofree = NULL; char_u *fname; --- 3847,3853 ---- { ufunc_T *fp = fp_in; funccall_T *fc; ! int error = FCERR_NONE; char_u fname_buf[FLEN_FIXED + 1]; char_u *tofree = NULL; char_u *fname; *** ../vim-8.2.0066/src/vim.h 2019-12-29 13:56:28.696861865 +0100 --- src/vim.h 2019-12-31 21:24:14.203835061 +0100 *************** *** 2551,2565 **** // be freed. // errors for when calling a function ! #define ERROR_UNKNOWN 0 ! #define ERROR_TOOMANY 1 ! #define ERROR_TOOFEW 2 ! #define ERROR_SCRIPT 3 ! #define ERROR_DICT 4 ! #define ERROR_NONE 5 ! #define ERROR_OTHER 6 ! #define ERROR_DELETED 7 ! #define ERROR_NOTMETHOD 8 // function cannot be used as a method // flags for find_name_end() #define FNE_INCL_BR 1 // include [] in name --- 2551,2565 ---- // be freed. // errors for when calling a function ! #define FCERR_UNKNOWN 0 ! #define FCERR_TOOMANY 1 ! #define FCERR_TOOFEW 2 ! #define FCERR_SCRIPT 3 ! #define FCERR_DICT 4 ! #define FCERR_NONE 5 ! #define FCERR_OTHER 6 ! #define FCERR_DELETED 7 ! #define FCERR_NOTMETHOD 8 // function cannot be used as a method // flags for find_name_end() #define FNE_INCL_BR 1 // include [] in name *** ../vim-8.2.0066/src/version.c 2019-12-31 19:24:47.989647273 +0100 --- src/version.c 2019-12-31 21:25:41.591546454 +0100 *************** *** 744,745 **** --- 744,747 ---- { /* Add new patch number below this line */ + /**/ + 67, /**/ -- There are 10 kinds of people: Those who understand binary and those who don't. /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///