#ifndef lint
static const char rcsid[] =
- "$Id: symtab.c,v 1.23 2004/12/14 14:07:58 stelian Exp $";
+ "$Id: symtab.c,v 1.25 2005/03/30 13:34:00 stelian Exp $";
#endif /* not lint */
/*
char *np, *cp;
char buf[MAXPATHLEN];
+ ep = lookupino(ROOTINO);
+
cp = name;
+ if (*cp == '.')
+ ++cp;
+ if (*cp == '/')
+ ++cp;
+ if (*cp == '\0')
+ return ep;
- ep = lookupino(ROOTINO);
while (ep != NULL) {
for (np = buf; *cp != '/' && *cp != '\0' &&
np < &buf[sizeof(buf)]; )
oldep = ep;
- if (strcmp(ep->e_name, buf) != 0 &&
- ep->e_entries != NULL) {
+ if (ep->e_entries != NULL) {
ep = ep->e_entries[dir_hash(buf)];
for ( ; ep != NULL; ep = ep->e_sibling)
panic("initsymtable called from command %c\n", command);
break;
}
- resizemaps(maxino, hdr.maxino);
- maxino = hdr.maxino;
+ if (hdr.maxino > maxino) {
+ resizemaps(maxino, hdr.maxino);
+ maxino = hdr.maxino;
+ }
entrytblsize = hdr.entrytblsize;
entry = (struct entry **)
(base + tblsize - (entrytblsize * sizeof(struct entry *)));