From 80e1c4aebfa6d8b4d1cca9dfbc1541c473c03f5f Mon Sep 17 00:00:00 2001 From: Abishek V Ashok Date: Wed, 27 Mar 2019 18:45:51 +0530 Subject: [PATCH] cmatrix.c: Adds Japanese characters support Adds classic mode which can be invoked with "c", which uses Japanese characters instead of the regular English characters that cmatrix outputed earlier. Done to match up with the original matrix. The starting, ending, and range for randum number (corresponding to the unicode character) is modified to suite the Japanese character range. Requires appropriate Japanese fonts to make it work. Fixes #57 Signed-off-by: Abishek V Ashok --- cmatrix.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/cmatrix.c b/cmatrix.c index a4c64f6..d8e4f1b 100644 --- a/cmatrix.c +++ b/cmatrix.c @@ -127,10 +127,11 @@ void c_die(char *msg, ...) { } void usage(void) { - printf(" Usage: cmatrix -[abBfhlsmVx] [-u delay] [-C color]\n"); + printf(" Usage: cmatrix -[abBcfhlsmVx] [-u delay] [-C color]\n"); printf(" -a: Asynchronous scroll\n"); printf(" -b: Bold characters on\n"); printf(" -B: All bold characters (overrides -b)\n"); + printf(" -c: Use Japanese characters as seen in the original matrix. Requires appropriate fonts\n"); printf(" -f: Force the linux $TERM type to be on\n"); printf(" -l: Linux mode (uses matrix console font)\n"); printf(" -L: Lock mode (can be closed from another terminal)\n"); @@ -285,13 +286,14 @@ int main(int argc, char *argv[]) { int randnum = 0; int randmin = 0; int pause = 0; + int classic = 0; srand((unsigned) time(NULL)); setlocale(LC_ALL, ""); /* Many thanks to morph- (morph@jmss.com) for this getopt patch */ opterr = 0; - while ((optchr = getopt(argc, argv, "abBfhlLnrosmxVu:C:")) != EOF) { + while ((optchr = getopt(argc, argv, "abBcfhlLnrosmxVu:C:")) != EOF) { switch (optchr) { case 's': screensaver = 1; @@ -330,6 +332,9 @@ int main(int argc, char *argv[]) { "white, yellow, cyan, magenta " "and black.\n"); } break; + case 'c': + classic = 1; + break; case 'f': force = 1; break; @@ -430,7 +435,12 @@ if (console) { } /* Set up values for random number generation */ - if (console || xwindow) { + if(classic) { + /* Japanese character unicode range [they are seen in the original cmatrix] */ + randnum = 63; + randmin = 12288; + highnum = 12351; + } else if (console || xwindow) { randnum = 51; randmin = 166; highnum = 217;