diff options
author | wpaul <wpaul@FreeBSD.org> | 2004-01-02 21:13:21 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2004-01-02 21:13:21 +0000 |
commit | 48774c9608c496e940be2db40ae36281f17e0e3d (patch) | |
tree | 3690b3c8151507beba1fb2de9d39b8d8a4c1f487 /usr.sbin/ndiscvt/inf.c | |
parent | 343d2552f54ad9e644354eccfbb2d1dff9e0ee43 (diff) | |
download | FreeBSD-src-48774c9608c496e940be2db40ae36281f17e0e3d.zip FreeBSD-src-48774c9608c496e940be2db40ae36281f17e0e3d.tar.gz |
Handle WinNT .inf files with a $windows nt$ signature but no .NT decorated
AddReg sections.
Also insert extra newline after emitting device name overrides.
Diffstat (limited to 'usr.sbin/ndiscvt/inf.c')
-rw-r--r-- | usr.sbin/ndiscvt/inf.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/usr.sbin/ndiscvt/inf.c b/usr.sbin/ndiscvt/inf.c index 115d626..d38b17b 100644 --- a/usr.sbin/ndiscvt/inf.c +++ b/usr.sbin/ndiscvt/inf.c @@ -398,7 +398,12 @@ dump_regvals(void) struct section *sec; struct assign *assign; char sname[256]; - int i, is_winxp = 0, devidx = 0; + int i, is_winxp = 0, is_winnt = 0, devidx = 0; + + /* Find signature to check for special case of WinNT. */ + assign = find_assign("version", "signature"); + if (strcasecmp(assign->vals[0], "$windows nt$") == 0) + is_winnt++; /* Find manufacturer name */ manf = find_assign("Manufacturer", NULL); @@ -434,6 +439,9 @@ dump_regvals(void) } else { sprintf(sname, "%s.NT", assign->vals[0]); dev = find_assign(sname, "AddReg"); + if (dev == NULL && is_winnt) + dev = find_assign(assign->vals[0], + "AddReg"); } /* Section not found. */ if (dev == NULL) |