Pinned it down!

util.c, line 551:

int
cfg_getline(char *s, int n, FILE *f) {
    register int i=0, c;

    s[0] = '\0';
    /* skip leading whitespace */
    do {
        c = getc(f);
    } while (c == '\t' || c == ' ');

    if(c == EOF)
        return 1;

    while(1) {
        if((c == '\t') || (c == ' ')) {
            s[i++] = ' ';                               <== (*)
            while((c == '\t') || (c == ' ')) 
                c = getc(f);
        }
        if(c == CR) {
            c = getc(f);
        }
        if(c == EOF || c == 0x4 || c == LF || i == (n-1)) {
            /* blast trailing whitespace */
            while(i && (s[i-1] == ' ')) --i;
            s[i] = '\0';
            return 0;
        }
        s[i] = c;
        ++i;
        c = getc(f);
    }
}

This code doesn't know about the quoted string used by mod_log_config:
(*) above replaces tabs & multiple spaces with one space.

I'm thinking about a patch...

--Renaud

Reply via email to