From: Sami Kerola <kerolasa@iki.fi>
To: util-linux@vger.kernel.org
Cc: kerolasa@iki.fi
Subject: [PATCH 14/16] cal: move global variables to local scope
Date: Thu, 2 May 2013 19:51:39 +0100 [thread overview]
Message-ID: <1367520701-14962-15-git-send-email-kerolasa@iki.fi> (raw)
In-Reply-To: <1367520701-14962-1-git-send-email-kerolasa@iki.fi>
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 | 103 ++++++++++++++++++++++++++++---------------------------
1 file changed, 52 insertions(+), 51 deletions(-)
diff --git a/misc-utils/cal.c b/misc-utils/cal.c
index f4fb898..127a855 100644
--- a/misc-utils/cal.c
+++ b/misc-utils/cal.c
@@ -223,31 +223,22 @@ 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 */
static int leap_year(int year);
static int centuries_since_1700(int year, int centuries);
static 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);
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) {
@@ -255,6 +246,12 @@ main(int argc, char **argv) {
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;
enum Highlight_type {
HIGHLIGHT_UNUSED,
@@ -411,7 +408,7 @@ main(int argc, char **argv) {
default:
usage(stderr);
}
- headers_init(julian);
+ headers_init(julian, weekstart, day_headings, full_month);
switch (highlight) {
case HIGHLIGHT_NEVER:
@@ -430,11 +427,11 @@ main(int argc, char **argv) {
}
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;
}
@@ -464,7 +461,8 @@ static 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;
@@ -475,8 +473,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 +=
@@ -488,13 +485,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.
@@ -513,7 +512,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';
snprintf(out->s[row+2], FMT_ST_CHARS, "%s", lineout);
@@ -522,20 +521,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;
@@ -560,9 +561,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++) {
@@ -589,8 +590,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];
@@ -613,7 +615,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) {
@@ -635,7 +637,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';
@@ -653,8 +655,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;
@@ -684,8 +687,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);
@@ -701,8 +704,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 =
@@ -716,8 +719,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[] = {
@@ -769,15 +772,13 @@ ascii_day(char *p, int day) {
* 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
next prev parent reply other threads:[~2013-05-02 18:52 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-02 18:51 [PATCH 00/16]: [pull] cal: second review round Sami Kerola
2013-05-02 18:51 ` [PATCH 01/16] cal: fix preprocessor directive indendation Sami Kerola
2013-05-02 18:51 ` [PATCH 02/16] cal: convert function like definitions to functions Sami Kerola
2013-05-02 18:51 ` [PATCH 03/16] cal: clean up use of constants Sami Kerola
2013-05-02 18:51 ` [PATCH 04/16] tests: add calendar reformation check Sami Kerola
2013-05-02 18:51 ` [PATCH 05/16] cal: simplify calendar reformat calculations Sami Kerola
2013-05-02 18:51 ` [PATCH 06/16] cal: remove unnecessary initializations Sami Kerola
2013-05-02 18:51 ` [PATCH 07/16] cal: de-duplicate julian specific functions Sami Kerola
2013-05-02 18:51 ` [PATCH 08/16] lib: copy argmatch from gnulib Sami Kerola
2013-05-06 17:16 ` Karel Zak
2013-05-07 21:14 ` Sami Kerola
2013-05-02 18:51 ` [PATCH 09/16] cal: add --highligth option which uses argmatch Sami Kerola
2013-05-06 0:11 ` Pádraig Brady
2013-05-06 10:44 ` Sami Kerola
2013-05-06 17:19 ` Karel Zak
2013-05-02 18:51 ` [PATCH 10/16] cal: add --highlight to usage() Sami Kerola
2013-05-02 18:51 ` [PATCH 11/16] docs: cal: add --highlight option description Sami Kerola
2013-05-02 18:51 ` [PATCH 12/16] tests: add cal day highlight corner cases Sami Kerola
2013-05-02 18:51 ` [PATCH 13/16] cal: stop trimming whitespaces Sami Kerola
2013-05-06 0:12 ` Pádraig Brady
2013-05-14 10:45 ` Karel Zak
2013-05-21 20:34 ` Sami Kerola
2013-05-02 18:51 ` Sami Kerola [this message]
2013-05-14 10:49 ` [PATCH 14/16] cal: move global variables to local scope Karel Zak
2013-05-02 18:51 ` [PATCH 15/16] cal: mark all functions static Sami Kerola
2013-05-02 18:51 ` [PATCH 16/16] cal: simplify day_in_week() Sami Kerola
2013-05-03 20:19 ` Sami Kerola
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1367520701-14962-15-git-send-email-kerolasa@iki.fi \
--to=kerolasa@iki.fi \
--cc=util-linux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox