[PATCH 2/3] cal: Correctly center the year

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Aurelien LAJOIE <orel@xxxxxxxxx>
---
 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
-- 
2.20.1




[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux