blob: 104e43b640f30866096e96386ebbbbe5d0057187 [file] [log] [blame]
/*
* Copyright (C) 2014 Karel Zak <kzak@redhat.com>
*
* This file may be redistributed under the terms of the
* GNU Lesser General Public License.
*/
/**
* SECTION: init
* @title: Library initialization
* @short_description: initialize debugging
*
* The library debug stuff.
*/
#include <stdarg.h>
#include "smartcolsP.h"
UL_DEBUG_DEFINE_MASK(libsmartcols);
UL_DEBUG_DEFINE_MASKNAMES(libsmartcols) =
{
{ "all", SCOLS_DEBUG_ALL, "info about all subsystems" },
{ "buff", SCOLS_DEBUG_BUFF, "output buffer utils" },
{ "cell", SCOLS_DEBUG_CELL, "table cell utils" },
{ "col", SCOLS_DEBUG_COL, "cols utils" },
{ "help", SCOLS_DEBUG_HELP, "this help" },
{ "line", SCOLS_DEBUG_LINE, "table line utils" },
{ "tab", SCOLS_DEBUG_TAB, "table utils" },
{ NULL, 0, NULL }
};
/**
* scols_init_debug:
* @mask: debug mask (0xffff to enable full debugging)
*
* If the @mask is not specified, then this function reads
* the LIBSMARTCOLS_DEBUG environment variable to get the mask.
*
* Already initialized debugging stuff cannot be changed. Calling
* this function twice has no effect.
*/
void scols_init_debug(int mask)
{
if (libsmartcols_debug_mask)
return;
__UL_INIT_DEBUG_FROM_ENV(libsmartcols, SCOLS_DEBUG_, mask, LIBSMARTCOLS_DEBUG);
if (libsmartcols_debug_mask != SCOLS_DEBUG_INIT
&& libsmartcols_debug_mask != (SCOLS_DEBUG_HELP|SCOLS_DEBUG_INIT)) {
const char *ver = NULL;
scols_get_library_version(&ver);
DBG(INIT, ul_debug("library debug mask: 0x%04x", libsmartcols_debug_mask));
DBG(INIT, ul_debug("library version: %s", ver));
}
ON_DBG(HELP, ul_debug_print_masks("LIBSMARTCOLS_DEBUG",
UL_DEBUG_MASKNAMES(libsmartcols)));
}