50 lines
1.2 KiB
Diff
50 lines
1.2 KiB
Diff
Index: modutils/modprobe.c
|
|
===================================================================
|
|
RCS file: /var/cvs/busybox/modutils/modprobe.c,v
|
|
retrieving revision 1.41
|
|
diff -u -r1.41 modprobe.c
|
|
--- busybox/modutils/modprobe.c 24 Sep 2004 09:18:55 -0000 1.41
|
|
+++ busybox/modutils/modprobe.c 29 Dec 2004 11:56:07 -0000
|
|
@@ -357,6 +357,41 @@
|
|
}
|
|
}
|
|
}
|
|
+ else if ((strncmp (buffer, "below", 5) == 0) && isspace (buffer[5])) {
|
|
+ char *mod, *deps;
|
|
+ if (parse_tag_value (buffer + 6, &mod, &deps)) {
|
|
+ struct dep_t *dt;
|
|
+
|
|
+ for (dt = first; dt; dt = dt->m_next) {
|
|
+ if (strcmp (dt->m_name, mod) == 0)
|
|
+ break;
|
|
+ }
|
|
+ if (dt) {
|
|
+ char *pp;
|
|
+ char *name;
|
|
+
|
|
+ pp = name = deps;
|
|
+
|
|
+ for (;;) {
|
|
+ while (*pp != 0 && !isspace (*pp))
|
|
+ pp++;
|
|
+ if (isspace (*pp))
|
|
+ *(pp++) = 0;
|
|
+
|
|
+ dt->m_depcnt++;
|
|
+ dt->m_deparr = (char **) xrealloc (dt->m_deparr,
|
|
+ sizeof (char *) * dt->m_depcnt);
|
|
+ dt->m_deparr[dt->m_depcnt - 1] = bb_xstrdup (name);
|
|
+
|
|
+ while (isspace (*pp))
|
|
+ pp++;
|
|
+ name = pp;
|
|
+ if (*pp == 0)
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
}
|
|
}
|
|
close ( fd );
|