Introduction
Introduction Statistics Contact Development Disclaimer Help
$SMDEV points to device name - smdev - suckless mdev
git clone git://git.suckless.org/smdev
Log
Files
Refs
README
LICENSE
---
commit 4493e6f0efa782693f55b062e02d246a257efddf
parent 6599c9ea656da6b55aa06257c656ed85362964d7
Author: sin <[email protected]>
Date: Mon, 2 Sep 2013 10:21:50 +0100
$SMDEV points to device name
Export $SMDEV for removedev() as well
Diffstat:
M smdev.c | 33 +++++++++++++++++++++++++++--…
1 file changed, 29 insertions(+), 4 deletions(-)
---
diff --git a/smdev.c b/smdev.c
@@ -210,6 +210,7 @@ removedev(struct event *ev)
{
struct rule *rule;
struct rulepath rpath;
+ char *ocwd;
char buf[PATH_MAX];
rule = ev->rule;
@@ -217,8 +218,24 @@ removedev(struct event *ev)
if (rule->path && rule->path[0] == '!')
return 0;
+ ocwd = agetcwd();
+
parsepath(rule, &rpath, ev->devname);
+
+ if (chdir("/dev") < 0)
+ eprintf("chdir /dev:");
+
+ snprintf(buf, sizeof(buf), "SMDEV=%s", ev->devname);
+ if (putenv(buf) < 0)
+ eprintf("putenv:");
+
runrulecmd(rule);
+
+ if (chdir(ocwd) < 0)
+ eprintf("chdir %s:", ocwd);
+
+ free(ocwd);
+
/* Delete device node */
unlink(rpath.path);
/* Delete symlink */
@@ -236,7 +253,7 @@ createdev(struct event *ev)
struct rulepath rpath;
struct passwd *pw;
struct group *gr;
- char *dirc;
+ char *dirc, *ocwd;
char buf[BUFSIZ];
int type;
@@ -249,6 +266,8 @@ createdev(struct event *ev)
if ((type = devtype(buf)) < 0)
return -1;
+ ocwd = agetcwd();
+
/* Parse path and create the directory tree */
parsepath(rule, &rpath, ev->devname);
if (!(dirc = strdup(rpath.path)))
@@ -292,14 +311,20 @@ createdev(struct event *ev)
buf, rpath.path);
}
- snprintf(buf, sizeof(buf), "SMDEV=%s", rpath.path);
+ if (chdir("/dev") < 0)
+ eprintf("chdir /dev:");
+
+ snprintf(buf, sizeof(buf), "SMDEV=%s", ev->devname);
if (putenv(buf) < 0)
eprintf("putenv:");
- /* XXX: should chdir to dirname(devpath) and set SMDEV
- * to point to the actual device name */
runrulecmd(rule);
+ if (chdir(ocwd) < 0)
+ eprintf("chdir %s:", ocwd);
+
+ free(ocwd);
+
return 0;
}
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.