ash: further fixes to debug machinery (closes bug 485)

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2009-07-24 01:08:03 +02:00
parent e56f22ac60
commit 7cee00e8ae

View File

@ -263,7 +263,7 @@ static void trace_vprintf(const char *fmt, va_list va);
/* ============ Utility functions */ /* ============ Utility functions */
#define xbarrier() do { __asm__ __volatile__ ("": : :"memory"); } while (0) #define xbarrier() do { __asm__ __volatile__ ("": : :"memory"); } while (0)
/* C99 say: "char" declaration may be signed or unsigned by default */ /* C99 says: "char" declaration may be signed or unsigned by default */
#define signed_char2int(sc) ((int)(signed char)(sc)) #define signed_char2int(sc) ((int)(signed char)(sc))
static int isdigit_str9(const char *str) static int isdigit_str9(const char *str)
@ -988,7 +988,7 @@ shtree(union node *n, int ind, char *pfx, FILE *fp)
break; break;
case NPIPE: case NPIPE:
for (lp = n->npipe.cmdlist; lp; lp = lp->next) { for (lp = n->npipe.cmdlist; lp; lp = lp->next) {
shcmd(lp->n, fp); shtree(lp->n, 0, NULL, fp);
if (lp->next) if (lp->next)
fputs(" | ", fp); fputs(" | ", fp);
} }
@ -4387,11 +4387,12 @@ cmdtxt(union node *n)
cmdputs("if "); cmdputs("if ");
cmdtxt(n->nif.test); cmdtxt(n->nif.test);
cmdputs("; then "); cmdputs("; then ");
n = n->nif.ifpart;
if (n->nif.elsepart) { if (n->nif.elsepart) {
cmdtxt(n); cmdtxt(n->nif.ifpart);
cmdputs("; else "); cmdputs("; else ");
n = n->nif.elsepart; n = n->nif.elsepart;
} else {
n = n->nif.ifpart;
} }
p = "; fi"; p = "; fi";
goto dotail; goto dotail;
@ -11859,8 +11860,8 @@ cmdloop(int top)
#endif #endif
} }
n = parsecmd(inter); n = parsecmd(inter);
#if DEBUG > 2 #if DEBUG
if (debug && (n != NODE_EOF)) if (DEBUG > 2 && debug && (n != NODE_EOF))
showtree(n); showtree(n);
#endif #endif
if (n == NODE_EOF) { if (n == NODE_EOF) {