Module Name: src Committed By: kre Date: Thu May 18 15:42:37 UTC 2017
Modified Files: src/bin/sh: show.c Log Message: DEBUG mode only change - mostly to output when option to show shell internal sub-process nesting is enabled, and very deep nesting levels exist. NFC for anyone else. To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/bin/sh/show.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/bin/sh/show.c diff -u src/bin/sh/show.c:1.40 src/bin/sh/show.c:1.41 --- src/bin/sh/show.c:1.40 Mon May 15 20:00:36 2017 +++ src/bin/sh/show.c Thu May 18 15:42:37 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: show.c,v 1.40 2017/05/15 20:00:36 kre Exp $ */ +/* $NetBSD: show.c,v 1.41 2017/05/18 15:42:37 kre Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -39,7 +39,7 @@ #if 0 static char sccsid[] = "@(#)show.c 8.3 (Berkeley) 5/4/95"; #else -__RCSID("$NetBSD: show.c,v 1.40 2017/05/15 20:00:36 kre Exp $"); +__RCSID("$NetBSD: show.c,v 1.41 2017/05/18 15:42:37 kre Exp $"); #endif #endif /* not lint */ @@ -926,12 +926,18 @@ trace_id(TFILE *tf) char *p; if (DFlags & DBG_NEST) { - p = indent; - for (i = 0; i < 6; i++) - *p++ = (i < ShNest) ? '#' : ' '; - while (i++ < ShNest && p < &indent[sizeof indent - 1]) - *p++ = '#'; - *p = '\0'; + if ((unsigned)ShNest >= sizeof indent - 1) { + (void) snprintf(indent, sizeof indent, + "### %*d ###", (int)(sizeof indent) - 9, ShNest); + p = strchr(indent, '\0'); + } else { + p = indent; + for (i = 0; i < 6; i++) + *p++ = (i < ShNest) ? '#' : ' '; + while (i++ < ShNest && p < &indent[sizeof indent - 1]) + *p++ = '#'; + *p = '\0'; + } } else indent[0] = '\0'; @@ -941,8 +947,6 @@ trace_id(TFILE *tf) i == tf->pid ? ':' : '=', indent); return p; } else if (DFlags & DBG_NEST) { - *p++ = '\t'; - *p = '\0'; (void) asprintf(&p, "%s\t", indent); return p; } @@ -1112,6 +1116,7 @@ debugcmd(int argc, char **argv) if (argc == 1) { struct debug_flag *df; + out1fmt("Debug: %sabled. Flags: ", debug ? "en" : "dis"); for (df = debug_flags; df->label != '\0'; df++) { if (df->flag & (df->flag - 1)) continue;