slock-secret-password-1.4.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       slock-secret-password-1.4.diff (963B)
       ---
            1 diff --git a/config.def.h b/config.def.h
            2 index 9855e21..989ca08 100644
            3 --- a/config.def.h
            4 +++ b/config.def.h
            5 @@ -10,3 +10,10 @@ static const char *colorname[NUMCOLS] = {
            6  
            7  /* treat a cleared input like a wrong password (color) */
            8  static const int failonclear = 1;
            9 +
           10 +/* length of entires in scom  */s
           11 +static const int entrylen = 1;
           12 +
           13 +static const secretpass scom[entrylen] = {
           14 +/*         Password                                command */
           15 +        { "shutdown",           "doas poweroff" },};
           16 diff --git a/slock.c b/slock.c
           17 index d2f0886..6a96a2d 100644
           18 --- a/slock.c
           19 +++ b/slock.c
           20 @@ -160,6 +160,13 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
           21                          case XK_Return:
           22                                  passwd[len] = '\0';
           23                                  errno = 0;
           24 +
           25 +                                for (int i = 0; i < entrylen; i++){
           26 +                                        if (strcmp(scom[i].pass, passwd) == 0){
           27 +                                                system(scom[i].command);
           28 +                                        }
           29 +                                }
           30 +
           31                                  if (!(inputhash = crypt(passwd, hash)))
           32                                          fprintf(stderr, "slock: crypt: %s\n", strerror(errno));
           33                                  else