summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2010-09-07 23:38:28 -0700
committerDenys Vlasenko <dvlasenk@redhat.com>2010-09-09 11:48:02 +0200
commit77d48726917e6493a8a077be93bb07b22fd2c209 (patch)
tree71b1d17d7a8a91192d8d0cd3fe0a3dc1028b4a6a
parent95d48f259807c408de731f580bd48cf20dec724a (diff)
downloadbusybox-w32-77d48726917e6493a8a077be93bb07b22fd2c209.tar.gz
busybox-w32-77d48726917e6493a8a077be93bb07b22fd2c209.tar.bz2
busybox-w32-77d48726917e6493a8a077be93bb07b22fd2c209.zip
Avoid side effects in putc(), which may be implemented as a macro
Signed-off-by: Dan Fandrich <dan@coneharvesters.com> Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
-rw-r--r--coreutils/ls.c3
-rw-r--r--coreutils/tee.c8
-rw-r--r--shell/ash.c9
3 files changed, 12 insertions, 8 deletions
diff --git a/coreutils/ls.c b/coreutils/ls.c
index cbfcfc7a1..e69f1afd9 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -573,7 +573,8 @@ static unsigned print_name(const char *name)
573 putchar('\\'); 573 putchar('\\');
574 len++; 574 len++;
575 } 575 }
576 putchar(*name++); 576 putchar(*name);
577 name++;
577 } 578 }
578 putchar('"'); 579 putchar('"');
579 return len; 580 return len;
diff --git a/coreutils/tee.c b/coreutils/tee.c
index 8db9042aa..2e1e367f2 100644
--- a/coreutils/tee.c
+++ b/coreutils/tee.c
@@ -70,8 +70,8 @@ int tee_main(int argc, char **argv)
70 while ((c = safe_read(STDIN_FILENO, buf, sizeof(buf))) > 0) { 70 while ((c = safe_read(STDIN_FILENO, buf, sizeof(buf))) > 0) {
71 fp = files; 71 fp = files;
72 do 72 do
73 fwrite(buf, 1, c, *fp++); 73 fwrite(buf, 1, c, *fp);
74 while (*fp); 74 while (*++fp);
75 } 75 }
76 if (c < 0) { /* Make sure read errors are signaled. */ 76 if (c < 0) { /* Make sure read errors are signaled. */
77 retval = EXIT_FAILURE; 77 retval = EXIT_FAILURE;
@@ -81,8 +81,8 @@ int tee_main(int argc, char **argv)
81 while ((c = getchar()) != EOF) { 81 while ((c = getchar()) != EOF) {
82 fp = files; 82 fp = files;
83 do 83 do
84 putc(c, *fp++); 84 putc(c, *fp);
85 while (*fp); 85 while (*++fp);
86 } 86 }
87#endif 87#endif
88 88
diff --git a/shell/ash.c b/shell/ash.c
index 70425b324..f262872ea 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -953,7 +953,8 @@ sharg(union node *arg, FILE *fp)
953 for (p = arg->narg.text; *p; p++) { 953 for (p = arg->narg.text; *p; p++) {
954 switch ((unsigned char)*p) { 954 switch ((unsigned char)*p) {
955 case CTLESC: 955 case CTLESC:
956 putc(*++p, fp); 956 p++;
957 putc(*p, fp);
957 break; 958 break;
958 case CTLVAR: 959 case CTLVAR:
959 putc('$', fp); 960 putc('$', fp);
@@ -962,8 +963,10 @@ sharg(union node *arg, FILE *fp)
962 if (subtype == VSLENGTH) 963 if (subtype == VSLENGTH)
963 putc('#', fp); 964 putc('#', fp);
964 965
965 while (*p != '=') 966 while (*p != '=') {
966 putc(*p++, fp); 967 putc(*p, fp);
968 p++;
969 }
967 970
968 if (subtype & VSNUL) 971 if (subtype & VSNUL)
969 putc(':', fp); 972 putc(':', fp);