Introduction
Introduction Statistics Contact Development Disclaimer Help
Fix naming + style - smdev - suckless mdev
git clone git://git.suckless.org/smdev
Log
Files
Refs
README
LICENSE
---
commit 3f864d112ba7ab71fc76e8141a901c7c51190aa0
parent 489d08c79725cad5203a1d52ede57851b6d78ba0
Author: sin <[email protected]>
Date: Fri, 23 Aug 2013 13:43:47 +0100
Fix naming + style
Diffstat:
M smdev.c | 98 +++++++++++++++--------------…
1 file changed, 48 insertions(+), 50 deletions(-)
---
diff --git a/smdev.c b/smdev.c
@@ -25,15 +25,15 @@ enum action {
};
struct event {
- int min;
- int maj;
+ int minor;
+ int major;
enum action action;
char *devpath;
char *devname;
struct rule *rule;
};
-/* Simple cache for regcomp() */
+/* Simple cache for regcomp() results */
static struct pregentry {
regex_t preg;
int cached;
@@ -41,7 +41,7 @@ static struct pregentry {
static int dohotplug(void);
static int matchrule(int ruleidx, char *devname);
-static void runrule(struct rule *rule);
+static void runrulecmd(struct rule *rule);
static void parsepath(struct rule *rule, char *devpath,
size_t devpathsz, char *devname);
static int removedev(struct event *ev);
@@ -72,11 +72,12 @@ main(int argc, char *argv[])
} ARGEND;
umask(0);
- if (sflag)
+ if (sflag) {
recurse("/sys/devices", populatedev);
- else
+ } else {
if (dohotplug() < 0)
eprintf("Environment not set up correctly for hotplugg…
+ }
for (i = 0; i < LEN(pregcache); i++)
if (pregcache[i].cached)
@@ -88,9 +89,9 @@ main(int argc, char *argv[])
static enum action
mapaction(const char *action)
{
- if (!strcmp(action, "add"))
+ if (strcmp(action, "add") == 0)
return ADD_ACTION;
- if (!strcmp(action, "remove"))
+ if (strcmp(action, "remove") == 0)
return REMOVE_ACTION;
return UNKNOWN_ACTION;
}
@@ -99,23 +100,25 @@ mapaction(const char *action)
static int
dohotplug(void)
{
- char *min, *maj;
+ char *minor, *major;
char *action;
+ char *devpath;
+ char *devname;
struct event ev;
- min = getenv("MINOR");
- maj = getenv("MAJOR");
+ minor = getenv("MINOR");
+ major = getenv("MAJOR");
action = getenv("ACTION");
- ev.devpath = getenv("DEVPATH");
- ev.devname = getenv("DEVNAME");
- if (!min || !maj || !action || !ev.devpath ||
- !ev.devname)
+ devpath = getenv("DEVPATH");
+ devname = getenv("DEVNAME");
+ if (!minor || !major || !action || !devpath || !devname)
return -1;
- ev.min = estrtol(min, 10);
- ev.maj = estrtol(maj, 10);
+ ev.minor = estrtol(minor, 10);
+ ev.major = estrtol(major, 10);
ev.action = mapaction(action);
-
+ ev.devpath = devpath;
+ ev.devname = devname;
return doevent(&ev);
}
@@ -127,7 +130,7 @@ static int
matchrule(int ruleidx, char *devname)
{
struct rule *rule = &rules[ruleidx];
- regex_t *match;
+ regex_t *preg;
regmatch_t off;
int ret;
@@ -138,8 +141,9 @@ matchrule(int ruleidx, char *devname)
eprintf("regcomp:");
pregcache[ruleidx].cached = 1;
}
- match = &pregcache[ruleidx].preg;
- ret = regexec(match, devname, 1, &off, 0);
+ preg = &pregcache[ruleidx].preg;
+
+ ret = regexec(preg, devname, 1, &off, 0);
if (ret == REG_NOMATCH || off.rm_so ||
off.rm_eo != strlen(devname))
return -1;
@@ -147,12 +151,10 @@ matchrule(int ruleidx, char *devname)
}
static void
-runrule(struct rule *rule)
+runrulecmd(struct rule *rule)
{
- if (!rule->cmd)
- return;
-
- system(&rule->cmd[1]);
+ if (rule->cmd)
+ system(&rule->cmd[1]);
}
/*
@@ -170,25 +172,25 @@ parsepath(struct rule *rule, char *devpath, size_t devpat…
if (rule->path[0] != '=' && rule->path[0] != '>')
eprintf("Invalid path '%s'\n", rule->path);
+ /* No need to rename the device node */
+ if (rule->path[strlen(rule->path) - 1] == '/') {
+ snprintf(devpath, devpathsz, "/dev/%s%s",
+ &rule->path[1], devname);
+ return;
+ }
+
p = strchr(&rule->path[1], '/');
if (p) {
- if (rule->path[strlen(rule->path) - 1] == '/') {
- snprintf(devpath, devpathsz, "/dev/%s%s",
- &rule->path[1], devname);
- return;
- }
- dirc = strdup(&rule->path[1]);
- if (!dirc)
+ if (!(dirc = strdup(&rule->path[1])))
eprintf("strdup:");
snprintf(buf, sizeof(buf), "/dev/%s", dirname(dirc));
- free(dirc);
- basec = strdup(&rule->path[1]);
- if (!basec)
+ if (!(basec = strdup(&rule->path[1])))
eprintf("strdup:");
strlcpy(devname, basename(basec), sizeof(devname));
- free(basec);
snprintf(devpath, devpathsz, "%s/%s",
buf, devname);
+ free(dirc);
+ free(basec);
} else {
strlcpy(devname, &rule->path[1], sizeof(devname));
snprintf(devpath, devpathsz, "/dev/%s", devname);
@@ -209,7 +211,7 @@ removedev(struct event *ev)
if (rule->path)
parsepath(rule, devpath, sizeof(devpath),
devname);
- runrule(rule);
+ runrulecmd(rule);
/* Delete device node */
unlink(devpath);
/* Delete symlink */
@@ -234,9 +236,8 @@ createdev(struct event *ev)
rule = ev->rule;
- snprintf(buf, sizeof(buf), "%d:%d", ev->maj, ev->min);
- type = devtype(buf);
- if (type < 0)
+ snprintf(buf, sizeof(buf), "%d:%d", ev->major, ev->minor);
+ if ((type = devtype(buf)) < 0)
return -1;
strlcpy(devname, ev->devname, sizeof(devname));
@@ -246,8 +247,7 @@ createdev(struct event *ev)
if (rule->path) {
parsepath(rule, devpath, sizeof(devpath),
devname);
- dirc = strdup(devpath);
- if (!dirc)
+ if (!(dirc = strdup(devpath)))
eprintf("strdup:");
strlcpy(buf, dirname(dirc), sizeof(buf));
free(dirc);
@@ -257,9 +257,8 @@ createdev(struct event *ev)
umask(0);
}
- /* Create the actual dev node */
if (mknod(devpath, rule->mode | type,
- makedev(ev->maj, ev->min)) < 0 &&
+ makedev(ev->major, ev->minor)) < 0 &&
errno != EEXIST)
eprintf("mknod %s:", devpath);
@@ -282,10 +281,9 @@ createdev(struct event *ev)
if (chown(devpath, pw->pw_uid, gr->gr_gid) < 0)
eprintf("chown %s:", devpath);
- /* Create symlink */
if (rule->path && rule->path[0] == '>') {
snprintf(buf, sizeof(buf), "/dev/%s", ev->devname);
- if (symlink(devpath, buf))
+ if (symlink(devpath, buf) < 0)
eprintf("symlink %s -> %s:",
buf, devpath);
}
@@ -294,7 +292,7 @@ createdev(struct event *ev)
if (putenv(buf) < 0)
eprintf("putenv:");
- runrule(rule);
+ runrulecmd(rule);
return 0;
}
@@ -333,7 +331,7 @@ craftev(struct event *ev, enum action action, char *sysfspa…
ev->devname = basename(sysfspath);
snprintf(path, sizeof(path), "/sys%s/dev",
ev->devpath);
- if (devtomajmin(path, &ev->maj, &ev->min) < 0)
+ if (devtomajmin(path, &ev->major, &ev->minor) < 0)
return -1;
return 0;
}
@@ -345,7 +343,7 @@ populatedev(const char *path)
struct event ev;
recurse(path, populatedev);
- if (!strcmp(path, "dev")) {
+ if (strcmp(path, "dev") == 0) {
cwd = agetcwd();
if (!craftev(&ev, ADD_ACTION, cwd))
doevent(&ev);
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.