svn commit: r204881 - user/edwin/ncal
Edwin Groothuis
edwin at FreeBSD.org
Mon Mar 8 20:57:36 UTC 2010
Author: edwin
Date: Mon Mar 8 20:57:35 2010
New Revision: 204881
URL: http://svn.freebsd.org/changeset/base/204881
Log:
Fixed issue with aligning of next month after a highlighted day for
non-terminal output.
Modified:
user/edwin/ncal/ncal.c
Modified: user/edwin/ncal/ncal.c
==============================================================================
--- user/edwin/ncal/ncal.c Mon Mar 8 20:45:52 2010 (r204880)
+++ user/edwin/ncal/ncal.c Mon Mar 8 20:57:35 2010 (r204881)
@@ -60,7 +60,7 @@ struct monthlines {
wchar_t name[MAX_WIDTH + 1];
char lines[7][MAX_WIDTH + 1];
char weeks[MAX_WIDTH + 1];
- unsigned int linelen[7];
+ unsigned int extralen[7];
};
struct weekdays {
@@ -336,14 +336,19 @@ main(int argc, char *argv[])
if (flag_easter)
usage();
flag_month = *argv++;
+ before = 0;
+ after = 0;
+ m = strtol(flag_month, NULL, 10);
/* FALLTHROUGH */
case 1:
y = atoi(*argv++);
if (y < 1 || y > 9999)
errx(EX_USAGE, "year %d not in range 1..9999", y);
- before = 0;
- after = 11;
- m = 1;
+ if (before == -1 && after == -1) {
+ before = 0;
+ after = 11;
+ m = 1;
+ }
break;
case 0:
{
@@ -470,8 +475,7 @@ printeaster(int y, int julian, int ortho
printf("%s\n", buf);
}
-#define MW(mw, ms, ml) \
- strlen(ms) > (ml) ? (mw) + 9 : (mw)
+#define MW(mw, me) ((mw) + me)
#define DECREASEMONTH(m, y) \
if (--m == 0) { \
m = 12; \
@@ -564,7 +568,9 @@ monthrangeb(int y, int jd_flag, int m, i
for (i = 0; i != 6; i++) {
for (j = 0; j < count; j++)
- printf("%-*s ", mw, year[j].lines[i]+1);
+ printf("%-*s ",
+ MW(mw, year[j].extralen[i]),
+ year[j].lines[i]+1);
printf("\n");
}
@@ -641,8 +647,8 @@ monthranger(int y, int jd_flag, int m, i
/* Full months */
for (j = 0; j < count; j++)
printf("%-*s",
- MW(mw, year[j].lines[i],
- year[j].linelen[i]), year[j].lines[i]);
+ MW(mw, year[j].extralen[i]),
+ year[j].lines[i]);
printf("\n");
}
@@ -733,7 +739,7 @@ mkmonthr(int y, int m, int jd_flag, stru
memcpy(mlines->lines[i] + k + l, " ", dw);
}
mlines->lines[i][k + l] = '\0';
- mlines->linelen[i] = k;
+ mlines->extralen[i] = l;
}
/* fill the weeknumbers */
@@ -840,6 +846,7 @@ mkmonthb(int y, int m, int jd_flag, stru
mlines->lines[i][1] = '\0';
else
mlines->lines[i][k + l] = '\0';
+ mlines->extralen[i] = l;
}
}
More information about the svn-src-user
mailing list