patch 8.2.2923: EBCDIC build is broken
Problem: EBCDIC build is broken.
Solution: Move sortFunctions() to evalfunc.c. (Ken Takata, closes #8306)
diff --git a/src/eval.c b/src/eval.c
index 1ee4a3d..e39c604 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -104,33 +104,6 @@
return (n2 == 0) ? 0 : (n1 % n2);
}
-#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 dependent.
- * On machines using EBCDIC we have to sort it.
- */
- static void
-sortFunctions(void)
-{
- int funcCnt = (int)ARRAY_LENGTH(functions) - 1;
-
- qsort(functions, (size_t)funcCnt, sizeof(struct fst), compare_func_name);
-}
-#endif
-
/*
* Initialize the global and v: variables.
*/
diff --git a/src/evalfunc.c b/src/evalfunc.c
index fcb64f6..8ea48f9 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -1855,6 +1855,33 @@
ret_number, f_xor},
};
+#if defined(EBCDIC) || defined(PROTO)
+/*
+ * Compare funcentry_T by function name.
+ */
+ static int
+compare_func_name(const void *s1, const void *s2)
+{
+ funcentry_T *p1 = (funcentry_T *)s1;
+ funcentry_T *p2 = (funcentry_T *)s2;
+
+ return STRCMP(p1->f_name, p2->f_name);
+}
+
+/*
+ * Sort the function table by function name.
+ * The sorting of the table above is ASCII dependent.
+ * On machines using EBCDIC we have to sort it.
+ */
+ void
+sortFunctions(void)
+{
+ size_t funcCnt = ARRAY_LENGTH(global_functions);
+
+ qsort(global_functions, funcCnt, sizeof(funcentry_T), compare_func_name);
+}
+#endif
+
/*
* Function given to ExpandGeneric() to obtain the list of internal
* or user defined function names.
diff --git a/src/proto/evalfunc.pro b/src/proto/evalfunc.pro
index 2b19448..c1ac55f 100644
--- a/src/proto/evalfunc.pro
+++ b/src/proto/evalfunc.pro
@@ -1,4 +1,5 @@
/* evalfunc.c */
+void sortFunctions(void);
char_u *get_function_name(expand_T *xp, int idx);
char_u *get_expr_name(expand_T *xp, int idx);
int find_internal_func(char_u *name);
@@ -23,5 +24,4 @@
float_T vim_round(float_T f);
long do_searchpair(char_u *spat, char_u *mpat, char_u *epat, int dir, typval_T *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit);
void f_string(typval_T *argvars, typval_T *rettv);
-void f_fullcommand(typval_T *argvars, typval_T *rettv);
/* vim: set ft=c : */
diff --git a/src/version.c b/src/version.c
index 8127314..ee1dfa7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2923,
+/**/
2922,
/**/
2921,