[hackers] [sbase] cal: Centre month and year above calendar || Richard Ipsum

From: <git_AT_suckless.org>
Date: Sun, 28 Apr 2019 23:30:28 +0200 (CEST)

commit 5b92551057a694bb8796efcf7852b6845398d541
Author: Richard Ipsum <richardipsum_AT_fastmail.co.uk>
AuthorDate: Sun Apr 28 21:26:25 2019 +0100
Commit: Michael Forney <mforney_AT_mforney.org>
CommitDate: Sun Apr 28 14:10:38 2019 -0700

    cal: Centre month and year above calendar

diff --git a/cal.c b/cal.c
index bf4f537..a8c91f1 100644
--- a/cal.c
+++ b/cal.c
_AT_@ -3,6 +3,7 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <time.h>
 #include <unistd.h>
 
_AT_@ -93,12 +94,13 @@ printgrid(size_t year, int month, int fday, int line)
 static void
 drawcal(size_t year, int month, size_t ncols, size_t nmons, int fday)
 {
- char *smon[] = {" January", " February", " March", " April",
- " May", " June", " July", " August",
- "September", " October", " November", " December" };
+ char *smon[] = { "January", "February", "March", "April",
+ "May", "June", "July", "August",
+ "September", "October", "November", "December" };
         char *days[] = { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", };
         size_t m, n, col, cur_year, cur_month, dow;
- int line;
+ int line, pad;
+ char month_year[sizeof("Su Mo Tu We Th Fr Sa")];
 
         for (m = 0; m < nmons; ) {
                 n = m;
_AT_@ -109,8 +111,9 @@ drawcal(size_t year, int month, size_t ncols, size_t nmons, int fday)
                                 cur_month -= 12;
                                 cur_year += 1;
                         }
- printf(" %s %-4zu ", smon[cur_month], cur_year);
- printf(" ");
+ snprintf(month_year, sizeof(month_year), "%s %zu", smon[cur_month], cur_year);
+ pad = sizeof(month_year) - 1 - strlen(month_year);
+ printf("%*s%s%*s ", pad / 2 + pad % 2, "", month_year, pad / 2, "");
                 }
                 putchar('\n');
                 for (col = 0, m = n; m < nmons && col < ncols; ++col, ++m) {
Received on Sun Apr 28 2019 - 23:30:28 CEST

This archive was generated by hypermail 2.3.0 : Sun Apr 28 2019 - 23:36:23 CEST