parse_debug(int level, char *cp, const char *fmt, ...) { va_list ap; char buf[1024]; char tmp[32]; int i; if (level > debug_level || !debug_parse) return; if (cp != NULL) { for (i = 0; i < 30; i++) { if (cp[i] == '\0') break; if (!iscntrl((unsigned char)cp[i])) tmp[i] = cp[i]; } tmp[i] = '\0'; (void) snprintf(buf, sizeof (buf), "%s [cp='%s']\n", fmt, tmp); } else { strcpy(buf, fmt); strcat(buf, "\n"); } va_start(ap, fmt); vadebug(level, buf, ap); va_end(ap); }
/*PRINTFLIKE2*/ void debug(int level, const char *format, ...) { va_list ap; if (level > debug_level) return; va_start(ap, format); (void) vadebug(level, format, ap); va_end(ap); }