]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
cal: Correctly center the year
authorAurelien LAJOIE <orel@melix.net>
Sat, 28 Mar 2020 22:33:40 +0000 (23:33 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 31 Mar 2020 13:31:54 +0000 (15:31 +0200)
Signed-off-by: Aurelien LAJOIE <orel@melix.net>
misc-utils/cal.c
tests/expected/cal/weeknum-ymjw
tests/expected/cal/weeknum-ysjw
tests/expected/cal/year-ymj
tests/expected/cal/year-ymjw
tests/expected/cal/year-ysj
tests/expected/cal/year-ysjw

index 7286003779e18eb9cc40eb3951a943c211f3d7bc..7cd6545d17d72bbad0a4735df435f816c8a0467d 100644 (file)
@@ -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);
index d4a1072b9e2f62f1a602a094d3ee5f5fadc213a9..bcf9a1ecd341e1c5d111d616b83ea2c3bc7ab2bf 100644 (file)
@@ -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
index 16b91adc5a6b2f348c878e0b000be9c564424241..b5a85279a6fe9c9ef65e8f89c7118bde8d6a5233 100644 (file)
@@ -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
index caa3db01d474bd1a1435ccba07213aa78651ed32..f3b71439bcfd1a76a55eb0d5c5bc63708a83e5b3 100644 (file)
@@ -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
index b62e16703c73d9f0cd4486903e069d93f0ccaac3..e6a569ebe6328a568b4c90c24be3c97b7ef73f5b 100644 (file)
@@ -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
index 080e2579a7eb335748cdbf8426047cdd951a7e50..2b40099e48bb06dcd54a2e932be27fe22e76065a 100644 (file)
@@ -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
index 69dbae3ad5845d4b68e23e087b61c79bd4505713..800ec0cf7ef2c16a888d87effc410e05d85939f8 100644 (file)
@@ -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