static const char * _nc_visbuf2n(int bufnum, const char *buf, int len) { const char *vbuf = 0; char *tp; int count; if (buf == 0) return ("(null)"); if (buf == CANCELLED_STRING) return ("(cancelled)"); if (len < 0) len = (int) strlen(buf); count = len; #ifdef TRACE vbuf = tp = _nc_trace_buf(bufnum, NormalLen(len)); #else { static char *mybuf[NUM_VISBUFS]; int c; if (bufnum < 0) { for (c = 0; c < NUM_VISBUFS; ++c) { FreeAndNull(mybuf[c]); } tp = 0; } else { mybuf[bufnum] = typeRealloc(char, NormalLen(len), mybuf[bufnum]); vbuf = tp = mybuf[bufnum]; } } #endif if (tp != 0) { int c; *tp++ = D_QUOTE; while ((--count >= 0) && (c = *buf++) != '\0') { tp = VisChar(tp, UChar(c), NormalLen(len)); } *tp++ = D_QUOTE; *tp = '\0'; } else { vbuf = ("(_nc_visbuf2n failed)"); } return (vbuf); }
static const char * _nc_visbuf2n(int bufnum, const char *buf, int len) { const char *vbuf; char *tp; int c; if (buf == 0) return ("(null)"); if (buf == CANCELLED_STRING) return ("(cancelled)"); if (len < 0) len = (int) strlen(buf); #ifdef TRACE vbuf = tp = _nc_trace_buf(bufnum, NormalLen(len)); #else { static char *mybuf[4]; mybuf[bufnum] = typeRealloc(char, NormalLen(len), mybuf[bufnum]); vbuf = tp = mybuf[bufnum]; } #endif if (tp != 0) { *tp++ = D_QUOTE; while ((--len >= 0) && (c = *buf++) != '\0') { tp = _nc_vischar(tp, UChar(c)); } *tp++ = D_QUOTE; *tp++ = '\0'; } else { vbuf = ("(_nc_visbuf2n failed)"); } return (vbuf); }