From b90829918891af8a3207bdc54a25326481b2fa6e Mon Sep 17 00:00:00 2001 From: Aurelien LAJOIE Date: Sat, 28 Mar 2020 23:33:40 +0100 Subject: [PATCH] cal: Correctly center the year Signed-off-by: Aurelien LAJOIE --- misc-utils/cal.c | 7 +++---- tests/expected/cal/weeknum-ymjw | 14 +++++++------- tests/expected/cal/weeknum-ysjw | 14 +++++++------- tests/expected/cal/year-ymj | 2 +- tests/expected/cal/year-ymjw | 2 +- tests/expected/cal/year-ysj | 2 +- tests/expected/cal/year-ysjw | 2 +- 7 files changed, 21 insertions(+), 22 deletions(-) diff --git a/misc-utils/cal.c b/misc-utils/cal.c index 728600377..7cd6545d1 100644 --- a/misc-utils/cal.c +++ b/misc-utils/cal.c @@ -907,11 +907,10 @@ static void monthly(const struct cal_control *ctl) static void yearly(const struct cal_control *ctl) { char out[FMT_ST_CHARS]; - int year_width = 0; + int year_width; - year_width += (ctl->week_width + 1) * (ctl->julian ? 2 : 3); - if (ctl->julian) - year_width--; + year_width = ctl->months_in_row * (ctl->week_width - 1) + + (ctl->months_in_row - 1) * ctl->gutter_width; if (ctl->header_year) { snprintf(out, sizeof(out), "%04d", ctl->req.year); diff --git a/tests/expected/cal/weeknum-ymjw b/tests/expected/cal/weeknum-ymjw index d4a1072b9..bcf9a1ecd 100644 --- a/tests/expected/cal/weeknum-ymjw +++ b/tests/expected/cal/weeknum-ymjw @@ -1,5 +1,5 @@ Julian - Monday-based week with week numbers - 2001 + 2001 January February March Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun @@ -33,7 +33,7 @@ Julian - Monday-based week with week numbers 43 295 296 297 298 299 300 301 47 323 324 325 326 327 328 329 51 351 352 353 354 355 356 357 44 302 303 304 48 330 331 332 333 334 52 358 359 360 361 362 363 364 1 365 - 2002 + 2002 January February March Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun @@ -67,7 +67,7 @@ Julian - Monday-based week with week numbers 43 294 295 296 297 298 299 300 47 322 323 324 325 326 327 328 51 350 351 352 353 354 355 356 44 301 302 303 304 48 329 330 331 332 333 334 52 357 358 359 360 361 362 363 1 364 365 - 2003 + 2003 January February March Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun @@ -101,7 +101,7 @@ Julian - Monday-based week with week numbers 43 293 294 295 296 297 298 299 47 321 322 323 324 325 326 327 52 356 357 358 359 360 361 362 44 300 301 302 303 304 48 328 329 330 331 332 333 334 1 363 364 365 - 2009 + 2009 January February March Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun @@ -135,7 +135,7 @@ Julian - Monday-based week with week numbers 43 292 293 294 295 296 297 298 47 320 321 322 323 324 325 326 52 355 356 357 358 359 360 361 44 299 300 301 302 303 304 48 327 328 329 330 331 332 333 53 362 363 364 365 49 334 - 2010 + 2010 January February March Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun @@ -169,7 +169,7 @@ Julian - Monday-based week with week numbers 42 291 292 293 294 295 296 297 47 326 327 328 329 330 331 332 51 354 355 356 357 358 359 360 43 298 299 300 301 302 303 304 48 333 334 52 361 362 363 364 365 - 2011 + 2011 January February March Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun @@ -203,7 +203,7 @@ Julian - Monday-based week with week numbers 42 290 291 292 293 294 295 296 47 325 326 327 328 329 330 331 51 353 354 355 356 357 358 359 43 297 298 299 300 301 302 303 48 332 333 334 52 360 361 362 363 364 365 44 304 - 2012 + 2012 January February March Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun diff --git a/tests/expected/cal/weeknum-ysjw b/tests/expected/cal/weeknum-ysjw index 16b91adc5..b5a85279a 100644 --- a/tests/expected/cal/weeknum-ysjw +++ b/tests/expected/cal/weeknum-ysjw @@ -1,5 +1,5 @@ Julian - Sunday-based week with week numbers - 2001 + 2001 January February March Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat @@ -33,7 +33,7 @@ Julian - Sunday-based week with week numbers 43 294 295 296 297 298 299 300 47 322 323 324 325 326 327 328 51 350 351 352 353 354 355 356 44 301 302 303 304 48 329 330 331 332 333 334 52 357 358 359 360 361 362 363 53 364 365 - 2002 + 2002 January February March Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat @@ -67,7 +67,7 @@ Julian - Sunday-based week with week numbers 43 293 294 295 296 297 298 299 47 321 322 323 324 325 326 327 52 356 357 358 359 360 361 362 44 300 301 302 303 304 48 328 329 330 331 332 333 334 53 363 364 365 - 2003 + 2003 January February March Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat @@ -101,7 +101,7 @@ Julian - Sunday-based week with week numbers 43 292 293 294 295 296 297 298 47 320 321 322 323 324 325 326 52 355 356 357 358 359 360 361 44 299 300 301 302 303 304 48 327 328 329 330 331 332 333 53 362 363 364 365 49 334 - 2009 + 2009 January February March Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat @@ -135,7 +135,7 @@ Julian - Sunday-based week with week numbers 43 291 292 293 294 295 296 297 48 326 327 328 329 330 331 332 52 354 355 356 357 358 359 360 44 298 299 300 301 302 303 304 49 333 334 53 361 362 363 364 365 - 2010 + 2010 January February March Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat @@ -169,7 +169,7 @@ Julian - Sunday-based week with week numbers 43 290 291 292 293 294 295 296 48 325 326 327 328 329 330 331 52 353 354 355 356 357 358 359 44 297 298 299 300 301 302 303 49 332 333 334 53 360 361 362 363 364 365 45 304 - 2011 + 2011 January February March Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat @@ -203,7 +203,7 @@ Julian - Sunday-based week with week numbers 43 289 290 291 292 293 294 295 48 324 325 326 327 328 329 330 52 352 353 354 355 356 357 358 44 296 297 298 299 300 301 302 49 331 332 333 334 53 359 360 361 362 363 364 365 45 303 304 - 2012 + 2012 January February March Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat diff --git a/tests/expected/cal/year-ymj b/tests/expected/cal/year-ymj index caa3db01d..f3b71439b 100644 --- a/tests/expected/cal/year-ymj +++ b/tests/expected/cal/year-ymj @@ -1,5 +1,5 @@ Julian - Monday-based week - 2006 + 2006 January February March Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun diff --git a/tests/expected/cal/year-ymjw b/tests/expected/cal/year-ymjw index b62e16703..e6a569ebe 100644 --- a/tests/expected/cal/year-ymjw +++ b/tests/expected/cal/year-ymjw @@ -1,5 +1,5 @@ Julian - Monday-based week with week numbers - 2006 + 2006 January February March Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun diff --git a/tests/expected/cal/year-ysj b/tests/expected/cal/year-ysj index 080e2579a..2b40099e4 100644 --- a/tests/expected/cal/year-ysj +++ b/tests/expected/cal/year-ysj @@ -1,5 +1,5 @@ Julian - Sunday-based week - 2006 + 2006 January February March Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat diff --git a/tests/expected/cal/year-ysjw b/tests/expected/cal/year-ysjw index 69dbae3ad..800ec0cf7 100644 --- a/tests/expected/cal/year-ysjw +++ b/tests/expected/cal/year-ysjw @@ -1,5 +1,5 @@ Julian - Sunday-based week with week numbers - 2006 + 2006 January February March Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat