/*
 * dump.c
 * Provides indented printf functionality
 */
 #include "private.h"
 
#include <stdio.h>
#include <stdarg.h>

static int indent = 0;

/*--------------------------------------------------------- */
int
lub_dump_printf(const char *fmt,...)
{
    va_list args;
    int len;

    va_start(args, fmt);
    fprintf(stderr, "%*s", indent, "");
    len = vfprintf(stderr, fmt, args);
    va_end(args);

    return len;
}
/*--------------------------------------------------------- */
static void 
lub_dump_divider(char c)
{
    int i;

    lub_dump_printf("");
    for(i = 0;
        i < (80 - indent);
        i++)
    {
        fputc(c, stderr);
    }
    fputc('\n', stderr);
}
/*--------------------------------------------------------- */
void 
lub_dump_indent(void)
{
    indent += 2;
    lub_dump_divider('_');	
}
/*--------------------------------------------------------- */
void 
lub_dump_undent(void)
{
    lub_dump_divider('^');	

    indent -= 2;
}
/*--------------------------------------------------------- */