void knh_vperror(Ctx *ctx, knh_uri_t uri, int line, int pe, const char *fmt, va_list ap) { DBG_ASSERT(pe <= LOG_DEBUG); if(knh_Gamma_isQuiet(ctx->gma)) { return; } // if(pe < KERR_DWARN) { // DP(ctx->gma)->statError += 1; // } // else if(pe < KERR_TINFO) { // DP(ctx->gma)->statBadManner += 1; // } if(knh_Context_isInteractive(ctx)) { goto L_PRINT; } if(pe > KERR_EWARN && !knh_Context_isCompiling(ctx)) { return; } L_PRINT:; if(line > 0) { knh_OutputStream_t *w = KNH_STDERR; knh_printf(ctx, w, " - [%s:%d]:%s ", FILENAME__(uri), (knh_intptr_t)line, KERR_tochar(pe)); knh_vprintf(ctx, w, fmt, ap); knh_write_EOL(ctx, w); } else { knh_vsyslog(ctx, pe, fmt, ap); } }
void knh_write_uline(CTX ctx, kOutputStream *w, kline_t uline) { kuri_t uri = ULINE_uri(uline); kuintptr_t line = ULINE_line(uline); if(uline != 0 && uri != URI_unknown && line != 0) { knh_write_cline(ctx, w, FILENAME__(uri), line); } }
static kException* new_Assertion(CTX ctx, kline_t uline) { kException* e = new_(Exception); char buf[256] = {'A', 's', 's', 'e', 'r', 't', 'i', 'o', 'n', '!', '!', ':', ' '}; char *mbuf = buf + 13; knh_readuline(ctx, uline, mbuf, sizeof(buf)-13); if(mbuf[0] == 0) { kuri_t uri = ULINE_uri(uline); size_t line = ULINE_line(uline); knh_snprintf(buf, sizeof(buf), "Assertion!!: %s at line %lu", FILENAME__(uri), line); } KNH_SETv(ctx, e->emsg, new_String2(ctx, CLASS_String, (const char*)buf, knh_strlen(buf), SPOL_ASCII)); e->uline = uline; return e; }
void knh_write_mline(CTX ctx, kOutputStream *w, kmethodn_t mn, kline_t uline) { kuri_t uri = ULINE_uri(uline); kuintptr_t line = ULINE_line(uline); if(uline != 0 && uri != URI_unknown && line != 0) { if(mn == MN_) { knh_write_cline(ctx, w, FILENAME__(uri), line); } else { knh_putc(ctx, w, '('); knh_write_mn(ctx, w, mn); knh_putc(ctx, w, ':'); knh_write_dfmt(ctx, w, K_INTPTR_FMT, line); knh_putc(ctx, w, ')'); knh_putc(ctx, w, ' '); } } }
void knh_write_uline(Ctx *ctx, knh_OutputStream_t *w, knh_uri_t uri, long line) { knh_write_cline(ctx, w, FILENAME__(uri), line); }