uim/uim-ftbfs.patch
Akira TAGOH c732cd9515 Fix FTBFS
Resolves: rhbz#2341480
2025-01-29 11:43:26 +09:00

283 lines
10 KiB
Diff

--- uim-1.8.9.orig/uim/uim-scm-sigscheme.c 2017-08-14 09:07:27.000000000 +0900
+++ uim-1.8.9/uim/uim-scm-sigscheme.c 2025-01-29 11:24:25.385409870 +0900
@@ -722,7 +722,7 @@
return (void **)uim_scm_call_with_gc_ready_stack((uim_gc_gate_func_ptr)uim_scm_list2array_internal, &args);
}
-
+
static void *
uim_scm_list2array_internal(struct list2array_args *args)
{
@@ -780,7 +780,7 @@
return (void **)uim_scm_call_with_gc_ready_stack((uim_gc_gate_func_ptr)uim_scm_vector2array_internal, &args);
}
-
+
static void *
uim_scm_vector2array_internal(struct vector2array_args *args)
{
@@ -1225,7 +1225,7 @@
assert(name);
assert(func);
- scm_register_func(name, (scm_procedure_fixed_0)func, SCM_PROCEDURE_FIXED_0);
+ scm_register_func(name, (ScmFuncType)func, SCM_PROCEDURE_FIXED_0);
}
void
@@ -1235,7 +1235,7 @@
assert(name);
assert(func);
- scm_register_func(name, (scm_procedure_fixed_1)func, SCM_PROCEDURE_FIXED_1);
+ scm_register_func(name, (ScmFuncType)func, SCM_PROCEDURE_FIXED_1);
}
void
@@ -1245,7 +1245,7 @@
assert(name);
assert(func);
- scm_register_func(name, (scm_procedure_fixed_2)func, SCM_PROCEDURE_FIXED_2);
+ scm_register_func(name, (ScmFuncType)func, SCM_PROCEDURE_FIXED_2);
}
void
@@ -1256,7 +1256,7 @@
assert(name);
assert(func);
- scm_register_func(name, (scm_procedure_fixed_3)func, SCM_PROCEDURE_FIXED_3);
+ scm_register_func(name, (ScmFuncType)func, SCM_PROCEDURE_FIXED_3);
}
void
@@ -1267,7 +1267,7 @@
assert(name);
assert(func);
- scm_register_func(name, (scm_procedure_fixed_4)func, SCM_PROCEDURE_FIXED_4);
+ scm_register_func(name, (ScmFuncType)func, SCM_PROCEDURE_FIXED_4);
}
void
@@ -1279,7 +1279,7 @@
assert(name);
assert(func);
- scm_register_func(name, (scm_procedure_fixed_5)func, SCM_PROCEDURE_FIXED_5);
+ scm_register_func(name, (ScmFuncType)func, SCM_PROCEDURE_FIXED_5);
}
void
diff -pruN uim-1.8.9.orig/sigscheme/src/eval.c uim-1.8.9/sigscheme/src/eval.c
--- uim-1.8.9.orig/sigscheme/src/eval.c 2015-05-30 22:08:55.000000000 +0900
+++ uim-1.8.9/sigscheme/src/eval.c 2025-01-29 11:40:17.497789730 +0900
@@ -48,6 +48,24 @@
/*=======================================
File Local Type Definitions
=======================================*/
+typedef union ScmFuncClosure {
+ ScmObj (* efunc1) (ScmEvalState *);
+ ScmObj (* efunc2) (ScmObj, ScmEvalState *);
+ ScmObj (* efunc3) (ScmObj, ScmObj, ScmEvalState *);
+ ScmObj (* efunc4) (ScmObj, ScmObj, ScmObj, ScmEvalState *);
+ ScmObj (* efunc5) (ScmObj, ScmObj, ScmObj, ScmObj, ScmEvalState *);
+ ScmObj (* efunc6) (ScmObj, ScmObj, ScmObj, ScmObj, ScmObj, ScmEvalState *);
+ ScmObj (* efunc7) (ScmObj, ScmObj, ScmObj, ScmObj, ScmObj, ScmObj, ScmEvalState *);
+ ScmObj (* func0) (void);
+ ScmObj (* func1) (ScmObj);
+ ScmObj (* func2) (ScmObj, ScmObj);
+ ScmObj (* func3) (ScmObj, ScmObj, ScmObj);
+ ScmObj (* func4) (ScmObj, ScmObj, ScmObj, ScmObj);
+ ScmObj (* func5) (ScmObj, ScmObj, ScmObj, ScmObj, ScmObj);
+ ScmObj (* func6) (ScmObj, ScmObj, ScmObj, ScmObj, ScmObj, ScmObj);
+ ScmObj (* func7) (ScmObj, ScmObj, ScmObj, ScmObj, ScmObj, ScmObj, ScmObj);
+ ScmObj (* rfunc) (ScmObj, ScmObj, enum ScmReductionState *);
+} ScmFuncClosure;
/*=======================================
Variable Definitions
@@ -56,7 +74,7 @@
/*=======================================
File Local Function Declarations
=======================================*/
-static ScmObj reduce(ScmObj (*func)(), ScmObj args, ScmObj env,
+static ScmObj reduce(ScmFuncClosure *func, ScmObj args, ScmObj env,
enum ScmValueType need_eval);
#if SCM_USE_CONTINUATION
static void call_continuation(ScmObj cont, ScmObj args,
@@ -96,7 +114,7 @@ scm_call(ScmObj proc, ScmObj args)
/* ARGS should NOT have been evaluated yet. */
static ScmObj
-reduce(ScmObj (*func)(), ScmObj args, ScmObj env, enum ScmValueType need_eval)
+reduce(ScmFuncClosure *func, ScmObj args, ScmObj env, enum ScmValueType need_eval)
{
ScmObj left, right;
enum ScmReductionState state;
@@ -104,7 +122,7 @@ reduce(ScmObj (*func)(), ScmObj args, Sc
if (NO_MORE_ARG(args)) {
state = SCM_REDUCE_0;
- return (*func)(SCM_INVALID, SCM_INVALID, &state);
+ return (func->rfunc)(SCM_INVALID, SCM_INVALID, &state);
}
left = POP(args);
@@ -113,7 +131,7 @@ reduce(ScmObj (*func)(), ScmObj args, Sc
if (NO_MORE_ARG(args)) {
state = SCM_REDUCE_1;
- return (*func)(left, left, &state);
+ return (func->rfunc)(left, left, &state);
}
/* Reduce upto the penult. */
@@ -121,7 +139,7 @@ reduce(ScmObj (*func)(), ScmObj args, Sc
FOR_EACH_BUTLAST (right, args) {
if (need_eval)
right = EVAL(right, env);
- left = (*func)(left, right, &state);
+ left = (func->rfunc)(left, right, &state);
if (state == SCM_REDUCE_STOP)
return left;
}
@@ -131,7 +149,7 @@ reduce(ScmObj (*func)(), ScmObj args, Sc
state = SCM_REDUCE_LAST;
if (need_eval)
right = EVAL(right, env);
- return (*func)(left, right, &state);
+ return (func->rfunc)(left, right, &state);
}
#if SCM_USE_CONTINUATION
@@ -235,7 +253,7 @@ call(ScmObj proc, ScmObj args, ScmEvalSt
enum ScmValueType need_eval)
{
ScmObj env, vals;
- ScmObj (*func)();
+ ScmFuncClosure func;
enum ScmFuncTypeCode type;
scm_bool syntaxp;
int mand_count, i;
@@ -324,10 +342,10 @@ call(ScmObj proc, ScmObj args, ScmEvalSt
/* We have a C function. */
type = SCM_FUNC_TYPECODE(proc);
- func = SCM_FUNC_CFUNC(proc);
+ func = (ScmFuncClosure) SCM_FUNC_CFUNC(proc);
if (type == SCM_REDUCTION_OPERATOR)
- return reduce(func, args, env, need_eval);
+ return reduce(&func, args, env, need_eval);
syntaxp = type & SCM_FUNCTYPE_SYNTAX;
if (syntaxp) {
@@ -379,28 +397,28 @@ call(ScmObj proc, ScmObj args, ScmEvalSt
if (type & SCM_FUNCTYPE_TAILREC) {
switch (i) {
case 1:
- return (*func)(eval_state);
+ return (func.efunc1)(eval_state);
case 2:
- return (*func)(argbuf[0], eval_state);
+ return (func.efunc2)(argbuf[0], eval_state);
case 3:
#if SCM_FUNCTYPE_MAND_MAX >= 1
- return (*func)(argbuf[0], argbuf[1], eval_state);
+ return (func.efunc3)(argbuf[0], argbuf[1], eval_state);
#endif
case 4:
#if SCM_FUNCTYPE_MAND_MAX >= 2
- return (*func)(argbuf[0], argbuf[1], argbuf[2], eval_state);
+ return (func.efunc4)(argbuf[0], argbuf[1], argbuf[2], eval_state);
#endif
case 5:
#if SCM_FUNCTYPE_MAND_MAX >= 3
- return (*func)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], eval_state);
+ return (func.efunc5)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], eval_state);
#endif
case 6:
#if SCM_FUNCTYPE_MAND_MAX >= 4
- return (*func)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], argbuf[4], eval_state);
+ return (func.efunc6)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], argbuf[4], eval_state);
#endif
case 7:
#if SCM_FUNCTYPE_MAND_MAX >= 5
- return (*func)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], argbuf[4], argbuf[5], eval_state);
+ return (func.efunc7)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], argbuf[4], argbuf[5], eval_state);
#endif
default:
SCM_NOTREACHED;
@@ -410,30 +428,30 @@ call(ScmObj proc, ScmObj args, ScmEvalSt
switch (i) {
case 0:
- return (*func)();
+ return (func.func0)();
case 1:
- return (*func)(argbuf[0]);
+ return (func.func1)(argbuf[0]);
case 2:
- return (*func)(argbuf[0], argbuf[1]);
+ return (func.func2)(argbuf[0], argbuf[1]);
case 3:
#if SCM_FUNCTYPE_MAND_MAX >= 1
- return (*func)(argbuf[0], argbuf[1], argbuf[2]);
+ return (func.func3)(argbuf[0], argbuf[1], argbuf[2]);
#endif
case 4:
#if SCM_FUNCTYPE_MAND_MAX >= 2
- return (*func)(argbuf[0], argbuf[1], argbuf[2], argbuf[3]);
+ return (func.func4)(argbuf[0], argbuf[1], argbuf[2], argbuf[3]);
#endif
case 5:
#if SCM_FUNCTYPE_MAND_MAX >= 3
- return (*func)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], argbuf[4]);
+ return (func.func5)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], argbuf[4]);
#endif
case 6:
#if SCM_FUNCTYPE_MAND_MAX >= 4
- return (*func)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], argbuf[4], argbuf[5]);
+ return (func.func6)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], argbuf[4], argbuf[5]);
#endif
case 7:
#if SCM_FUNCTYPE_MAND_MAX >= 5
- return (*func)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], argbuf[4], argbuf[5], argbuf[6]);
+ return (func.func7)(argbuf[0], argbuf[1], argbuf[2], argbuf[3], argbuf[4], argbuf[5], argbuf[6]);
#endif
default:
diff -pruN uim-1.8.9.orig/sigscheme/src/module-srfi34.c uim-1.8.9/sigscheme/src/module-srfi34.c
--- uim-1.8.9.orig/sigscheme/src/module-srfi34.c 2015-05-30 22:08:55.000000000 +0900
+++ uim-1.8.9/sigscheme/src/module-srfi34.c 2025-01-29 11:40:17.498789749 +0900
@@ -190,19 +190,19 @@ scm_initialize_srfi34(void)
SCM_ASSERT_FUNCTYPE(scm_syntax_fixed_tailrec_0, &guard_body);
l_syn_raw_quote
- = MAKE_FUNC(SCM_SYNTAX_FIXED_1, &raw_quote);
+ = MAKE_FUNC(SCM_SYNTAX_FIXED_1, (ScmFuncType)&raw_quote);
l_syn_set_cur_handlers
- = MAKE_FUNC(SCM_SYNTAX_FIXED_1, &set_cur_handlers);
+ = MAKE_FUNC(SCM_SYNTAX_FIXED_1, (ScmFuncType)&set_cur_handlers);
l_proc_with_exception_handlers
- = MAKE_FUNC(SCM_PROCEDURE_FIXED_2, &with_exception_handlers);
+ = MAKE_FUNC(SCM_PROCEDURE_FIXED_2, (ScmFuncType)&with_exception_handlers);
l_syn_guard_internal
- = MAKE_FUNC(SCM_SYNTAX_FIXED_1, &guard_internal);
+ = MAKE_FUNC(SCM_SYNTAX_FIXED_1, (ScmFuncType)&guard_internal);
l_syn_guard_handler
- = MAKE_FUNC(SCM_SYNTAX_FIXED_TAILREC_1, &guard_handler);
+ = MAKE_FUNC(SCM_SYNTAX_FIXED_TAILREC_1, (ScmFuncType)&guard_handler);
l_syn_guard_handler_body
- = MAKE_FUNC(SCM_SYNTAX_FIXED_1, &guard_handler_body);
+ = MAKE_FUNC(SCM_SYNTAX_FIXED_1, (ScmFuncType)&guard_handler_body);
l_syn_guard_body
- = MAKE_FUNC(SCM_SYNTAX_FIXED_TAILREC_0, &guard_body);
+ = MAKE_FUNC(SCM_SYNTAX_FIXED_TAILREC_0, (ScmFuncType)&guard_body);
/*
* The 'error' procedure should not be invoked directly by