From: Aurelien LAJOIE Date: Mon, 13 Apr 2020 19:55:24 +0000 (+0200) Subject: cal: Add helper functions for left align X-Git-Tag: v2.36-rc1~95^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4de7efb505bc2c05bf8230e428f9d972249af9b6;p=thirdparty%2Futil-linux.git cal: Add helper functions for left align --- diff --git a/misc-utils/cal.c b/misc-utils/cal.c index 3130dd571d..dc636207d0 100644 --- a/misc-utils/cal.c +++ b/misc-utils/cal.c @@ -260,6 +260,8 @@ static int week_number(int day, int month, int32_t year, const struct cal_contro static int week_to_day(const struct cal_control *ctl); static int center_str(const char *src, char *dest, size_t dest_size, size_t width); static void center(const char *str, size_t len, int separate); +static int left_str(const char *src, char *dest, size_t dest_size, size_t width); +static void left(const char *str, size_t len, int separate) __attribute__ ((unused)); static int parse_reform_year(const char *reform_year); static void __attribute__((__noreturn__)) usage(void); @@ -1098,7 +1100,25 @@ static void center(const char *str, size_t len, int separate) my_putstring(lineout); } } +static int left_str(const char* src, char* dest, + size_t dest_size, size_t width) +{ + return mbsalign(src, dest, dest_size, &width, + MBS_ALIGN_LEFT, MBA_UNIBYTE_FALLBACK); +} +static void left(const char *str, size_t len, int separate) +{ + char lineout[FMT_ST_CHARS]; + + left_str(str, lineout, sizeof(lineout), len); + my_putstring(lineout); + + if (separate) { + snprintf(lineout, sizeof(lineout), "%*s", separate, ""); + my_putstring(lineout); + } +} static int parse_reform_year(const char *reform_year) { size_t i;