[PATCH] cal: all output must use my_putstring

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Ruediger Meier <ruediger.meier@xxxxxxxxxxx>

Replace all puts, fputs and printf calls by my_putstring() because
we don't want to mix different output channels (buffers).

Signed-off-by: Ruediger Meier <ruediger.meier@xxxxxxxxxxx>
---
 misc-utils/cal.c | 50 ++++++++++++++++++++++++++++++--------------------
 1 file changed, 30 insertions(+), 20 deletions(-)

diff --git a/misc-utils/cal.c b/misc-utils/cal.c
index 81375fe..e763fe1 100644
--- a/misc-utils/cal.c
+++ b/misc-utils/cal.c
@@ -609,7 +609,7 @@ static void cal_output_header(struct cal_month *month, const struct cal_control
 			center(out, ctl->week_width - 1, i->next == NULL ? 0 : ctl->gutter_width);
 		}
 		if (!ctl->yflag) {
-			fputs("\n", stdout);
+			my_putstring("\n");
 			for (i = month; i; i = i->next) {
 				sprintf(out, _("%d"), i->year);
 				center(out, ctl->week_width - 1, i->next == NULL ? 0 : ctl->gutter_width);
@@ -621,23 +621,27 @@ static void cal_output_header(struct cal_month *month, const struct cal_control
 			center(out, ctl->week_width - 1, i->next == NULL ? 0 : ctl->gutter_width);
 		}
 	}
-	puts("");
+	my_putstring("\n");
 	for (i = month; i; i = i->next) {
 		if (ctl->weektype) {
 			if (ctl->julian)
-				printf("%*s%s", (int)ctl->day_width - 1, "", day_headings);
+				sprintf(out, "%*s%s", (int)ctl->day_width - 1, "", day_headings);
 			else
-				printf("%*s%s", (int)ctl->day_width, "", day_headings);
+				sprintf(out, "%*s%s", (int)ctl->day_width, "", day_headings);
+			my_putstring(out);
 		} else
-			fputs(day_headings, stdout);
-		if (i->next != NULL)
-			printf("%*s", ctl->gutter_width, "");
+			my_putstring(day_headings);
+		if (i->next != NULL) {
+			sprintf(out, "%*s", ctl->gutter_width, "");
+			my_putstring(out);
+		}
 	}
-	puts("");
+	my_putstring("\n");
 }
 
 static void cal_output_months(struct cal_month *month, const struct cal_control *ctl)
 {
+	char out[FMT_ST_CHARS];
 	int reqday, week_line, d;
 	int skip;
 	struct cal_month *i;
@@ -659,12 +663,13 @@ static void cal_output_months(struct cal_month *month, const struct cal_control
 				if (0 < i->weeks[week_line]) {
 					if ((ctl->weektype & WEEK_NUM_MASK) ==
 					    i->weeks[week_line])
-						printf("%s%2d%s", Senter, i->weeks[week_line],
+						sprintf(out, "%s%2d%s", Senter, i->weeks[week_line],
 						       Sexit);
 					else
-						printf("%2d", i->weeks[week_line]);
+						sprintf(out, "%2d", i->weeks[week_line]);
 				} else
-					printf("%2s", "");
+					sprintf(out, "%2s", "");
+				my_putstring(out);
 				skip = ctl->day_width;
 			} else
 				/* First day of the week is one char narrower than the other days,
@@ -675,21 +680,26 @@ static void cal_output_months(struct cal_month *month, const struct cal_control
 			     d < DAYS_IN_WEEK * week_line + DAYS_IN_WEEK; d++) {
 				if (0 < i->days[d]) {
 					if (reqday == i->days[d])
-						printf("%*s%s%*d%s", skip - (ctl->julian ? 3 : 2),
+						sprintf(out, "%*s%s%*d%s", skip - (ctl->julian ? 3 : 2),
 						       "", Senter, (ctl->julian ? 3 : 2),
 						       i->days[d], Sexit);
 					else
-						printf("%*d", skip, i->days[d]);
+						sprintf(out, "%*d", skip, i->days[d]);
 				} else
-					printf("%*s", skip, "");
+					sprintf(out, "%*s", skip, "");
+				my_putstring(out);
 				if (skip < (int)ctl->day_width)
 					skip++;
 			}
-			if (i->next != NULL)
-				printf("%*s", ctl->gutter_width, "");
+			if (i->next != NULL) {
+				sprintf(out, "%*s", ctl->gutter_width, "");
+				my_putstring(out);
+			}
+		}
+		if (i == NULL) {
+			sprintf(out, "%*s\n", ctl->gutter_width - (ctl->yflag ? 0 : 1), "");
+			my_putstring(out);
 		}
-		if (i == NULL)
-			printf("%*s\n", ctl->gutter_width - (ctl->yflag ? 0 : 1), "");
 	}
 }
 
@@ -754,7 +764,7 @@ static void yearly(const struct cal_control *ctl)
 		year_width--;
 	sprintf(out, "%d", ctl->req.year);
 	center(out, year_width, 0);
-	fputs("\n\n", stdout);
+	my_putstring("\n\n");
 
 	for (month = 1; month < MONTHS_IN_YEAR; month += ctl->julian ? 2 : 3) {
 		set_consecutive_months(&m1, month, ctl->req.year);
@@ -764,7 +774,7 @@ static void yearly(const struct cal_control *ctl)
 		cal_output_months(&m1, ctl);
 	}
 	/* Is empty line at the end year output really needed? */
-	puts("");
+	my_putstring("\n");
 }
 
 /*
-- 
1.8.4.5

--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux