commit 7e738fc56ece1d36cecb46370535eca400b8d310
Author: Madison Lynch <[email protected]>
Date:   Fri Jun 14 13:08:19 2024 -0700

    [slstatus][patch][kanji] Overhauled kanji patch:
    
    Code is now far more legible and efficient. Patch file has also been updated
    to follow standards.

diff --git a/tools.suckless.org/slstatus/patches/kanji/index.md 
b/tools.suckless.org/slstatus/patches/kanji/index.md
index bb2fd6fe..951f509b 100644
--- a/tools.suckless.org/slstatus/patches/kanji/index.md
+++ b/tools.suckless.org/slstatus/patches/kanji/index.md
@@ -3,11 +3,12 @@ kanji
 
 Description
 -----------
-This patch implements functionality to display the Japanese Kanji character 
corresponding with the current day of the week.
+This patch implements a function that displays the Japanese Kanji for the
+current day of the week.
 
 Download
 --------
-* [slstatus-kanji.diff](slstatus-kanji.diff)
+* [slstatus-kanji-20240614-f68f492.diff](slstatus-kanji-20240614-f68f492.diff)
 
 Author
 ------
diff --git 
a/tools.suckless.org/slstatus/patches/kanji/slstatus-kanji-20240614-f68f492.diff
 
b/tools.suckless.org/slstatus/patches/kanji/slstatus-kanji-20240614-f68f492.diff
new file mode 100644
index 00000000..79eeb5db
--- /dev/null
+++ 
b/tools.suckless.org/slstatus/patches/kanji/slstatus-kanji-20240614-f68f492.diff
@@ -0,0 +1,90 @@
+From 3baa458322f4cf9bd4c7257d1250db490a30e8d8 Mon Sep 17 00:00:00 2001
+From: Madison Lynch <[email protected]>
+Date: Fri, 14 Jun 2024 13:00:02 -0700
+Subject: [PATCH] Overhauled kanji patch: cleaner code, faster execution
+
+---
+ Makefile           |  1 +
+ components/kanji.c | 30 ++++++++++++++++++++++++++++++
+ config.def.h       |  1 +
+ slstatus.h         |  3 +++
+ 4 files changed, 35 insertions(+)
+ create mode 100644 components/kanji.c
+
+diff --git a/Makefile b/Makefile
+index 7a18274..305ab91 100644
+--- a/Makefile
++++ b/Makefile
+@@ -14,6 +14,7 @@ COM =\
+       components/entropy\
+       components/hostname\
+       components/ip\
++      components/kanji\
+       components/kernel_release\
+       components/keyboard_indicators\
+       components/keymap\
+diff --git a/components/kanji.c b/components/kanji.c
+new file mode 100644
+index 0000000..2dbcd9a
+--- /dev/null
++++ b/components/kanji.c
+@@ -0,0 +1,30 @@
++/* Written by Madison Lynch <[email protected]> */
++#include <time.h>
++
++static const char *symbols[] = {
++        "日", // Sunday
++        "月", // Monday
++        "火", // Tuesday
++        "水", // Wednesday
++        "木", // Thursday
++        "金", // Friday
++        "土"  // Saturday
++};
++
++/**
++* Returns the appropriate Japanese Kanji character correlating with the 
current
++* day of the week.
++*
++* @param  unused (NULL)
++* @return the appropriate Kanji character (char)
++* @author Madison Lynch
++*/
++const char *
++kanji(const char *unused) { 
++    const time_t current_time = time(NULL);
++    const unsigned int weekday = localtime(
++        &current_time
++    )->tm_wday;
++
++    return (weekday < sizeof(symbols) / sizeof(char *)) ? symbols[weekday] : 
"?";
++}
+diff --git a/config.def.h b/config.def.h
+index d805331..099ed79 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -31,6 +31,7 @@ static const char unknown_str[] = "n/a";
+  * hostname            hostname                        NULL
+  * ipv4                IPv4 address                    interface name (eth0)
+  * ipv6                IPv6 address                    interface name (eth0)
++ * kanji               current day of week kanji       NULL
+  * kernel_release      `uname -r`                      NULL
+  * keyboard_indicators caps/num lock indicators        format string (c?n?)
+  *                                                     see 
keyboard_indicators.c
+diff --git a/slstatus.h b/slstatus.h
+index 8ef5874..dc927eb 100644
+--- a/slstatus.h
++++ b/slstatus.h
+@@ -31,6 +31,9 @@ const char *hostname(const char *unused);
+ const char *ipv4(const char *interface);
+ const char *ipv6(const char *interface);
+ 
++/* kanji */
++const char *kanji(const char *unused);
++
+ /* kernel_release */
+ const char *kernel_release(const char *unused);
+ 
+-- 
+2.45.2
+
diff --git a/tools.suckless.org/slstatus/patches/kanji/slstatus-kanji.diff 
b/tools.suckless.org/slstatus/patches/kanji/slstatus-kanji.diff
deleted file mode 100644
index f72cb8f9..00000000
--- a/tools.suckless.org/slstatus/patches/kanji/slstatus-kanji.diff
+++ /dev/null
@@ -1,51 +0,0 @@
---- a/components/kanji.c
-+++ b/components/kanji.c
-@@ -0,0 +1,14 @@
-+/* Written by Madison Lynch <[email protected]> */
-+#include <time.h>
-+
-+const char *
-+kanji(const char *unused) {
-+      char *kanji[] = {"日", "月", "火", "水", "木", "金", "土"};
-+      time_t t=time(NULL);
-+      struct tm tm=*localtime(&t);
-+      int map[]={0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4},
-+          m=tm.tm_mon+1,
-+          y=tm.tm_year+1900-(m<3),
-+          wd=(y+y/4-y/100+y/400+map[m-1]+tm.tm_mday)%7;
-+      return kanji[wd];
-+}
-
---- a/config.def.h
-+++ b/config.def.h
-@@ -31,6 +31,7 @@
-  * hostname            hostname                        NULL
-  * ipv4                IPv4 address                    interface name (eth0)
-  * ipv6                IPv6 address                    interface name (eth0)
-+ * kanji               japanese day of week kanji      NULL
-  * kernel_release      `uname -r`                      NULL
-  * keyboard_indicators caps/num lock indicators        format string (c?n?)
-  *                                                     see 
keyboard_indicators.c
-
---- a/Makefile
-+++ b/Makefile
-@@ -14,6 +14,7 @@
-       components/entropy\
-       components/hostname\
-       components/ip\
-+      components/kanji\
-       components/kernel_release\
-       components/keyboard_indicators\
-       components/keymap\
-
---- a/slstatus.h
-+++ b/slstatus.h
-@@ -31,6 +31,9 @@
- const char *ipv4(const char *interface);
- const char *ipv6(const char *interface);
- 
-+/* kanji */
-+const char *kanji(const char *unused);
-+
- /* kernel_release */
- const char *kernel_release(const char *unused);


Reply via email to