diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-02-09 03:10:22 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-02-09 03:10:22 +0900 |
| commit | 36f7b343c714566d5bf931e768f0536a12d67c2f (patch) | |
| tree | 2040321e9984b1d8191f144f6b81f05f38acb8d7 /slock/patches/slock-secret-password-1.4.diff | |
| parent | 365403254a39ceac9797e430d4a62ec6c7b2f99c (diff) | |
updates
Diffstat (limited to 'slock/patches/slock-secret-password-1.4.diff')
| -rw-r--r-- | slock/patches/slock-secret-password-1.4.diff | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/slock/patches/slock-secret-password-1.4.diff b/slock/patches/slock-secret-password-1.4.diff new file mode 100644 index 0000000..6f4be2e --- /dev/null +++ b/slock/patches/slock-secret-password-1.4.diff @@ -0,0 +1,43 @@ +diff --git a/config.def.h b/config.def.h +index 9855e21..989ca08 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -10,3 +10,10 @@ static const char *colorname[NUMCOLS] = { + + /* treat a cleared input like a wrong password (color) */ + static const int failonclear = 1; ++ ++/* length of entires in scom */ ++#define entrylen 1 ++ ++static const secretpass scom[entrylen] = { ++/* Password command */ ++ { "shutdown", "doas poweroff" }, ++}; +diff --git a/slock.c b/slock.c +index d2f0886..6a96a2d 100644 +--- a/slock.c ++++ b/slock.c +@@ -31,6 +36,11 @@ enum { + NUMCOLS + }; ++ ++typedef struct { ++ const char *pass; ++ const char *command; ++} secretpass; ++ +@@ -160,6 +160,13 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + case XK_Return: + passwd[len] = '\0'; + errno = 0; ++ ++ for (int i = 0; i < entrylen; i++){ ++ if (strcmp(scom[i].pass, passwd) == 0){ ++ system(scom[i].command); ++ } ++ } ++ + if (!(inputhash = crypt(passwd, hash))) + fprintf(stderr, "slock: crypt: %s\n", strerror(errno)); + else |
