From owner-svn-src-user@FreeBSD.ORG Mon Mar 8 20:57:36 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7A772106564A; Mon, 8 Mar 2010 20:57:36 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4FA098FC0A; Mon, 8 Mar 2010 20:57:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o28KvZOh005546; Mon, 8 Mar 2010 20:57:35 GMT (envelope-from edwin@svn.freebsd.org) Received: (from edwin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o28KvZhH005544; Mon, 8 Mar 2010 20:57:35 GMT (envelope-from edwin@svn.freebsd.org) Message-Id: <201003082057.o28KvZhH005544@svn.freebsd.org> From: Edwin Groothuis Date: Mon, 8 Mar 2010 20:57:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r204881 - user/edwin/ncal X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Mar 2010 20:57:36 -0000 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; } }