") ;
}
static void start_content(xmlns_public* ctx, const xmlns_attr_t* atts) {
annot_parse_ctx* pctx = xmlns_get_appdata(ctx, &annot_view_module) ;
ap_fprintf(ctx->f->next, ctx->bb, "
",
pctx->divid) ;
}
static void start_section(xmlns_public* ctx, const xmlns_attr_t* atts) {
annot_parse_ctx* pctx = xmlns_get_appdata(ctx, &annot_view_module) ;
const xml_char_t* title = attval(atts, "title") ;
const xml_char_t* level = attval(atts, "level") ;
const xml_char_t* sdate = attval(atts, "when") ;
if ( sdate && *sdate )
pctx->timestamp = parsedate(sdate) ;
++pctx->divid ;
ap_fprintf(ctx->f->next, ctx->bb, "
",
pctx->divid ) ;
if ( ! (pctx->status & ANNOT_LOCKED) ) {
if ( pctx->status & ANNOT_ANNOT ) {
ap_fprintf(ctx->f->next, ctx->bb,
"
"
"" ,
ctx->f->r->uri, sdate, pctx->divid) ;
}
if ( pctx->status & ANNOT_EDITOR ) {
ap_fprintf(ctx->f->next, ctx->bb,
"
"
"" ,
ctx->f->r->uri, sdate, pctx->divid) ;
}
}
ap_fprintf(ctx->f->next, ctx->bb, "
%s", level, title, level) ;
}
static void end_section(xmlns_public* ctx) {
ap_fputs(ctx->f->next, ctx->bb, "
") ;
}
static void end_article(xmlns_public* ctx) {
const char* buf ;
char mtime[APR_CTIME_LEN] ;
annot_parse_ctx* pctx = xmlns_get_appdata(ctx, &annot_view_module) ;
apr_ctime(mtime, ctx->f->r->finfo.mtime) ;
buf = apr_psprintf(ctx->f->r->pool, "
"
""
, pctx->owner, mtime) ;
ap_fputs(ctx->f->next, ctx->bb, buf) ;
ap_fputs(ctx->f->next, ctx->bb, "