diff --git a/cmatrix.c b/cmatrix.c index a4c64f6..90284cb 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,15 +435,18 @@ if (console) { } /* Set up values for random number generation */ - if (console || xwindow) { - randnum = 51; + if(classic) { + /* Japanese character unicode range [they are seen in the original cmatrix] */ + randmin = 12288; + highnum = 12351; + } else if (console || xwindow) { randmin = 166; highnum = 217; } else { - randnum = 93; randmin = 33; highnum = 123; } + randnum = highnum - randmin; var_init();