sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

slstatus-kanji-20240614-f68f492.diff (2700B)


      1 From 3baa458322f4cf9bd4c7257d1250db490a30e8d8 Mon Sep 17 00:00:00 2001
      2 From: Madison Lynch <madi@mxdi.xyz>
      3 Date: Fri, 14 Jun 2024 13:00:02 -0700
      4 Subject: [PATCH] Overhauled kanji patch: cleaner code, faster execution
      5 
      6 ---
      7  Makefile           |  1 +
      8  components/kanji.c | 30 ++++++++++++++++++++++++++++++
      9  config.def.h       |  1 +
     10  slstatus.h         |  3 +++
     11  4 files changed, 35 insertions(+)
     12  create mode 100644 components/kanji.c
     13 
     14 diff --git a/Makefile b/Makefile
     15 index 7a18274..305ab91 100644
     16 --- a/Makefile
     17 +++ b/Makefile
     18 @@ -14,6 +14,7 @@ COM =\
     19  	components/entropy\
     20  	components/hostname\
     21  	components/ip\
     22 +	components/kanji\
     23  	components/kernel_release\
     24  	components/keyboard_indicators\
     25  	components/keymap\
     26 diff --git a/components/kanji.c b/components/kanji.c
     27 new file mode 100644
     28 index 0000000..2dbcd9a
     29 --- /dev/null
     30 +++ b/components/kanji.c
     31 @@ -0,0 +1,30 @@
     32 +/* Written by Madison Lynch <madi@mxdi.xyz> */
     33 +#include <time.h>
     34 +
     35 +static const char *symbols[] = {
     36 +        "日", // Sunday
     37 +        "月", // Monday
     38 +        "火", // Tuesday
     39 +        "水", // Wednesday
     40 +        "木", // Thursday
     41 +        "金", // Friday
     42 +        "土"  // Saturday
     43 +};
     44 +
     45 +/**
     46 +* Returns the appropriate Japanese Kanji character correlating with the current
     47 +* day of the week.
     48 +*
     49 +* @param  unused (NULL)
     50 +* @return the appropriate Kanji character (char)
     51 +* @author Madison Lynch
     52 +*/
     53 +const char *
     54 +kanji(const char *unused) { 
     55 +    const time_t current_time = time(NULL);
     56 +    const unsigned int weekday = localtime(
     57 +        &current_time
     58 +    )->tm_wday;
     59 +
     60 +    return (weekday < sizeof(symbols) / sizeof(char *)) ? symbols[weekday] : "?";
     61 +}
     62 diff --git a/config.def.h b/config.def.h
     63 index d805331..099ed79 100644
     64 --- a/config.def.h
     65 +++ b/config.def.h
     66 @@ -31,6 +31,7 @@ static const char unknown_str[] = "n/a";
     67   * hostname            hostname                        NULL
     68   * ipv4                IPv4 address                    interface name (eth0)
     69   * ipv6                IPv6 address                    interface name (eth0)
     70 + * kanji               current day of week kanji       NULL
     71   * kernel_release      `uname -r`                      NULL
     72   * keyboard_indicators caps/num lock indicators        format string (c?n?)
     73   *                                                     see keyboard_indicators.c
     74 diff --git a/slstatus.h b/slstatus.h
     75 index 8ef5874..dc927eb 100644
     76 --- a/slstatus.h
     77 +++ b/slstatus.h
     78 @@ -31,6 +31,9 @@ const char *hostname(const char *unused);
     79  const char *ipv4(const char *interface);
     80  const char *ipv6(const char *interface);
     81  
     82 +/* kanji */
     83 +const char *kanji(const char *unused);
     84 +
     85  /* kernel_release */
     86  const char *kernel_release(const char *unused);
     87  
     88 -- 
     89 2.45.2
     90