DjVuDebug::DjVuDebug() : block(0), indent(0) { id = debug_id++; #ifdef UNIX if (debug_file_count++ == 0 && !debug_file) set_debug_file(stderr); #endif }
/* Change the debug output to file NAME. If NAME is NULL, debug output is reverted to stderr, and if empty debug output is discarded. Return true iff the output stream was changed. Report errors on behalf of CALLER. */ bool m4_debug_set_output (m4 *context, const m4_call_info *caller, const char *name) { FILE *fp; assert (context); if (name == NULL) set_debug_file (context, caller, stderr); else if (*name == '\0') set_debug_file (context, caller, NULL); else { fp = fopen (name, "a"); if (fp == NULL) return false; if (set_cloexec_flag (fileno (fp), true) != 0) m4_warn (context, errno, caller, _("cannot protect debug file across forks")); set_debug_file (context, caller, fp); } return true; }