diff options
| author | Warner Losh <imp@FreeBSD.org> | 2003-04-21 04:00:01 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2003-04-21 04:00:01 +0000 |
| commit | b1ee04b18e90fec17c9c072a8d779b10e8bedcf1 (patch) | |
| tree | 8d09b79ec491549cee50d32faf6772959f859f0c | |
| parent | 6c2a22923c06338ee10efe74d3a86e700d44c83d (diff) | |
Notes
| -rw-r--r-- | sbin/devd/devd.cc | 23 |
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(); } |
