slstatus-kanji.diff (1495B)
1 --- b/config.def.h 2 +++ a/config.def.h 3 @@ -31,6 +31,7 @@ 4 * hostname hostname NULL 5 * ipv4 IPv4 address interface name (eth0) 6 * ipv6 IPv6 address interface name (eth0) 7 + * kanji japanese day of week kanji NULL 8 * kernel_release `uname -r` NULL 9 * keyboard_indicators caps/num lock indicators format string (c?n?) 10 * see keyboard_indicators.c 11 --- a/components/kanji.c 12 +++ b/components/kanji.c 13 @@ -0,0 +1,13 @@ 14 +/* See LICENSE file for copyright and license details. */ 15 +#include <time.h> 16 + 17 +const char * 18 +kanji(const char *unused) { 19 + char *kanji[]={"日","月","火","水","木","金","土"}; 20 + int map[]={0,3,2,5,0,3,5,1,4,6,2,4}; 21 + time_t t=time(NULL); 22 + struct tm tm=*localtime(&t); 23 + int m=tm.tm_mon+1,y=tm.tm_year+1900-(m<3); 24 + int wd=(y+y/4-y/100+y/400+map[m-1]+tm.tm_mday)%7; 25 + return kanji[wd]; 26 +} 27 --- a/Makefile 28 +++ b/Makefile 29 @@ -14,6 +14,7 @@ 30 components/entropy\ 31 components/hostname\ 32 components/ip\ 33 + components/kanji\ 34 components/kernel_release\ 35 components/keyboard_indicators\ 36 components/keymap\ 37 --- a/slstatus.h 38 +++ b/slstatus.h 39 @@ -31,6 +31,9 @@ 40 const char *ipv4(const char *interface); 41 const char *ipv6(const char *interface); 42 43 +/* kanji */ 44 +const char *kanji(const char *unused); 45 + 46 /* kernel_release */ 47 const char *kernel_release(const char *unused);