[prev in list] [next in list] [prev in thread] [next in thread] 

List:       util-linux-ng
Subject:    [PATCH 11/11] cal: move global variables to local scope
From:       Sami Kerola <kerolasa () iki ! fi>
Date:       2013-04-28 17:11:07
Message-ID: 1367169067-23705-12-git-send-email-kerolasa () iki ! fi
[Download RAW message or body]

Also include small change to function parameter coding style.  The braces
are from function line to new line, and return value is in same line with
the function.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
---
 misc-utils/cal.c | 109 ++++++++++++++++++++++++++++---------------------------
 1 file changed, 55 insertions(+), 54 deletions(-)

diff --git a/misc-utils/cal.c b/misc-utils/cal.c
index a03cd3c..4151ea0 100644
--- a/misc-utils/cal.c
+++ b/misc-utils/cal.c
@@ -227,39 +227,37 @@ static int days_in_month[2][13] = {
 };
 
 
-/* utf-8 can have up to 6 bytes per char; and an extra byte for ending \0 */
-char day_headings[J_WEEK_LEN * 6 + 1];
-/* weekstart = 1  =>   "  M  Tu   W  Th   F   S   S " */
-const char *full_month[MONTHS_IN_YEAR];
-
-/* 0 => sunday, 1 => monday */
-int weekstart = SUNDAY;
-int julian;
 
 /* function prototypes */
 int leap_year(int year);
 int centuries_since_1700(int year, int centuries);
 int leap_years_since_year_1(int year);
-char * ascii_day(char *, int);
+char * ascii_day(const int, char *, int);
 int center_str(const char* src, char* dest, size_t dest_size, size_t width);
 void center(const char *, size_t, int);
-void day_array(int, int, int, int *);
+void day_array(const int, const int, int, int, int, int *);
 int day_in_week(int, int, int);
 int day_in_year(int, int, int);
-void yearly(int, int, int);
-void do_monthly(int, int, int, struct fmt_st*);
-void monthly(int, int, int);
-void monthly3(int, int, int);
+void yearly(int, int, const int, const int, const char *, const char **);
+void do_monthly(const int, const int, const char *, const char **, int, int, int, struct fmt_st*);
+void monthly(const int, const int, const char *, const char **, int, int, int);
+void monthly3(const int, const int, const char *, const char **, int, int, int);
 void trim_trailing_spaces(char *);
 static void __attribute__ ((__noreturn__)) usage(FILE * out);
-void headers_init(int);
+void headers_init(const int, const int, char *, const char **);
 
