From 00ff33254770a5363b2d566e7a705a4a133c3952 Mon Sep 17 00:00:00 2001 From: Benjamin Levy Date: Tue, 11 Dec 2018 12:13:32 -0500 Subject: [PATCH] Add lambda mode --- cmatrix.1 | 5 ++++- cmatrix.c | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/cmatrix.1 b/cmatrix.1 index 456fa12..2dbf23e 100644 --- a/cmatrix.1 +++ b/cmatrix.1 @@ -3,7 +3,7 @@ CMatrix .SH SYNOPSIS .B cmatrix -[\-abBflohnsVx] [\-u update] [\-C color] +[\-abBflohnsmVx] [\-u update] [\-C color] .SH DESCRIPTION Shows a scrolling 'Matrix' like screen in Linux .SS OPTIONS @@ -35,6 +35,9 @@ No bold characters (overrides \-b and \-B) .I "\-s" "Screensaver" mode, exits on first keystroke .TP +.I "\-m" +"Lambda" mode, every character becomes a lambda +.TP .I "\-x" X window mode, use if your xterm is using mtx.pcf .TP diff --git a/cmatrix.c b/cmatrix.c index 5674c50..01b6ba4 100644 --- a/cmatrix.c +++ b/cmatrix.c @@ -31,6 +31,7 @@ #include #include #include +#include #ifndef EXCLUDE_CONFIG_H #include "config.h" @@ -127,7 +128,7 @@ void c_die(char *msg, ...) { } void usage(void) { - printf(" Usage: cmatrix -[abBfhlsVx] [-u delay] [-C color]\n"); + printf(" Usage: cmatrix -[abBfhlsmVx] [-u delay] [-C color]\n"); printf(" -a: Asynchronous scroll\n"); printf(" -b: Bold characters on\n"); printf(" -B: All bold characters (overrides -b)\n"); @@ -143,6 +144,7 @@ void usage(void) { printf(" -u delay (0 - 10, default 4): Screen update delay\n"); printf(" -C [color]: Use this color for matrix (default green)\n"); printf(" -r: rainbow mode\n"); + printf(" -m: lambda mode\n"); } void version(void) { @@ -280,15 +282,17 @@ int main(int argc, char *argv[]) { int highnum = 0; int mcolor = COLOR_GREEN; int rainbow = 0; + int lambda = 0; int randnum = 0; int randmin = 0; int pause = 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, "abBfhlLnrosxVu:C:")) != EOF) { + while ((optchr = getopt(argc, argv, "abBfhlLnrosmxVu:C:")) != EOF) { switch (optchr) { case 's': screensaver = 1; @@ -361,6 +365,9 @@ int main(int argc, char *argv[]) { case 'r': rainbow = 1; break; + case 'm': + lambda = 1; + break; } } @@ -520,6 +527,9 @@ if (console) { case 'r': rainbow = 1; break; + case 'm': + lambda = !lambda; + break; case '^': mcolor = COLOR_CYAN; rainbow = 0; @@ -710,6 +720,8 @@ if (console) { } if (matrix[i][j].val == -1) { addch(' '); + } else if (lambda && matrix[i][j].val != ' ') { + addstr("λ"); } else { addch(matrix[i][j].val); }