+ if (mflg)
+ printf("mode %-6o uid %-5d gid %-5d ino ",
+ ilist[k].mode, ilist[k].uid, ilist[k].gid);
+ pr:
+ printf("%-5u\t", dp->d_ino);
+ pname(ino, 0);
+ printf("/%s", dp->d_name);
+ if (lookup(dp->d_ino, 0))
+ printf("/.");
+ printf("\n");
+ }
+}
+
+/*
+ * get next entry in a directory.
+ */
+struct direct *
+readdir(dirp)
+ register struct dirstuff *dirp;
+{
+ register struct direct *dp;
+ daddr_t lbn, d;
+
+ for(;;) {
+ if (dirp->loc >= dirp->ip->di_size)
+ return NULL;
+ if ((lbn = lblkno(&sblock, dirp->loc)) == 0) {
+ d = bmap(lbn);
+ if(d == 0)
+ return NULL;
+ bread(fsbtodb(&sblock, d), dirp->dbuf,
+ dblksize(&sblock, dirp->ip, lbn));