| /* |
| * 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))); |
| } |