Mercurial > vim
diff src/eval.c @ 10567:82c2c450dad0 v8.0.0173
patch 8.0.0173: build fails with EBCDIC defined
commit https://github.com/vim/vim/commit/a1fa8929395351f03c56f50ca6e891d825123c0f
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jan 12 20:06:33 2017 +0100
patch 8.0.0173: build fails with EBCDIC defined
Problem: When compiling with EBCDIC defined the build fails. (Yaroslav
Kuzmin)
Solution: Move sortFunctions() to the right file. Avoid warning for
redefining __SUSV3.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 12 Jan 2017 20:15:04 +0100 |
parents | ea7fbae33285 |
children | 553f9b9502bc |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -242,14 +242,38 @@ static void list_one_var(dictitem_T *v, static void list_one_var_a(char_u *prefix, char_u *name, int type, char_u *string, int *first); static char_u *find_option_end(char_u **arg, int *opt_flags); -#ifdef EBCDIC -static int compare_func_name(const void *s1, const void *s2); -static void sortFunctions(); -#endif - /* for VIM_VERSION_ defines */ #include "version.h" + +#if defined(EBCDIC) || defined(PROTO) +/* + * Compare struct fst by function name. + */ + static int +compare_func_name(const void *s1, const void *s2) +{ + struct fst *p1 = (struct fst *)s1; + struct fst *p2 = (struct fst *)s2; + + return STRCMP(p1->f_name, p2->f_name); +} + +/* + * Sort the function table by function name. + * The sorting of the table above is ASCII dependant. + * On machines using EBCDIC we have to sort it. + */ + static void +sortFunctions(void) +{ + int funcCnt = (int)(sizeof(functions) / sizeof(struct fst)) - 1; + + qsort(functions, (size_t)funcCnt, sizeof(struct fst), compare_func_name); +} +#endif + + /* * Initialize the global and v: variables. */