Cliff Woolley wrote: >On Wed, 27 Feb 2002, Brian Pane wrote: > >>>> + if (!APR_BRIGADE_EMPTY(ctx->ssi_tag_brigade)) { >>>> + for (;;) { >>>> + apr_bucket *e = APR_BRIGADE_LAST(ctx->ssi_tag_brigade); >>>> + if (e == APR_BRIGADE_SENTINEL(ctx->ssi_tag_brigade)) { >>>> + break; >>>> + } >>>> + APR_BUCKET_REMOVE(e); >>>> + APR_BRIGADE_INSERT_HEAD(bb, e); >>>> + } >>>> } >>>> >>I was thinking about APR_BRIGADE_CONCAT, but what I really needed >>was APR_BRIGADE_PREPEND because _CONCAT would have left bb empty. >>Is there a "prepend" variant anywhere? >> > >The following is equivalent to the above (except it runs in constant >time): > >/* prepend ctx->ssi_tag_brigade onto bb */ >APR_BRIGADE_CONCAT(ctx->ssi_tag_brigade, bb); >APR_BRIGADE_CONCAT(bb, ctx->ssi_tag_brigade); >
Thanks, I'll update this in mod_include later today. >But I'd be fine with adding a prepend macro in the API if others agree >it's useful. > +1 --Brian