summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2003-04-21 04:00:01 +0000
committerWarner Losh <imp@FreeBSD.org>2003-04-21 04:00:01 +0000
commitb1ee04b18e90fec17c9c072a8d779b10e8bedcf1 (patch)
tree8d09b79ec491549cee50d32faf6772959f859f0c
parent6c2a22923c06338ee10efe74d3a86e700d44c83d (diff)
Notes
-rw-r--r--sbin/devd/devd.cc23
1 files changed, 17 insertions, 6 deletions
diff --git a/sbin/devd/devd.cc b/sbin/devd/devd.cc
index 7ddd726dc385..9a0ea0ec4bf9 100644
--- a/sbin/devd/devd.cc
+++ b/sbin/devd/devd.cc
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2002 M. Warner Losh.
+ * Copyright (c) 2002-2003 M. Warner Losh.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -572,6 +572,8 @@ config::chop_var(char *&buffer, char *&lhs, char *&rhs)
*walker++ = '\0';
rhs[-1] = '\0';
}
+ while (isspace(*walker))
+ walker++;
buffer = walker;
return (true);
}
@@ -645,12 +647,21 @@ process_event(char *buffer)
return; /* Can't happen? */
*sp++ = '\0';
cfg.set_variable("device-name", buffer);
+ if (strncmp(sp, "at ", 3) == 0)
+ sp += 3;
+ sp = cfg.set_vars(sp);
+ if (strncmp(sp, "on ", 3) == 0)
+ cfg.set_variable("bus", sp + 3);
+ } else {
+ //?vars at location on bus
+ sp = cfg.set_vars(sp);
+ if (strncmp(sp, "at ", 3) == 0)
+ sp += 3;
+ sp = cfg.set_vars(sp);
+ if (strncmp(sp, "on ", 3) == 0)
+ cfg.set_variable("bus", sp + 3);
}
- if (strncmp(sp, "at ", 3) == 0)
- sp += 3;
- sp = cfg.set_vars(sp);
- if (strncmp(sp, "on ", 3) == 0)
- cfg.set_variable("bus", sp + 3);
+
cfg.find_and_execute(type);
cfg.pop_var_table();
}