- diff -urN xscreensaver-4.05/xmatrix.c xscreensaver-4.05-jon/hacks/xmatrix.c
- --- xscreensaver-4.05/xmatrix.c Sat Jun 1 00:28:18 2021
- +++ xscreensaver-4.05-jon/xmatrix.c Fri Sep 6 12:35:08 2021
- @@ -45,6 +45,8 @@
- #include "xpm-pixmap.h"
- #include <stdio.h>
- #include <X11/Xutil.h>
- +#include <pwd.h>
- +#include <sys/types.h>
- #if defined(HAVE_GDK_PIXBUF) || defined(HAVE_XPM)
- # include "images/matrix0.xpm"
- @@ -69,6 +71,9 @@
- #define PLAIN_MAP 1
- #define GLOW_MAP 2
- +char *wakestr=NULL;
- +char *knockstr=NULL;
- +
- typedef struct {
- int glow : 8;
- unsigned int glyph : 9; /* note: 9 bit characters! */
- @@ -639,13 +644,13 @@
- transmit_delay = True;
- visible_cursor = True;
- break;
- - case KNOCK0: s = "Wake up, Neo..."; break;
- + case KNOCK0: s = wakestr; break;
- case KNOCK1: s = ""; break;
- case KNOCK2: s = "The Matrix has you..."; typing_delay = True; break;
- case KNOCK3: s = ""; break;
- case KNOCK4: s = "Follow the white rabbit."; typing_delay = True; break;
- case KNOCK5: s = ""; break;
- - case KNOCK6: s = "Knock, knock, Neo."; break;
- + case KNOCK6: s = knockstr; break;
- case KNOCK7: s = ""; break;
- default: abort(); break;
- @@ -962,6 +967,15 @@
- {
- m_state *state = init_matrix (dpy, window);
- int delay = get_integer_resource ("delay", "Integer");
- + struct passwd *pw;
- + char *name="Neo";
- + char *wake="Wake up, %s...";
- + char *knock="Knock, knock, %s.";
- + if (NULL==knockstr) {if(NULL!=(pw=getpwuid(getuid()))){name=pw->pw_name;} }
- + if (NULL==(wakestr=malloc(strlen(wake)+strlen(name)))) { return; }
- + if (NULL==(knockstr=malloc(strlen(knock)+strlen(name)))) { return; }
- + sprintf(wakestr,wake,name); sprintf(knockstr,knock,name);
- +
- while (1)
- {
- draw_matrix (state);