Hi,
Diffs to util_expr_eval.c and util_expr_scan.c below fix issues noted and now get apache2 nlm.
Thx
Norm

On 7/11/2010 9:10 AM, Stefan Fritsch wrote:
Hi,

On Sun, 7 Nov 2010, NormW wrote:
See a needed tweak similar to the following for the root build file:

...

Also 'needed' is the following minor reshuffle in util_expr_eval.c:

...

Commited. Thanks.

And, see the following, but not yet solved:
Compiling server/util_expr_eval.c
### mwccnlm Compiler:
# File: server\util_expr_eval.c
# --------------------------------
# 86: ap_expr_string_func_t *func = info->node_arg1;
# Error: ^
# illegal implicit conversion from 'const void *const ' to
# 'char * (*)(struct *, const void *, const char *)'
### mwccnlm Compiler:
# 189: ap_expr_list_func_t *func = info->node_arg1;
# Error: ^
# illegal implicit conversion from 'const void *const ' to
# 'struct apr_array_header_t * (*)(struct *, const void *, const char
*)'

Compiling server/util_expr_scan.c
### mwccnlm Compiler:
# File: server\util_expr_scan.c
# --------------------------------
# 1141: char c[2] = { yytext[0], '\0' };
# Error: ^
# illegal constant expression
### mwccnlm Compiler:
# 1446: char c[2] = { yytext[0], '\0' };
# Error: ^
# illegal constant expression


Please try this patch:

--- server/util_expr_scan.c (Revision 1032160)
+++ server/util_expr_scan.c (Arbeitskopie)
@@ -1138,9 +1138,8 @@
YY_RULE_SETUP
#line 198 "util_expr_scan.l"
{
- char c[2] = { yytext[0], '\0' };
char *msg = apr_psprintf(yyextra->pool,
- "Invalid character in variable name '%s'", c);
+ "Invalid character in variable name '%c'", yytext[0]);
PERROR(msg);
}
YY_BREAK
@@ -1443,8 +1442,7 @@
YY_RULE_SETUP
#line 336 "util_expr_scan.l"
{
- char c[2] = { yytext[0], '\0' };
- char *msg = apr_psprintf(yyextra->pool, "Parse error near '%s'", c);
+ char *msg = apr_psprintf(yyextra->pool, "Parse error near '%c'",
yytext[0]);
PERROR(msg);
}
YY_BREAK
--- server/util_expr_eval.c (Revision 1032163)
+++ server/util_expr_eval.c (Arbeitskopie)
@@ -83,7 +83,7 @@
static const char *ap_expr_eval_string_func(ap_expr_eval_ctx *ctx, const
ap_expr *info,
const ap_expr *arg)
{
- ap_expr_string_func_t *func = info->node_arg1;
+ ap_expr_string_func_t *func = (ap_expr_string_func_t *)info->node_arg1;
const void *data = info->node_arg2;

AP_DEBUG_ASSERT(info->node_op == op_StringFuncInfo);
@@ -186,7 +186,7 @@
else if (e2->node_op == op_ListFuncCall) {
const ap_expr *info = e2->node_arg1;
const ap_expr *arg = e2->node_arg2;
- ap_expr_list_func_t *func = info->node_arg1;
+ ap_expr_list_func_t *func = (ap_expr_list_func_t *)info->node_arg1;
apr_array_header_t *haystack;
int i = 0;
AP_DEBUG_ASSERT(func != NULL);


Reply via email to