]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
cal: use escape codes from color-names.h
authorThomas Weißschuh <thomas@t-8ch.de>
Wed, 15 Feb 2023 17:23:16 +0000 (17:23 +0000)
committerThomas Weißschuh <thomas@t-8ch.de>
Wed, 15 Feb 2023 19:40:32 +0000 (19:40 +0000)
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
18 files changed:
misc-utils/cal.c
tests/expected/cal/color-first-day
tests/expected/cal/color-last-day
tests/expected/cal/color-reformation-corner-cases-1
tests/expected/cal/color-reformation-corner-cases-4
tests/expected/cal/color-vertical
tests/expected/cal/color-vertical-week
tests/expected/cal/colorw-first-day-week-numbers
tests/expected/cal/colorw-last-day-week-numbers
tests/expected/cal/colorw-reformation-corner-cases-1-week-numbers
tests/expected/cal/colorw-reformation-corner-cases-4-week-numbers
tests/expected/cal/weekarg-1m-week53-color
tests/expected/cal/weekarg-1mj-week53-color
tests/expected/cal/weekarg-3m-week40-color
tests/expected/cal/weekarg-3m-week52-color
tests/expected/cal/weekarg-3m-week53-color
tests/expected/cal/weekarg-3mj-week40-color
tests/expected/cal/weekarg-3s-week54-color

index eb2cfed92f7c0db649cb9c272490b5bd9c59e4da..77782867cd9d68ce3758af8cb40a52e97315ff3e 100644 (file)
 #define DOY_MONTH_WIDTH        27      /* -j month width */
 #define DOM_MONTH_WIDTH        20      /* month width */
 
-static int has_term = 0;
 static const char *Senter = "", *Sexit = "";   /* enter and exit standout mode */
 
