sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit a3e04d70d94fbda42c3cdbd426979f01b0f71525
parent 50bb4969c54facc0c5c136fec30c0d93a86d6260
Author: Adrian Amaglio <adrian@amaglio.fr>
Date:   Sun,  2 Oct 2022 00:14:51 +0200

[slock][patch][secret-password] Update patch

Diffstat:
Atools.suckless.org/slock/patches/secret-password/slock-secret-password-2022-10-01-35633d4.diff | 46++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+), 0 deletions(-)

diff --git a/tools.suckless.org/slock/patches/secret-password/slock-secret-password-2022-10-01-35633d4.diff b/tools.suckless.org/slock/patches/secret-password/slock-secret-password-2022-10-01-35633d4.diff @@ -0,0 +1,46 @@ +diff --git a/config.def.h b/config.def.h +index 9855e21..a2020bb 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -10,3 +10,13 @@ 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 5ae738c..b92ae4e 100644 +--- a/slock.c ++++ b/slock.c +@@ -44,6 +44,11 @@ struct xrandr { + int errbase; + }; + ++typedef struct secretpass { ++ char pass[256]; ++ char command[256]; ++} secretpass; ++ + #include "config.h" + + static void +@@ -160,6 +165,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