Introduction
Introduction Statistics Contact Development Disclaimer Help
Support @cmd - smdev - suckless mdev
git clone git://git.suckless.org/smdev
Log
Files
Refs
README
LICENSE
---
commit d7f305ee12680d8f218e73e6e3d5d77b74b319d6
parent b879ac0c88c4d0bed94a3590c4574848b8206b7d
Author: sin <[email protected]>
Date: Wed, 21 Aug 2013 10:39:05 +0100
Support @cmd
Diffstat:
M smdev.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/smdev.c b/smdev.c
@@ -72,7 +72,7 @@ create_dev(const char *path)
struct Rule *Rule;
struct passwd *pw;
struct group *gr;
- char buf[64], *p;
+ char buf[BUFSIZ], *p;
char tmppath[PATH_MAX], devpath[PATH_MAX];
char *devname;
int maj, min, type;
@@ -142,18 +142,30 @@ create_dev(const char *path)
if (ret < 0)
eprintf("chown %s:", devpath);
+ if (chdir("/dev") < 0)
+ eprintf("chdir /dev:");
+ snprintf(buf, sizeof(buf), "SMDEV=%s", devname);
+ if (putenv(buf) < 0)
+ eprintf("putenv:");
+
if (Rule->cmd) {
switch (Rule->cmd[0]) {
case '@':
+ system(&Rule->cmd[1]);
+ break;
case '$':
case '*':
fprintf(stderr, "Unsupported command '%s' for …
Rule->cmd, Rule->devregex);
- return -1;
+ break;
default:
eprintf("Invalid command '%s'\n", Rule->cmd);
}
}
+
+ if (chdir(path) < 0)
+ eprintf("chdir %s:", path);
+
break;
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.