-#if defined(HAVE_LIBNCURSES) || defined(HAVE_LIBNCURSESW)
-# if defined(HAVE_NCURSESW_TERM_H)
-#  include <ncursesw/term.h>
-# elif defined(HAVE_NCURSES_TERM_H)
-#  include <ncurses/term.h>
-# elif defined(HAVE_TERM_H)
-#  include <term.h>
-# endif
-#endif
-
-static int setup_terminal(char *term
-#if !defined(HAVE_LIBNCURSES) && !defined(HAVE_LIBNCURSESW)
-                       __attribute__((__unused__))
-#endif
-               )
-{
-#if defined(HAVE_LIBNCURSES) || defined(HAVE_LIBNCURSESW)
-       int ret;
-
-       if (setupterm(term, STDOUT_FILENO, &ret) != 0 || ret != 1)
-               return -1;
-#endif
-       return 0;
-}
-
-static const char *my_tgetstr(char *ss
-#if !defined(HAVE_LIBNCURSES) && !defined(HAVE_LIBNCURSESW)
-                       __attribute__((__unused__))
-#endif
-               )
-{
-       const char *ret = NULL;
-
-#if defined(HAVE_LIBNCURSES) || defined(HAVE_LIBNCURSESW)
-       if (has_term)
-               ret = tigetstr(ss);
-#endif
-       if (!ret || ret == (char *)-1)
-               return "";
-       return ret;
-}
-
 #include "widechar.h"
 
 enum {
@@ -284,7 +241,6 @@ static time_t cal_time(time_t *t)
 int main(int argc, char **argv)
 {
        struct tm local_time;
-       char *term;
        time_t now;
        int ch = 0, yflag = 0, Yflag = 0, cols = COLUMNS_MAX_THREE;
 
@@ -338,15 +294,6 @@ int main(int argc, char **argv)
        textdomain(PACKAGE);
        close_stdout_atexit();
 
-       term = getenv("TERM");
-       if (term) {
-               has_term = setup_terminal(term) == 0;
-               if (has_term) {
-                       Senter = my_tgetstr("smso");
-                       Sexit = my_tgetstr("rmso");
-               }
-       }
-
 /*
  * The traditional Unix cal utility starts the week at Sunday,
  * while ISO 8601 starts at Monday. We read the start day from
@@ -568,21 +515,13 @@ int main(int argc, char **argv)
        weekdays_init(&ctl);
        headers_init(&ctl);
 
-       if (colors_init(ctl.colormode, "cal") == 0) {
-               /*
-                * If standout mode available (Senter and Sexit are set) and
-                * user or terminal-colors.d do not disable colors than
-                * ignore colors_init().
-                */
-               if (*Senter && *Sexit && colors_mode() != UL_COLORMODE_NEVER) {
-                       /* let use standout mode */
-                       ;
-               } else {
-                       /* disable */
-                       Senter = ""; Sexit = "";
-                       ctl.req.day = 0;
-                       ctl.weektype &= ~WEEK_NUM_MASK;
-               }
+       if (colors_init(ctl.colormode, "cal") > 0) {
+               Senter = UL_COLOR_REVERSE;
+               Sexit = UL_COLOR_RESET;
+       } else {
+               /* disable */
+               ctl.req.day = 0;
+               ctl.weektype &= ~WEEK_NUM_MASK;
        }
 
        if (yflag || Yflag) {
index ca3c63d845e1437073c8b6069e5986e3a7844138..446f4fd93e0173c927687fc3d5fad0c837ea745f 100644 (file)
@@ -1,6 +1,6 @@
     January 0001    
 Su Mo Tu We Th Fr Sa
-                  \e[7m 1\e[27m
+                  \e[7m 1\e[0m
  2  3  4  5  6  7  8
  9 10 11 12 13 14 15
 16 17 18 19 20 21 22
index 2f058dabd04491de827be4aa86a62ed4b10585b4..ec7793c6b5fd6df619fca58955320e386d4eb8c0 100644 (file)
@@ -4,5 +4,5 @@ Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
  7  8  9 10 11 12 13   5  6  7  8  9 10 11   2  3  4  5  6  7  8
 14 15 16 17 18 19 20  12 13 14 15 16 17 18   9 10 11 12 13 14 15
 21 22 23 24 25 26 27  19 20 21 22 23 24 25  16 17 18 19 20 21 22
-28 29 30              26 27 28 29 30 \e[7m31\e[27m     23 24 25 26 27 28 29
+28 29 30              26 27 28 29 30 \e[7m31\e[0m     23 24 25 26 27 28 29
                                             30 31               
index 75bf906b638969fef84bab1488110f40fffff790..4b26465bbe060099392e8f5d26c962234589c514 100644 (file)
@@ -1,6 +1,6 @@
    September 1752   
 Su Mo Tu We Th Fr Sa
-       1 \e[7m 2\e[27m 14 15 16
+       1 \e[7m 2\e[0m 14 15 16
 17 18 19 20 21 22 23
 24 25 26 27 28 29 30
                     
index 5a7b85dab13e8302c08ba6a464211bf2fd3a25cc..6c5571458e006c81172bcd6396143bdd89e38d2c 100644 (file)
@@ -1,6 +1,6 @@
    September 1752   
 Su Mo Tu We Th Fr Sa
-       1  2 \e[7m14\e[27m 15 16
+       1  2 \e[7m14\e[0m 15 16
 17 18 19 20 21 22 23
 24 25 26 27 28 29 30
                     
index dc6ce6caa03930f4a52e6aa84d3e6b023100e7a2..bf5c609413558c693c84e75c1539039f202ad3fa 100644 (file)
@@ -2,7 +2,7 @@
 Su     5 12 19 26   
 Mo     6 13 20 27   
 Tu     7 14 21 28   
-We  1  8 \e[7m15\e[27m 22      
+We  1  8 \e[7m15\e[0m 22      
 Th  2  9 16 23      
 Fr  3 10 17 24      
 Sa  4 11 18 25      
index d0ccdc127a906d6b5884365396f3125948f87b06..d69866e1f1a0b944af5e1f48e5249c8baaf42687 100644 (file)
@@ -2,7 +2,7 @@
 Su     5 12 19 26   
 Mo     6 13 20 27   
 Tu     7 14 21 28   
-We  1  8 \e[7m15\e[27m 22      
+We  1  8 \e[7m15\e[0m 22      
 Th  2  9 16 23      
 Fr  3 10 17 24      
 Sa  4 11 18 25      
index 78e1e81da66a96e77780e4cbef6905b0f49f5da3..e14aaf3a398c121dcc0852682dae0ee4e040843f 100644 (file)
@@ -1,6 +1,6 @@
       January 0001     
    Su Mo Tu We Th Fr Sa
- 1                   \e[7m 1\e[27m
+ 1                   \e[7m 1\e[0m
  2  2  3  4  5  6  7  8
  3  9 10 11 12 13 14 15
  4 16 17 18 19 20 21 22
index e1c1f04c73a8655a340d694cd41d2a84de1d546b..d0d49cc292067ccf4ef0a13131cc9e4c00ccfcd9 100644 (file)
@@ -4,5 +4,5 @@
 46  7  8  9 10 11 12 13  50  5  6  7  8  9 10 11   2  2  3  4  5  6  7  8
 47 14 15 16 17 18 19 20  51 12 13 14 15 16 17 18   3  9 10 11 12 13 14 15
 48 21 22 23 24 25 26 27  52 19 20 21 22 23 24 25   4 16 17 18 19 20 21 22
-49 28 29 30              53 26 27 28 29 30 \e[7m31\e[27m      5 23 24 25 26 27 28 29
+49 28 29 30              53 26 27 28 29 30 \e[7m31\e[0m      5 23 24 25 26 27 28 29
                                                    6 30 31               
index 5c7232eedc1be107e1d206893414fc292ef4200c..98fa041f6828ab8dd853bb5a6442c44dbc6d0a8e 100644 (file)
@@ -1,6 +1,6 @@
      September 1752    
    Su Mo Tu We Th Fr Sa
-36        1 \e[7m 2\e[27m 14 15 16
+36        1 \e[7m 2\e[0m 14 15 16
 37 17 18 19 20 21 22 23
 38 24 25 26 27 28 29 30
                        
index dd081512b1b928ea4af63ca2a741c5bf329e8fe8..307b5398e5604853231ce9db1cd1ae54ca50abbf 100644 (file)
@@ -1,6 +1,6 @@
      September 1752    
    Su Mo Tu We Th Fr Sa
-36        1  2 \e[7m14\e[27m 15 16
+36        1  2 \e[7m14\e[0m 15 16
 37 17 18 19 20 21 22 23
 38 24 25 26 27 28 29 30
                        
index 0e9edfb2a6a41d27b3eab4b08ceed03dc37059e2..84a5e688627519f30a5682b3f567b3efef2406eb 100644 (file)
@@ -1,7 +1,7 @@
 Gregorian - Monday-based, week 53, 1 month
       January 2010     
    Mo Tu We Th Fr Sa Su
-\e[7m53\e[27m              1  2  3
+\e[7m53\e[0m              1  2  3
  1  4  5  6  7  8  9 10
  2 11 12 13 14 15 16 17
  3 18 19 20 21 22 23 24
index 8f73100d20067920193c12e19d6e8c7ef02222ec..9a055ae0646bbaec332b4d705bb1476341efd664 100644 (file)
@@ -1,7 +1,7 @@
 Julian    - Monday-based, week 53, 1 month
          January 2010         
    Mon Tue Wed Thu Fri Sat Sun
-\e[7m53\e[27m                   1   2   3
+\e[7m53\e[0m                   1   2   3
  1   4   5   6   7   8   9  10
  2  11  12  13  14  15  16  17
  3  18  19  20  21  22  23  24
index 8039f4498d350ec5a2c98bc1a0ef47478bf2f0e8..2ffa04ecdea8d8b0aa32654fee419fd3f01598f8 100644 (file)
@@ -1,9 +1,9 @@
 Gregorian - Monday-based, week 40, 3 month
      September 2013            October 2013            November 2013     
    Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su
-35                    1  \e[7m40\e[27m     1  2  3  4  5  6  44              1  2  3
-36  2  3  4  5  6  7  8  41 \e[7m 7\e[27m  8  9 10 11 12 13  45  4  5  6  7  8  9 10
+35                    1  \e[7m40\e[0m     1  2  3  4  5  6  44              1  2  3
+36  2  3  4  5  6  7  8  41 \e[7m 7\e[0m  8  9 10 11 12 13  45  4  5  6  7  8  9 10
 37  9 10 11 12 13 14 15  42 14 15 16 17 18 19 20  46 11 12 13 14 15 16 17
 38 16 17 18 19 20 21 22  43 21 22 23 24 25 26 27  47 18 19 20 21 22 23 24
 39 23 24 25 26 27 28 29  44 28 29 30 31           48 25 26 27 28 29 30   
-\e[7m40\e[27m 30                                                                    
+\e[7m40\e[0m 30                                                                    
index f15faf1d2a93c89265e6de917ea8411a488e63ec..1b0b6c38f17475533bedfc4d807d5a4ee85c0ae0 100644 (file)
@@ -5,5 +5,5 @@ Gregorian - Monday-based, week 52, 3 month
 45  6  7  8  9 10 11 12  49  4  5  6  7  8  9 10   2  8  9 10 11 12 13 14
 46 13 14 15 16 17 18 19  50 11 12 13 14 15 16 17   3 15 16 17 18 19 20 21
 47 20 21 22 23 24 25 26  51 18 19 20 21 22 23 24   4 22 23 24 25 26 27 28
-48 27 28 29 30           \e[7m52\e[27m 25 26 27 28 29 30 \e[7m31\e[27m   5 29 30 31            
+48 27 28 29 30           \e[7m52\e[0m 25 26 27 28 29 30 \e[7m31\e[0m   5 29 30 31            
                                                                          
index b8c7abf7a1d5c033939845739a8e9c0a6663aeeb..b46d330544588f096dc2b3bdfd6c55c86d40505c 100644 (file)
@@ -1,9 +1,9 @@
 Gregorian - Monday-based, week 53, 3 month
      December 2009             January 2010            February 2010     
    Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su
-49     1  2  3  4  5  6  \e[7m53\e[27m              1  2  3   5  1  2  3  4  5  6  7
+49     1  2  3  4  5  6  \e[7m53\e[0m              1  2  3   5  1  2  3  4  5  6  7
 50  7  8  9 10 11 12 13   1  4  5  6  7  8  9 10   6  8  9 10 11 12 13 14
 51 14 15 16 17 18 19 20   2 11 12 13 14 15 16 17   7 15 16 17 18 19 20 21
 52 21 22 23 24 25 26 27   3 18 19 20 21 22 23 24   8 22 23 24 25 26 27 28
-\e[7m53\e[27m 28 29 30 31            4 25 26 27 28 29 30 31                         
+\e[7m53\e[0m 28 29 30 31            4 25 26 27 28 29 30 31                         
                                                                          
index d377259b208273c9f2bfa38b6af21c82bef6d70b..ef246ade145d071239e8fe842ba706bdbddd6369 100644 (file)
@@ -1,9 +1,9 @@
 Julian    - Monday-based, week 40, 3 month
         September 2013                   October 2013                    November 2013        
    Mon Tue Wed Thu Fri Sat Sun     Mon Tue Wed Thu Fri Sat Sun     Mon Tue Wed Thu Fri Sat Sun
-35                         244  \e[7m40\e[27m     274 275 276 277 278 279  44                 305 306 307
-36 245 246 247 248 249 250 251  41 \e[7m280\e[27m 281 282 283 284 285 286  45 308 309 310 311 312 313 314
+35                         244  \e[7m40\e[0m     274 275 276 277 278 279  44                 305 306 307
+36 245 246 247 248 249 250 251  41 \e[7m280\e[0m 281 282 283 284 285 286  45 308 309 310 311 312 313 314
 37 252 253 254 255 256 257 258  42 287 288 289 290 291 292 293  46 315 316 317 318 319 320 321
 38 259 260 261 262 263 264 265  43 294 295 296 297 298 299 300  47 322 323 324 325 326 327 328
 39 266 267 268 269 270 271 272  44 301 302 303 304              48 329 330 331 332 333 334    
-\e[7m40\e[27m 273                                                                                        
+\e[7m40\e[0m 273                                                                                        
index 8ecca4be3e9b762fea205f061594683cfe496aa3..5b19cddfbe156d365cfec057ea14d14d2dbf43da 100644 (file)
@@ -6,4 +6,4 @@ Gregorian - Sunday-based, week 54, 3 month
 47 12 13 14 15 16 17 18  51 10 11 12 13 14 15 16   3 14 15 16 17 18 19 20
 48 19 20 21 22 23 24 25  52 17 18 19 20 21 22 23   4 21 22 23 24 25 26 27
 49 26 27 28 29 30        53 24 25 26 27 28 29 30   5 28 29 30 31         
-                         \e[7m54\e[27m \e[7m31\e[27m                                           
+                         \e[7m54\e[0m \e[7m31\e[0m