diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-14 00:48:29 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-14 00:48:29 +0000 |
commit | 40ba9984fd363cfceb2f7f10a882ade282a195aa (patch) | |
tree | 409cfeb03c57c61f2bf15b650f673378f338f5d2 | |
parent | 153cd695e4fa9b53bd12844468c6f97784d9696e (diff) | |
download | busybox-w32-40ba9984fd363cfceb2f7f10a882ade282a195aa.tar.gz busybox-w32-40ba9984fd363cfceb2f7f10a882ade282a195aa.tar.bz2 busybox-w32-40ba9984fd363cfceb2f7f10a882ade282a195aa.zip |
ash: fix for buglet in DEBUG code (Nguyen Thai Ngoc Duy <pclouds@gmail.com>)
-rw-r--r-- | shell/ash.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/shell/ash.c b/shell/ash.c index f33ff4d8e..bf0fd656b 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -840,23 +840,24 @@ shcmd(union node *cmd, FILE *fp) | |||
840 | 840 | ||
841 | first = 1; | 841 | first = 1; |
842 | for (np = cmd->ncmd.args; np; np = np->narg.next) { | 842 | for (np = cmd->ncmd.args; np; np = np->narg.next) { |
843 | if (! first) | 843 | if (!first) |
844 | putchar(' '); | 844 | putc(' ', fp); |
845 | sharg(np, fp); | 845 | sharg(np, fp); |
846 | first = 0; | 846 | first = 0; |
847 | } | 847 | } |
848 | for (np = cmd->ncmd.redirect; np; np = np->nfile.next) { | 848 | for (np = cmd->ncmd.redirect; np; np = np->nfile.next) { |
849 | if (! first) | 849 | if (!first) |
850 | putchar(' '); | 850 | putc(' ', fp); |
851 | dftfd = 0; | ||
851 | switch (np->nfile.type) { | 852 | switch (np->nfile.type) { |
852 | case NTO: s = ">"; dftfd = 1; break; | 853 | case NTO: s = ">>"+1; dftfd = 1; break; |
853 | case NCLOBBER: s = ">|"; dftfd = 1; break; | 854 | case NCLOBBER: s = ">|"; dftfd = 1; break; |
854 | case NAPPEND: s = ">>"; dftfd = 1; break; | 855 | case NAPPEND: s = ">>"; dftfd = 1; break; |
855 | case NTOFD: s = ">&"; dftfd = 1; break; | 856 | case NTOFD: s = ">&"; dftfd = 1; break; |
856 | case NFROM: s = "<"; dftfd = 0; break; | 857 | case NFROM: s = "<"; break; |
857 | case NFROMFD: s = "<&"; dftfd = 0; break; | 858 | case NFROMFD: s = "<&"; break; |
858 | case NFROMTO: s = "<>"; dftfd = 0; break; | 859 | case NFROMTO: s = "<>"; break; |
859 | default: s = "*error*"; dftfd = 0; break; | 860 | default: s = "*error*"; break; |
860 | } | 861 | } |
861 | if (np->nfile.fd != dftfd) | 862 | if (np->nfile.fd != dftfd) |
862 | fprintf(fp, "%d", np->nfile.fd); | 863 | fprintf(fp, "%d", np->nfile.fd); |
@@ -3774,7 +3775,7 @@ showjob(FILE *out, struct job *jp, int mode) | |||
3774 | struct procstat *ps; | 3775 | struct procstat *ps; |
3775 | struct procstat *psend; | 3776 | struct procstat *psend; |
3776 | int col; | 3777 | int col; |
3777 | int indent; | 3778 | int indent_col; |
3778 | char s[80]; | 3779 | char s[80]; |
3779 | 3780 | ||
3780 | ps = jp->ps; | 3781 | ps = jp->ps; |
@@ -3786,7 +3787,7 @@ showjob(FILE *out, struct job *jp, int mode) | |||
3786 | } | 3787 | } |
3787 | 3788 | ||
3788 | col = fmtstr(s, 16, "[%d] ", jobno(jp)); | 3789 | col = fmtstr(s, 16, "[%d] ", jobno(jp)); |
3789 | indent = col; | 3790 | indent_col = col; |
3790 | 3791 | ||
3791 | if (jp == curjob) | 3792 | if (jp == curjob) |
3792 | s[col - 2] = '+'; | 3793 | s[col - 2] = '+'; |
@@ -3812,7 +3813,7 @@ showjob(FILE *out, struct job *jp, int mode) | |||
3812 | 3813 | ||
3813 | do { | 3814 | do { |
3814 | /* for each process */ | 3815 | /* for each process */ |
3815 | col = fmtstr(s, 48, " |\n%*c%d ", indent, ' ', ps->pid) - 3; | 3816 | col = fmtstr(s, 48, " |\n%*c%d ", indent_col, ' ', ps->pid) - 3; |
3816 | start: | 3817 | start: |
3817 | fprintf(out, "%s%*c%s", | 3818 | fprintf(out, "%s%*c%s", |
3818 | s, 33 - col >= 0 ? 33 - col : 0, ' ', ps->cmd | 3819 | s, 33 - col >= 0 ? 33 - col : 0, ' ', ps->cmd |