Index: ossp-pkg/var/var.c RCS File: /v/ossp/cvs/ossp-pkg/var/var.c,v rcsdiff -q -kk '-r1.86' '-r1.87' -u '/v/ossp/cvs/ossp-pkg/var/var.c,v' 2>/dev/null --- var.c 2002/03/07 12:11:09 1.86 +++ var.c 2002/03/07 14:03:50 1.87 @@ -44,6 +44,9 @@ # include #endif #include "var.h" +#if defined(HAVE_DMALLOC_H) && defined(WITH_DMALLOC) +#include "dmalloc.h" +#endif /* unique library identifier */ const char var_id[] = "OSSP var"; @@ -309,16 +312,6 @@ } static void -tokenbuf_copy( - tokenbuf_t *src, tokenbuf_t *dst) -{ - dst->begin = src->begin; - dst->end = src->end; - dst->buffer_size = src->buffer_size; - return; -} - -static void tokenbuf_move( tokenbuf_t *src, tokenbuf_t *dst) { @@ -2244,7 +2237,7 @@ tokenbuf_t result; int start, step, stop, open_stop; int i; - tokenbuf_t output_backup; + int output_backup; int rel_lookup_cnt; int loop_limit_length; var_parse_t myctx; @@ -2267,7 +2260,7 @@ start = 0; step = 1; stop = 0; - tokenbuf_copy(output, &output_backup); + output_backup = 0; /* iterate over loop construct, either as long as there is (still) nothing known about the limit, or there is an open @@ -2283,7 +2276,7 @@ i += step) { /* remember current output end for restoring */ - tokenbuf_copy(output, &output_backup); + output_backup = (output->end - output->begin); /* open temporary context for recursion */ ctx = var_parse_push(ctx, &myctx); @@ -2320,7 +2313,7 @@ else if (rc2 > 0) { loop_limit_length = rc2; /* restart loop from scratch */ - tokenbuf_copy(&output_backup, output); + output->end = (output->begin + output_backup); goto re_loop; } } @@ -2330,7 +2323,7 @@ because the last iteration was just to determine the loop termination and its result has to be discarded */ if (open_stop) - tokenbuf_copy(&output_backup, output); + output->end = (output->begin + output_backup); /* skip parsed loop construct */ p += rc;