-int
-main(int argc, char **argv) {
+int main(int argc, char **argv)
+{
 	struct tm *local_time;
 	time_t now;
 	int ch, day = 0, month = 0, year = 0, yflag = 0;
 	int num_months = NUM_MONTHS;
+	/* UTF-8 can have up to 6 bytes per char; and an extra byte for
+	 * ending \0 */
+	char day_headings[J_WEEK_LEN * 6 + 1];
+	const char *full_month[MONTHS_IN_YEAR];
+	int julian = 0;
+	int weekstart = SUNDAY;
 
 	static const struct option longopts[] = {
 		{"one", no_argument, NULL, '1'},
@@ -394,7 +392,7 @@ main(int argc, char **argv) {
 	default:
 		usage(stderr);
 	}
-	headers_init(julian);
+	headers_init(julian, weekstart, day_headings, full_month);
 
 #ifndef NON_INTERACTIVE_MORE
 	if (!isatty(STDOUT_FILENO))
@@ -402,11 +400,11 @@ main(int argc, char **argv) {
 #endif
 
 	if (yflag)
-		yearly(day, year, julian);
+		yearly(day, year, julian, weekstart, day_headings, full_month);
 	else if (num_months == 1)
-		monthly(day, month, year);
+		monthly(julian, weekstart, day_headings, full_month, day, month, year);
 	else if (num_months == 3)
-		monthly3(day, month, year);
+		monthly3(julian, weekstart, day_headings, full_month, day, month, year);
 
 	return EXIT_SUCCESS;
 }
@@ -436,7 +434,8 @@ int leap_years_since_year_1(int year)
 		centuries_since_1700(year, 4));
 }
 
-void headers_init(int julian)
+void headers_init(const int julian, const int weekstart, char *day_headings,
+		  const char **full_month)
 {
 	int i, wd, spaces = julian ? J_DAY_LEN - 1 : DAY_LEN - 1;
 	char *cur_dh = day_headings;
@@ -447,8 +446,7 @@ void headers_init(int julian)
 
 		if (i)
 			strcat(cur_dh++, " ");
-		space_left =
-		    sizeof(day_headings) - (cur_dh - day_headings);
+		space_left = (J_WEEK_LEN * 6 + 1) - (cur_dh - day_headings);
 		if (space_left <= spaces)
 			break;
 		cur_dh +=
@@ -460,13 +458,15 @@ void headers_init(int julian)
 		full_month[i] = nl_langinfo(MON_1 + i);
 }
 
-void
-do_monthly(int day, int month, int year, struct fmt_st *out) {
+void do_monthly(const int julian, const int weekstart, const char *day_headings,
+		const char **full_month, int day, int month, int year,
+		struct fmt_st *out)
+{
 	int col, row, days[MAXDAYS];
 	char *p, lineout[FMT_ST_CHARS];
 	int width = (julian ? J_WEEK_LEN : WEEK_LEN) - 1;
 
-	day_array(day, month, year, days);
+	day_array(julian, weekstart, day, month, year, days);
 
 	/*
 	 * %s is the month name, %d the year number.
@@ -485,7 +485,7 @@ do_monthly(int day, int month, int year, struct fmt_st *out) {
 			int xd = days[row * DAYS_IN_WEEK + col];
 			if (xd != SPACE && (xd & TODAY_FLAG))
 				has_hl = 1;
-			p = ascii_day(p, xd);
+			p = ascii_day(julian, p, xd);
 		}
 		*p = '\0';
 		trim_trailing_spaces(lineout);
@@ -495,20 +495,22 @@ do_monthly(int day, int month, int year, struct fmt_st *out) {
 	}
 }
 
-void
-monthly(int day, int month, int year) {
+void monthly(const int julian, const int weekstart, const char *day_headings,
+	     const char **full_month, int day, int month, int year)
+{
 	int i;
 	struct fmt_st out;
 
-	do_monthly(day, month, year, &out);
+	do_monthly(julian, weekstart, day_headings, full_month, day, month, year, &out);
 	for (i = 0; i < FMT_ST_LINES; i++) {
 		my_putstring(out.s[i]);
 		my_putstring("\n");
 	}
 }
 
-void
-monthly3(int day, int month, int year) {
+void monthly3(const int julian, const int weekstart, const char *day_headings,
+	      const char **full_month, int day, int month, int year)
+{
 	char lineout[FMT_ST_CHARS];
 	int i;
 	int width;
@@ -533,9 +535,9 @@ monthly3(int day, int month, int year) {
 		next_year  = year;
 	}
 
-	do_monthly(day, prev_month, prev_year, &out_prev);
-	do_monthly(day, month,      year,      &out_curm);
-	do_monthly(day, next_month, next_year, &out_next);
+	do_monthly(julian, weekstart, day_headings, full_month, day, prev_month, prev_year, &out_prev);
+	do_monthly(julian, weekstart, day_headings, full_month, day, month,      year,      &out_curm);
+	do_monthly(julian, weekstart, day_headings, full_month, day, next_month, next_year, &out_next);
 
 	width = (julian ? J_WEEK_LEN : WEEK_LEN) -1;
 	for (i = 0; i < 2; i++) {
@@ -565,8 +567,9 @@ monthly3(int day, int month, int year) {
 	}
 }
 
-void
-yearly(int day, int year, int julian) {
+void yearly(int day, int year, const int julian, const int weekstart,
+	    const char *day_headings, const char **full_month)
+{
 	int col, *dp, i, month, row, which_cal;
 	int maxrow, sep_len, week_len;
 	int days[MONTHS_IN_YEAR][MAXDAYS];
@@ -589,7 +592,7 @@ yearly(int day, int year, int julian) {
 	my_putstring("\n\n");
 
 	for (i = 0; i < MONTHS_IN_YEAR; i++)
-		day_array(day, i + 1, year, days[i]);
+		day_array(julian, weekstart,  day, i + 1, year, days[i]);
 	for (month = 0; month < MONTHS_IN_YEAR; month += maxrow) {
 		center(full_month[month], week_len - 1, sep_len + 1);
 		if (julian) {
@@ -611,7 +614,7 @@ yearly(int day, int year, int julian) {
 			for (which_cal = 0; which_cal < maxrow; which_cal++) {
 				dp = &days[month + which_cal][row * DAYS_IN_WEEK];
 				for (col = 0; col < DAYS_IN_WEEK; col++)
-					p = ascii_day(p, *dp++);
+					p = ascii_day(julian, p, *dp++);
 				p += sprintf(p, "  ");
 			}
 			*p = '\0';
@@ -630,8 +633,9 @@ yearly(int day, int year, int julian) {
  *	out end to end.  You would have 42 numbers or spaces.  This routine
  *	builds that array for any month from Jan. 1 through Dec. 9999.
  */
-void
-day_array(int day, int month, int year, int *days) {
+void day_array(const int julian, const int weekstart, int day, int month,
+	       int year, int *days)
+{
 	int julday, daynum, dw, dm;
 	int *sep1752;
 
@@ -661,8 +665,8 @@ day_array(int day, int month, int year, int *days) {
  * day_in_year --
  *	return the 1 based day number within the year
  */
-int
-day_in_year(int day, int month, int year) {
+int day_in_year(int day, int month, int year)
+{
 	int i, leap;
 
 	leap = leap_year(year);
@@ -678,8 +682,8 @@ day_in_year(int day, int month, int year) {
  *	3 Sep. 1752 through 13 Sep. 1752.  Returns Thursday for all
  *	missing days.
  */
-int
-day_in_week(int day, int month, int year) {
+int day_in_week(int day, int month, int year)
+{
 	long temp;
 
 	temp =
@@ -693,8 +697,8 @@ day_in_week(int day, int month, int year) {
 	return (REFORMATION_WEEKDAY);
 }
 
-char *
-ascii_day(char *p, int day) {
+char *ascii_day(const int julian, char *p, int day)
+{
 	int display, val;
 	int highlight = 0;
 	static char *aday[] = {
@@ -741,8 +745,7 @@ ascii_day(char *p, int day) {
 	return p;
 }
 
-void
-trim_trailing_spaces(char *s)
+void trim_trailing_spaces(char *s)
 {
 	char *p;
 
@@ -760,15 +763,13 @@ trim_trailing_spaces(char *s)
  * In addition if the string is too large for the width it's truncated.
  * The number of trailing spaces may be 1 less than the number of leading spaces.
  */
-int
-center_str(const char* src, char* dest, size_t dest_size, size_t width)
+int center_str(const char *src, char *dest, size_t dest_size, size_t width)
 {
 	return mbsalign(src, dest, dest_size, &width,
 			MBS_ALIGN_CENTER, MBA_UNIBYTE_FALLBACK);
 }
 
-void
-center(const char *str, size_t len, int separate)
+void center(const char *str, size_t len, int separate)
 {
 	char lineout[FMT_ST_CHARS];
 
-- 
1.8.2.2

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

Configure | About | News | Add a list | Sponsored by KoreLogic