[EMAIL PROTECTED] (David N. Welton) writes:

> I haven't looked at it in detail yet, and haven't tried running
> things, either, but could you explain a bit about your thoughts
> behind the execution model?  It runs a file in a namespace using the
> filename itself for the namespace name?

I've been looking over the "<Tcl> ... </Tcl>" code, and it isn't
entirely clear.

I think mixing malloc + apache memory stuff is probably not a good
idea.  It's segfaulting on me...

static const char *tcl_raw_args(cmd_parms *parms, void *mconfig, char *arg)
{
        tcl_config_rec *tclr = (tcl_config_rec*) mconfig;
        char l[MAX_STRING_LEN];
        char *script = NULL, **xx;

        tclr->raw_list = apr_array_make(parms->pool, 0, sizeof(char *));

        while (!(ap_cfg_getline(l, MAX_STRING_LEN, parms->config_file))) {
                if (!strncasecmp(l, "</Tcl>", 6)) {
                        goto cleanup;
                }
                script = apr_pstrcat(parms->pool, script, "\n", l, NULL);
        }
        
  cleanup:
        
        xx = (char **)apr_array_push(tclr->raw_list);
        *xx = script;
        return NULL;
}

Would something like this be simpler?  The first array_make shouldn't
be there, but without it, I seem to be getting the raw_list
uninitialized, probably because I also switched the command to:

        AP_INIT_RAW_ARGS("<Tcl>", (fz_t) tcl_raw_args,  NULL, 
RSRC_CONF|EXEC_ON_READ, "add raw tcl to the interpreter." ),
        AP_INIT_NO_ARGS("</Tcl>", (fz_t) tcl_no_args, NULL, RSRC_CONF, "end of 
tcl section." ),

But I'm out of time for now to track this down...

-- 
David N. Welton
Free Software: http://people.debian.org/~davidw/
   Apache Tcl: http://tcl.apache.org/
     Personal: http://www.efn.org/~davidw/
         Work: http://www.innominate.com/

Reply via email to