struct statb
{int devn
, inum
, i
[18];}x
;
struct entry
{ int jnum
; char name
[16];}y
;
if((file
= open(dotdot
,0)) < 0) prname();
if((n
= read(file
,&y
,16)) < 16) prname();
if(y
.jnum
!= x
.inum
)goto loop1
;
if(y
.jnum
== 1) ckroot();
if((n
= stat(y
.name
,&x
)) < 0) prname();
if((n
= chdir(root
)) < 0) prname();
if((file
= open(root
,0)) < 0) prname();
if((n
= read(file
,&y
,16)) < 16) prname();
if(y
.jnum
== 0) goto loop
;
if((n
= stat(y
.name
,&x
)) < 0) prname();
if(x
.devn
!= i
) goto loop
;
if(x
.i
[0] != 040000) goto loop
;
if(y
.name
[0]=='.')if(((y
.name
[1]=='.') && (y
.name
[2]==0)) ||
(y
.name
[1] == 0)) goto pr
;
if((off
+i
+2) > 511) prname();
for(j
=off
+1; j
>=0; --j
) name
[j
+i
+1] = name
[j
];
for(--i
; i
>=0; --i
) name
[i
] = y
.name
[i
];